diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 8c9b29c28c2..40cb4a4fb0d 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -31,7 +31,7 @@ // Install java. // See https://github.com/devcontainers/features/tree/main/src/java#options for details. "ghcr.io/devcontainers/features/java:1": { - "version": "23.0.1-tem", + "version": "24.0.1-tem", "installGradle": false, "jdkDistro": "Temurin" } diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 1d4ef9ee628..d52b4347772 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -13,12 +13,6 @@ updates: - dependency-name: com.microsoft.azure:applicationinsights-logging-log4j2 versions: - ">= 2.5.a" # Blocked by https://github.com/microsoft/ApplicationInsights-Java/issues/1155 - - package-ecosystem: gradle - directory: "buildSrc/" - schedule: - interval: weekly - labels: - - "dependencies" - package-ecosystem: "github-actions" directory: "/" schedule: diff --git a/.github/ghprcomment.yml b/.github/ghprcomment.yml index 45c4839562e..d0d1890b863 100644 --- a/.github/ghprcomment.yml +++ b/.github/ghprcomment.yml @@ -8,9 +8,27 @@ To verify compilation locally, run `./gradlew build` or try running JabRef. -- jobName: 'Unit tests' +- jobName: 'Unit tests - jablib' message: > - JUnit tests are failing. + JUnit tests of `jablib` are failing. + You can see which checks are failing by locating the box "Some checks were not successful" on the pull request page. + To see the test output, locate "Tests / Unit tests (pull_request)" and click on it. + + + You can then run these tests in IntelliJ to reproduce the failing tests locally. + We offer a quick test running howto in the section [Final build system checks](https://devdocs.jabref.org/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.html#final-build-system-checks) in our setup guide. +- jobName: 'Unit tests - jabkit' + message: > + JUnit tests of `jabkit` are failing. + You can see which checks are failing by locating the box "Some checks were not successful" on the pull request page. + To see the test output, locate "Tests / Unit tests (pull_request)" and click on it. + + + You can then run these tests in IntelliJ to reproduce the failing tests locally. + We offer a quick test running howto in the section [Final build system checks](https://devdocs.jabref.org/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.html#final-build-system-checks) in our setup guide. +- jobName: 'Unit tests - jabsrv' + message: > + JUnit tests of `jabsrv` are failing. You can see which checks are failing by locating the box "Some checks were not successful" on the pull request page. To see the test output, locate "Tests / Unit tests (pull_request)" and click on it. @@ -38,7 +56,7 @@ You can see which checks are failing by locating the box "Some checks were not successful" on the pull request page. To see the test output, locate "Tests / OpenRewrite (pull_request)" and click on it. - + The issues found can be **automatically fixed**. Please execute the gradle task *`rewriteRun`* from the [`rewrite` group of the Gradle Tool window](https://devdocs.jabref.org/code-howtos/faq.html#failing-openrewrite-tests) in IntelliJ, then check the results, commit, and push. - jobName: Modernizer diff --git a/.github/workflows/deployment-arm64.yml b/.github/workflows/deployment-arm64.yml deleted file mode 100644 index 15edf46333a..00000000000 --- a/.github/workflows/deployment-arm64.yml +++ /dev/null @@ -1,270 +0,0 @@ -name: Deployment (macOS/ARM64) -on: - push: - branches: - - main - - main-release - paths-ignore: - - 'docs/**' - - 'src/test/**' - - 'README.md' - tags: - - '*' - pull_request: - merge_group: - workflow_dispatch: - inputs: - notarization: - type: boolean - required: false - default: false - -env: - SpringerNatureAPIKey: ${{ secrets.SpringerNatureAPIKey }} - AstrophysicsDataSystemAPIKey: ${{ secrets.AstrophysicsDataSystemAPIKey }} - IEEEAPIKey: ${{ secrets.IEEEAPIKey }} - BiodiversityHeritageApiKey: ${{ secrets.BiodiversityHeritageApiKey}} - OSXCERT: ${{ secrets.OSX_SIGNING_CERT }} - GRADLE_OPTS: -Xmx4g -Dorg.gradle.daemon=false -Dorg.gradle.vfs.watch=false - JAVA_OPTS: -Xmx4g - -concurrency: - group: "${{ github.workflow }}-${{ github.head_ref || github.ref }}" - cancel-in-progress: true - -jobs: - build: - if: github.repository_owner == 'JabRef' - strategy: - fail-fast: false - matrix: - include: - - os: macos-14 - displayName: macOS (ARM64) - suffix: '_arm64' - runs-on: ${{ matrix.os }} - outputs: - major: ${{ steps.gitversion.outputs.Major }} - minor: ${{ steps.gitversion.outputs.Minor }} - branchname: ${{ steps.gitversion.outputs.branchName }} - name: Create installer and portable version for ${{ matrix.displayName }} - steps: - - name: Check secrets presence - id: checksecrets - shell: bash - run: | - if [ "$BUILDJABREFPRIVATEKEY" == "" ]; then - echo "secretspresent=NO" >> $GITHUB_OUTPUT - echo "❌ Secret BUILDJABREFPRIVATEKEY not present" - else - echo "secretspresent=YES" >> $GITHUB_OUTPUT - echo "✔️ Secret BUILDJABREFPRIVATEKEY present" - fi - env: - BUILDJABREFPRIVATEKEY: ${{ secrets.buildJabRefPrivateKey }} - - name: Fetch all history for all tags and branches - uses: actions/checkout@v4 - with: - fetch-depth: 0 - submodules: 'true' - show-progress: 'false' - - name: Install GitVersion - uses: gittools/actions/gitversion/setup@v3.2.0 - with: - versionSpec: "5.x" - - name: Run GitVersion - id: gitversion - uses: gittools/actions/gitversion/execute@v3.2.0 - - name: Setup JDK - uses: actions/setup-java@v4 - with: - java-version: 23.0.1 - distribution: 'temurin' - - name: Clean up keychain - run: | - security delete-keychain signing_temp.keychain ${{runner.temp}}/keychain/notarization.keychain || true - - name: Setup OSX key chain on macOS-arm - if: (steps.checksecrets.outputs.secretspresent == 'YES') - uses: slidoapp/import-codesign-certs@1923310662e8682dd05b76b612b53301f431cd5d - with: - p12-file-base64: ${{ secrets.OSX_SIGNING_CERT }} - p12-password: ${{ secrets.OSX_CERT_PWD }} - keychain-password: jabref - - name: Setup OSX key chain on OSX for app id cert - if: (steps.checksecrets.outputs.secretspresent == 'YES') - uses: slidoapp/import-codesign-certs@1923310662e8682dd05b76b612b53301f431cd5d - with: - p12-file-base64: ${{ secrets.OSX_SIGNING_CERT_APPLICATION }} - p12-password: ${{ secrets.OSX_CERT_PWD }} - create-keychain: false - keychain-password: jabref - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - name: Prepare merged jars and modules dir (macOS) - run: ./gradlew -i -PprojVersion="${{ steps.gitversion.outputs.AssemblySemVer }}" -PprojVersionInfo="${{ steps.gitversion.outputs.InformationalVersion }}" prepareModulesDir - - name: Build dmg (macOS) - if: (steps.checksecrets.outputs.secretspresent == 'YES') - shell: bash - run: | - jpackage \ - --module org.jabref/org.jabref.Launcher \ - --module-path ${{env.JAVA_HOME}}/jmods/:build/jlinkbase/jlinkjars \ - --add-modules org.jabref,org.jabref.merged.module \ - --add-modules jdk.incubator.vector \ - --dest build/distribution \ - --app-content buildres/mac/jabrefHost.py \ - --app-content buildres/mac/native-messaging-host \ - --name JabRef \ - --app-version ${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }} \ - --verbose \ - --mac-sign \ - --vendor "JabRef e.V." \ - --mac-package-identifier JabRef \ - --mac-package-name JabRef \ - --type dmg --mac-signing-key-user-name "JabRef e.V. (6792V39SK3)" \ - --mac-package-signing-prefix org.jabref \ - --mac-entitlements buildres/mac/jabref.entitlements \ - --icon src/main/resources/icons/jabref.icns \ - --resource-dir buildres/mac \ - --file-associations buildres/mac/bibtexAssociations.properties \ - --jlink-options --bind-services \ - --java-options --add-exports=javafx.base/com.sun.javafx.event=org.jabref.merged.module \ - --java-options --add-exports=javafx.controls/com.sun.javafx.scene.control=org.jabref.merged.module \ - --java-options --add-opens=javafx.graphics/javafx.scene=org.jabref.merged.module \ - --java-options --add-opens=javafx.controls/javafx.scene.control=org.jabref.merged.module \ - --java-options --add-opens=javafx.controls/javafx.scene.control.skin=org.jabref.merged.module \ - --java-options --add-opens=javafx.controls/com.sun.javafx.scene.control=org.jabref.merged.module \ - --java-options --add-opens=javafx.controls/javafx.scene.control=org.jabref \ - --java-options --add-exports=javafx.base/com.sun.javafx.event=org.jabref \ - --java-options --add-exports=javafx.controls/com.sun.javafx.scene.control=org.jabref \ - --java-options --add-opens=javafx.graphics/javafx.scene=org.jabref \ - --java-options --add-opens=javafx.controls/javafx.scene.control=org.jabref \ - --java-options --add-opens=javafx.controls/com.sun.javafx.scene.control=org.jabref \ - --java-options --add-opens=javafx.base/javafx.collections=org.jabref \ - --java-options --add-opens=javafx.base/javafx.collections.transformation=org.jabref \ - --java-options --add-modules=jdk.incubator.vector - - name: Build pkg (macOS) - if: (steps.checksecrets.outputs.secretspresent == 'YES') - shell: bash - run: | - jpackage \ - --module org.jabref/org.jabref.Launcher \ - --module-path ${{env.JAVA_HOME}}/jmods/:build/jlinkbase/jlinkjars \ - --add-modules org.jabref,org.jabref.merged.module \ - --add-modules jdk.incubator.vector \ - --dest build/distribution \ - --app-content buildres/mac/jabrefHost.py \ - --app-content buildres/mac/native-messaging-host \ - --name JabRef \ - --app-version ${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }} \ - --verbose \ - --mac-sign \ - --vendor "JabRef e.V." \ - --mac-package-identifier JabRef \ - --mac-package-name JabRef \ - --type pkg --mac-signing-key-user-name "JabRef e.V. (6792V39SK3)" \ - --mac-package-signing-prefix org.jabref \ - --mac-entitlements buildres/mac/jabref.entitlements \ - --icon src/main/resources/icons/jabref.icns \ - --resource-dir buildres/mac \ - --file-associations buildres/mac/bibtexAssociations.properties \ - --jlink-options --bind-services \ - --java-options --add-exports=javafx.base/com.sun.javafx.event=org.jabref.merged.module \ - --java-options --add-exports=javafx.controls/com.sun.javafx.scene.control=org.jabref.merged.module \ - --java-options --add-opens=javafx.graphics/javafx.scene=org.jabref.merged.module \ - --java-options --add-opens=javafx.controls/javafx.scene.control=org.jabref.merged.module \ - --java-options --add-opens=javafx.controls/com.sun.javafx.scene.control=org.jabref.merged.module \ - --java-options --add-opens=javafx.controls/javafx.scene.control=org.jabref \ - --java-options --add-exports=javafx.base/com.sun.javafx.event=org.jabref \ - --java-options --add-exports=javafx.controls/com.sun.javafx.scene.control=org.jabref \ - --java-options --add-opens=javafx.graphics/javafx.scene=org.jabref \ - --java-options --add-opens=javafx.controls/javafx.scene.control=org.jabref \ - --java-options --add-opens=javafx.controls/com.sun.javafx.scene.control=org.jabref \ - --java-options --add-opens=javafx.base/javafx.collections=org.jabref \ - --java-options --add-opens=javafx.base/javafx.collections.transformation=org.jabref \ - --java-options --add-modules=jdk.incubator.vector - - name: Rename files with arm64 suffix as well - if: (steps.checksecrets.outputs.secretspresent == 'YES') - shell: bash - run: | - mv build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}.dmg build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}-arm64.dmg - mv build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}.pkg build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}-arm64.pkg - - name: Setup rsync (macOS) - if: ${{ (!startsWith(github.ref, 'refs/heads/gh-readonly-queue')) && (steps.checksecrets.outputs.secretspresent == 'YES') && ((matrix.os == 'macos-14') && !((startsWith(github.ref, 'refs/tags/') || inputs.notarization == true))) }} - run: brew install rsync - - name: Setup SSH key - if: ${{ (steps.checksecrets.outputs.secretspresent == 'YES') && (!startsWith(github.ref, 'refs/heads/gh-readonly-queue')) && ((matrix.os != 'macos-14') || !((startsWith(github.ref, 'refs/tags/') || (inputs.notarization == true)))) }} - run: | - echo "${{ secrets.buildJabRefPrivateKey }}" > sshkey - chmod 600 sshkey - - name: Upload to builds.jabref.org (linux, macOS) - # macOS: Negated condition of "Upload to GitHub workflow artifacts store (macOS)" - # Reason: We either upload the non-notarized files - or notarize the files later (and upload these later) - # needs to be on one line; multi line does not work - if: ${{ (!startsWith(github.ref, 'refs/heads/gh-readonly-queue')) && (steps.checksecrets.outputs.secretspresent == 'YES') && ((matrix.os == 'ubuntu-latest') || ((matrix.os == 'macos-14') && !((startsWith(github.ref, 'refs/tags/') || inputs.notarization == true)))) }} - shell: bash - run: | - rsync -rt --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r --itemize-changes --stats --rsync-path="mkdir -p /var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }} && rsync" -e 'ssh -p 9922 -i sshkey -o StrictHostKeyChecking=no' build/distribution/ jrrsync@build-upload.jabref.org:/var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }}/ || true - - name: Upload to GitHub workflow artifacts store (macOS) - if: (matrix.os == 'macos-14') && (steps.checksecrets.outputs.secretspresent == 'YES') && (startsWith(github.ref, 'refs/tags/') || inputs.notarization == true) - uses: actions/upload-artifact@v4 - with: - # tbn = to-be-notarized - name: JabRef-macOS-arm-tbn - path: build/distribution - compression-level: 0 # no compression - - name: Upload to GitHub workflow artifacts store - if: (steps.checksecrets.outputs.secretspresent != 'YES') - uses: actions/upload-artifact@v4 - with: - # tbn = to-be-notarized - name: JabRef-${{ matrix.os }} - path: build/distribution - compression-level: 0 # no compression - - notarize: # outsourced in a separate job to be able to rerun if this fails for timeouts - name: macOS notarization-arm - runs-on: macos-14 - needs: [build] - if: ${{ startsWith(github.ref, 'refs/tags/') || inputs.notarization == true }} - steps: - - name: Check secrets presence - id: checksecrets - shell: bash - run: | - if [ "$BUILDJABREFPRIVATEKEY" == "" ]; then - echo "secretspresent=NO" >> $GITHUB_OUTPUT - echo "❌ Secret BUILDJABREFPRIVATEKEY not present" - else - echo "secretspresent=YES" >> $GITHUB_OUTPUT - echo "✔️ Secret BUILDJABREFPRIVATEKEY present" - fi - env: - BUILDJABREFPRIVATEKEY: ${{ secrets.buildJabRefPrivateKey }} - - name: Download from GitHub workflow artifacts store (macOS) - if: (steps.checksecrets.outputs.secretspresent == 'YES') - uses: actions/download-artifact@v4 - with: - name: JabRef-macOS-arm-tbn - path: build/distribution/ - - name: Notarize dmg - if: (steps.checksecrets.outputs.secretspresent == 'YES') - shell: bash - run: | - xcrun notarytool store-credentials "notarytool-profile" --apple-id "vorstand@jabref.org" --team-id "6792V39SK3" --password "${{ secrets.OSX_NOTARIZATION_APP_PWD }}" - xcrun notarytool submit build/distribution/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}-arm64.dmg --keychain-profile "notarytool-profile" --wait - xcrun stapler staple build/distribution/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}-arm64.dmg - - name: Notarize pkg - if: (steps.checksecrets.outputs.secretspresent == 'YES') - shell: bash - run: | - xcrun notarytool store-credentials "notarytool-profile" --apple-id "vorstand@jabref.org" --team-id "6792V39SK3" --password "${{ secrets.OSX_NOTARIZATION_APP_PWD }}" - xcrun notarytool submit build/distribution/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}-arm64.pkg --keychain-profile "notarytool-profile" --wait - xcrun stapler staple build/distribution/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}-arm64.pkg - - name: Upload to builds.jabref.org - if: (steps.checksecrets.outputs.secretspresent == 'YES') - shell: bash - run: | - echo "${{ secrets.buildJabRefPrivateKey }}" > sshkey - chmod 600 sshkey - rsync -rt --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r --itemize-changes --stats --rsync-path="mkdir -p /var/www/builds.jabref.org/www/${{ needs.build.outputs.branchname }} && rsync" -e 'ssh -p 9922 -i sshkey -o StrictHostKeyChecking=no' build/distribution/ jrrsync@build-upload.jabref.org:/var/www/builds.jabref.org/www/${{ needs.build.outputs.branchname }}/ diff --git a/.github/workflows/deployment-jdk-ea.yml b/.github/workflows/deployment-jdk-ea.yml deleted file mode 100644 index 6c4624bdfec..00000000000 --- a/.github/workflows/deployment-jdk-ea.yml +++ /dev/null @@ -1,280 +0,0 @@ -# This workflow is a clone of "deployment.yml" -# The difference is that this workflow uses JDK early access builds (jdk-ea) to check the build of JabRef -# We separated this from the main workflow as we do not want to check on each PR if the JDK build, but only on main -name: Deployment (JDK early access builds) - -on: - schedule: - - cron: "0 18 * * *" - pull_request: - paths: - - .github/workflows/deployment-jdk-ea.yml - - build.gradle - workflow_dispatch: - inputs: - notarization: - type: boolean - required: false - default: false - -env: - SpringerNatureAPIKey: ${{ secrets.SpringerNatureAPIKey }} - AstrophysicsDataSystemAPIKey: ${{ secrets.AstrophysicsDataSystemAPIKey }} - IEEEAPIKey: ${{ secrets.IEEEAPIKey }} - BiodiversityHeritageApiKey: ${{ secrets.BiodiversityHeritageApiKey}} - OSXCERT: ${{ secrets.OSX_SIGNING_CERT }} - GRADLE_OPTS: -Xmx4g -Dorg.gradle.vfs.watch=false - JAVA_OPTS: -Xmx4g - -concurrency: - group: "${{ github.workflow }}-${{ github.head_ref || github.ref }}" - cancel-in-progress: true - -jobs: - build: - if: github.repository_owner == 'JabRef' - strategy: - fail-fast: false - matrix: - os: [ubuntu-latest, windows-latest, macos-latest, buildjet-8vcpu-ubuntu-2204-arm] - jdk: [23] - javafx: [25] - include: - - os: ubuntu-latest - displayName: linux - archivePortable: tar -c -C build/distribution JabRef | pigz --rsyncable > build/distribution/JabRef-portable_linux.tar.gz && rm -R build/distribution/JabRef - - os: windows-latest - displayName: windows - archivePortable: 7z a -r build/distribution/JabRef-portable_windows.zip ./build/distribution/JabRef && rm -R build/distribution/JabRef - - os: buildjet-8vcpu-ubuntu-2204-arm - displayName: "linux-arm" - archivePortable: "tar -c -C build/distribution JabRef | pigz --rsyncable > build/distribution/JabRef-portable_linux-arm64.tar.gz && rm -R build/distribution/JabRef" - - os: macos-latest - displayName: macOS - archivePortable: "brew install pigz && tar -c -C build/distribution JabRef.app | pigz --rsyncable > build/distribution/JabRef-portable_macos.tar.gz && rm -R build/distribution/JabRef.app" - runs-on: ${{ matrix.os }} - outputs: - major: ${{ steps.gitversion.outputs.Major }} - minor: ${{ steps.gitversion.outputs.Minor }} - branchname: ${{ steps.gitversion.outputs.branchName }} - name: "JDK ${{ matrix.jdk }}: ${{ matrix.displayName }} JavaFX ${{ matrix.javafx }}" - steps: - - name: Check secrets presence - id: checksecrets - shell: bash - run: | - if [ "$BUILDJABREFPRIVATEKEY" == "" ]; then - echo "secretspresent=NO" >> $GITHUB_OUTPUT - echo "❌ Secret BUILDJABREFPRIVATEKEY not present" - else - echo "secretspresent=YES" >> $GITHUB_OUTPUT - echo "✔️ Secret BUILDJABREFPRIVATEKEY present" - fi - env: - BUILDJABREFPRIVATEKEY: ${{ secrets.buildJabRefPrivateKey }} - - name: Fetch all history for all tags and branches - uses: actions/checkout@v4 - with: - fetch-depth: 0 - submodules: 'true' - show-progress: 'false' - - name: Install pigz and cache (linux) - if: (matrix.os == 'ubuntu-latest') || (matrix.os == 'buildjet-8vcpu-ubuntu-2204-arm') - uses: awalsh128/cache-apt-pkgs-action@master - with: - packages: pigz - version: 1.0 - - name: Install GitVersion - uses: gittools/actions/gitversion/setup@v3.2.0 - with: - versionSpec: "5.x" - - name: Run GitVersion - id: gitversion - uses: gittools/actions/gitversion/execute@v3.2.0 - - # JDK - - name: 'Set up JDK ${{ matrix.jdk }}' - uses: actions/setup-java@v4 - with: - java-version: ${{ matrix.jdk }} - distribution: 'temurin' - - name: 'Set JDK${{ matrix.jdk }} env var' - shell: bash - run: echo "JDK${{ matrix.jdk }}=$JAVA_HOME" >> $GITHUB_ENV - - name: 'Set JDK${{ matrix.jdk }} in toolchain (linux, Windows)' - if: (matrix.os != 'macos-latest') - shell: bash - run: | - sed -i 's/JavaLanguageVersion.of(.*)/JavaLanguageVersion.of(${{ matrix.jdk }})/' build.gradle - sed -i 's/JavaVersion.VERSION_(.*)/JavaVersion.VERSION_(${{ matrix.jdk }})/' build.gradle - - name: 'Set JDK${{ matrix.jdk }} in toolchain (macOS)' - if: (matrix.os == 'macos-latest') - shell: bash - run: | - sed -i'.bak' 's/JavaLanguageVersion.of(.*)/JavaLanguageVersion.of(${{ matrix.jdk }})/' build.gradle - sed -i'.bak' 's/JavaVersion.VERSION_(.*)/JavaVersion.VERSION_(${{ matrix.jdk }})/' build.gradle - - # JavaFX - - name: Download and extract JavaFX ${{ matrix.javafx }} - if: (matrix.os != 'buildjet-8vcpu-ubuntu-2204-arm') - shell: bash - run: | - cd javafx - curl --no-progress-meter https://jdk.java.net/javafx${{ matrix.javafx }}/ > javafx.html - - case "${{ matrix.os }}" in - "ubuntu-latest") - OS="linux" - EXTRACT="tar xzf *.tar.gz" - EXT="tar.gz" - ;; - "buildjet-8vcpu-ubuntu-2204-arm") - OS="linux" - EXTRACT="tar xzf *.tar.gz" - EXT="tar.gz" - echo "There are no ARM EA builds" - exit 0 - ;; - "windows-latest") - OS="windows" - EXTRACT="unzip -qq *.zip" - EXT="zip" - ;; - "macos-latest") - OS="macos" - EXTRACT="tar xzf *.tar.gz" - EXT="tar.gz" - ;; - *) - echo "Unsupported OS" - exit 1 - ;; - esac - echo "OS set to $OS" - - URL_SDK=$(grep -o "https://download.java.net/java/.*/javafx.*${OS}-x64_bin-sdk.${EXT}" javafx.html | head -n 1) - echo "Downloading $URL_SDK..." - curl -OJ --no-progress-meter $URL_SDK - $EXTRACT - rm *.$EXT - - URL_JMODS=$(grep -o "https://download.java.net/java/.*/javafx.*${OS}-x64_bin-jmods.${EXT}" javafx.html | head -n 1) - echo "Downloading $URL_JMODS..." - curl -OJ --no-progress-meter $URL_JMODS - $EXTRACT - rm *.$EXT - - name: 'Set JavaFX ${{ matrix.javafx }} (linux, Windows)' - if: (matrix.os != 'macos-latest') && (matrix.os != 'buildjet-8vcpu-ubuntu-2204-arm') - run: | - sed -i '/javafx {/{n;s#version = ".*"#sdk = "javafx/javafx-sdk-${{ matrix.javafx }}"#}' build.gradle - sed -i "s#jlink {#jlink { addExtraModulePath 'javafx/javafx-jmods-${{ matrix.javafx }}'#" build.gradle - cat build.gradle - - name: 'Set JavaFX ${{ matrix.javafx }} (macOS)' - if: (matrix.os == 'macos-latest') && (matrix.os != 'buildjet-8vcpu-ubuntu-2204-arm') - run: | - sed -i '.bak' -e '/javafx {/{n' -e 's#version = ".*"#sdk = "javafx/javafx-sdk-${{ matrix.javafx }}"#;}' build.gradle - sed -i '.bak' -e "s#jlink {#jlink { addExtraModulePath 'javafx/javafx-jmods-${{ matrix.javafx }}'#" build.gradle - cat build.gradle - - name: 'Set JavaFX ${{ matrix.javafx }} (linux-arm)' - if: (matrix.os == 'buildjet-8vcpu-ubuntu-2204-arm') - # No JavaFX EA build for ARM at https://jdk.java.net/javafx23/, therefore using Maven Central artifact - run: | - curl -s "https://search.maven.org/solrsearch/select?q=g:org.openjfx+AND+a:javafx&rows=10&core=gav" > /tmp/versions.json - jq '[.response.docs[] | select(.v | test(".*-ea\\+.*")) | select(.v | test("^17|^18|^19|^20|^21|^22") | not) | {version: .v}] | group_by(.version | capture("^(?\\d+).*").major) | map(max_by(.version))' < /tmp/versions.json > /tmp/versions-latest.json - JAVAFX=$(jq -r '.[-1].version' /tmp/versions-latest.json) - echo "Using JavaFX ${JAVAFX}" - sed -i "/javafx {/{n;s#version = \".*\"#version = \"${JAVAFX}\"#}" build.gradle && cat build.gradle - - # Gradle - - name: Set up JDK - uses: actions/setup-java@v4 - with: - java-version: 21 - distribution: 'temurin' - - name: Set up Gradle - uses: gradle/actions/setup-gradle@v4 - - name: Prepare merged jars and modules dir - # prepareModulesDir is executing a build, which should run through even if no upload to builds.jabref.org is made - if: (steps.checksecrets.outputs.secretspresent == 'NO') - run: ./gradlew -i -PprojVersion="${{ steps.gitversion.outputs.AssemblySemVer }}" -PprojVersionInfo="${{ steps.gitversion.outputs.InformationalVersion }}" prepareModulesDir - - name: Set up macOS key chain - if: (matrix.os == 'macos-latest') && (steps.checksecrets.outputs.secretspresent == 'YES') - uses: slidoapp/import-codesign-certs@1923310662e8682dd05b76b612b53301f431cd5d - with: - p12-file-base64: ${{ secrets.OSX_SIGNING_CERT }} - p12-password: ${{ secrets.OSX_CERT_PWD }} - keychain-password: jabref - - name: Set up macOS key chain for app id cert - if: (matrix.os == 'macos-latest') && (steps.checksecrets.outputs.secretspresent == 'YES') - uses: slidoapp/import-codesign-certs@1923310662e8682dd05b76b612b53301f431cd5d - with: - p12-file-base64: ${{ secrets.OSX_SIGNING_CERT_APPLICATION }} - p12-password: ${{ secrets.OSX_CERT_PWD }} - create-keychain: false - keychain-password: jabref - - name: Build runtime image and installer - shell: bash - run: ./gradlew -i -PprojVersion="${{ steps.gitversion.outputs.AssemblySemVer }}" -PprojVersionInfo="${{ steps.gitversion.outputs.InformationalVersion }}" jpackage jlinkZip - - name: Package application image - shell: bash - run: ${{ matrix.archivePortable }} - - name: Rename files - if: (matrix.os != 'macos-latest') - shell: pwsh - run: | - get-childitem -Path build/distribution/* | rename-item -NewName {$_.name -replace "${{ steps.gitversion.outputs.AssemblySemVer }}","${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}"} - get-childitem -Path build/distribution/* | rename-item -NewName {$_.name -replace "portable","${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}-portable"} - - name: Repack deb file for Debian - if: (matrix.os == 'ubuntu-latest') - shell: bash - run: | - cd build/distribution - ar x jabref_${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}_amd64.deb - zstd -d < control.tar.zst | xz > control.tar.xz - zstd -d < data.tar.zst | xz > data.tar.xz - ar -m -c -a sdsd jabref_${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}_amd64_repackaged.deb debian-binary control.tar.xz data.tar.xz - rm debian-binary control.tar.* data.tar.* - mv -f jabref_${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}_amd64_repackaged.deb jabref_${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}_amd64.deb - - name: Rename files with JDK version - shell: bash - run: | - for file in build/distribution/*.*; do - base=${file%.*} - ext=${file##*.} - mv "$file" "${base}-jdk${{ matrix.jdk }}-javafx${{ matrix.javafx }}.${ext}" - done - - # Upload - - name: Set up rsync (macOS) - if: (matrix.os == 'macos-latest') && (steps.checksecrets.outputs.secretspresent == 'YES') && (github.ref == 'refs/heads/main') - run: brew install rsync - - name: Set up rsync (Windows) - if: (matrix.os == 'windows-latest') && (steps.checksecrets.outputs.secretspresent == 'YES') && (github.ref == 'refs/heads/main') - # We want to have rsync available at this place to avoid uploading and downloading from GitHub artifact store (taking > 5 minutes in total) - # We cannot use "action-rsyncer", because that requires Docker which is unavailable on Windows - # We cannot use "setup-rsync", because that does not work on Windows - # We do not use egor-tensin/setup-cygwin@v4, because it replaces the default shell - run: choco install --no-progress rsync - - name: Set up SSH key - if: (steps.checksecrets.outputs.secretspresent == 'YES') && (github.ref == 'refs/heads/main') - run: | - echo "${{ secrets.buildJabRefPrivateKey }}" > sshkey - chmod 600 sshkey - - name: Upload to builds.jabref.org (Windows) - if: (matrix.os == 'windows-latest') && (steps.checksecrets.outputs.secretspresent == 'YES') && (github.ref == 'refs/heads/main') - shell: cmd - # for rsync installed by chocolatey, we need the ssh.exe delivered with that installation - run: | - rsync -rt --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r --itemize-changes --stats --rsync-path="mkdir -p /var/www/builds.jabref.org/www/jdk-ea && rsync" -e 'C:\ProgramData\chocolatey\lib\rsync\tools\bin\ssh.exe -p 9922 -i sshkey -o StrictHostKeyChecking=no' build/distribution/ jrrsync@build-upload.jabref.org:/var/www/builds.jabref.org/www/jdk-ea/ || true - - name: Upload to builds.jabref.org (linux, macOS) - if: (matrix.os != 'windows-latest') && (steps.checksecrets.outputs.secretspresent == 'YES') && (github.ref == 'refs/heads/main') - shell: bash - run: | - rsync -rt --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r --itemize-changes --stats --rsync-path="mkdir -p /var/www/builds.jabref.org/www/jdk-ea && rsync" -e 'ssh -p 9922 -i sshkey -o StrictHostKeyChecking=no' build/distribution/ jrrsync@build-upload.jabref.org:/var/www/builds.jabref.org/www/jdk-ea/ - - name: Upload to GitHub workflow artifacts store - if: (steps.checksecrets.outputs.secretspresent != 'YES') || (github.ref != 'refs/heads/main') - uses: actions/upload-artifact@v4 - with: - name: JabRef-${{ matrix.os }} - path: build/distribution - compression-level: 0 # no compression diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 105b98621eb..d373f534ae9 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -37,17 +37,21 @@ jobs: build: strategy: fail-fast: false - matrix: # if you change the os version rename all other occurrences - os: [ubuntu-22.04, windows-latest, macos-13] + matrix: include: + # if you change the os version rename all other occurrences - os: ubuntu-22.04 displayName: linux - archivePortable: tar -c -C build/distribution JabRef | pigz --rsyncable > build/distribution/JabRef-portable_linux.tar.gz && rm -R build/distribution/JabRef + archivePortable: tar -c -C jabgui/build/distribution JabRef | pigz --rsyncable > jabgui/build/distribution/JabRef-portable_linux.tar.gz && rm -R jabgui/build/distribution/JabRef - os: windows-latest displayName: windows - archivePortable: 7z a -r build/distribution/JabRef-portable_windows.zip ./build/distribution/JabRef && rm -R build/distribution/JabRef + archivePortable: 7z a -r jabgui/build/distribution/JabRef-portable_windows.zip ./jabgui/build/distribution/JabRef && rm -R jabgui/build/distribution/JabRef - os: macos-13 # intel image displayName: macOS + suffix: '' + - os: macos-14 + displayName: macOS (ARM64) + suffix: '_arm64' runs-on: ${{ matrix.os }} outputs: major: ${{ steps.gitversion.outputs.Major }} @@ -90,82 +94,43 @@ jobs: - name: Setup JDK uses: actions/setup-java@v4 with: - java-version: 23.0.1 - distribution: 'temurin' + java-version: '24' + distribution: 'liberica' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Prepare merged jars and modules dir (macOS) # prepareModulesDir is executing a build, which should run through even if no upload to builds.jabref.org is made - if: (matrix.os == 'macos-13') || (steps.checksecrets.outputs.secretspresent == 'NO') + if: (matrix.os == 'macos-13') || (matrix.os == 'macos-14') || (steps.checksecrets.outputs.secretspresent == 'NO') run: ./gradlew -i -PprojVersion="${{ steps.gitversion.outputs.AssemblySemVer }}" -PprojVersionInfo="${{ steps.gitversion.outputs.InformationalVersion }}" prepareModulesDir - name: Setup macOS key chain - if: (matrix.os == 'macos-13') && (steps.checksecrets.outputs.secretspresent == 'YES') + if: ((matrix.os == 'macos-13') || (matrix.os == 'macos-14')) && (steps.checksecrets.outputs.secretspresent == 'YES') uses: slidoapp/import-codesign-certs@1923310662e8682dd05b76b612b53301f431cd5d with: p12-file-base64: ${{ secrets.OSX_SIGNING_CERT }} p12-password: ${{ secrets.OSX_CERT_PWD }} keychain-password: jabref - name: Setup macOS key chain for app id cert - if: (matrix.os == 'macos-13') && (steps.checksecrets.outputs.secretspresent == 'YES') + if: ((matrix.os == 'macos-13') || (matrix.os == 'macos-14')) && (steps.checksecrets.outputs.secretspresent == 'YES') uses: slidoapp/import-codesign-certs@1923310662e8682dd05b76b612b53301f431cd5d with: p12-file-base64: ${{ secrets.OSX_SIGNING_CERT_APPLICATION }} p12-password: ${{ secrets.OSX_CERT_PWD }} create-keychain: false keychain-password: jabref - - name: Build dmg (macOS) - if: (matrix.os == 'macos-13') && (steps.checksecrets.outputs.secretspresent == 'YES') - shell: bash - run: | - jpackage \ - --module org.jabref/org.jabref.Launcher \ - --module-path ${{env.JAVA_HOME}}/jmods/:build/jlinkbase/jlinkjars \ - --add-modules org.jabref,org.jabref.merged.module \ - --add-modules jdk.incubator.vector \ - --dest build/distribution \ - --app-content buildres/mac/jabrefHost.py \ - --app-content buildres/mac/native-messaging-host \ - --name JabRef \ - --app-version ${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }} \ - --verbose \ - --mac-sign \ - --vendor "JabRef e.V." \ - --mac-package-identifier JabRef \ - --mac-package-name JabRef \ - --type dmg --mac-signing-key-user-name "JabRef e.V. (6792V39SK3)" \ - --mac-package-signing-prefix org.jabref \ - --mac-entitlements buildres/mac/jabref.entitlements \ - --icon src/main/resources/icons/jabref.icns \ - --resource-dir buildres/mac \ - --file-associations buildres/mac/bibtexAssociations.properties \ - --jlink-options --bind-services \ - --java-options --add-exports=javafx.base/com.sun.javafx.event=org.jabref.merged.module \ - --java-options --add-exports=javafx.controls/com.sun.javafx.scene.control=org.jabref.merged.module \ - --java-options --add-opens=javafx.graphics/javafx.scene=org.jabref.merged.module \ - --java-options --add-opens=javafx.controls/javafx.scene.control=org.jabref.merged.module \ - --java-options --add-opens=javafx.controls/javafx.scene.control.skin=org.jabref.merged.module \ - --java-options --add-opens=javafx.controls/com.sun.javafx.scene.control=org.jabref.merged.module \ - --java-options --add-opens=javafx.controls/javafx.scene.control=org.jabref \ - --java-options --add-exports=javafx.base/com.sun.javafx.event=org.jabref \ - --java-options --add-exports=javafx.controls/com.sun.javafx.scene.control=org.jabref \ - --java-options --add-opens=javafx.graphics/javafx.scene=org.jabref \ - --java-options --add-opens=javafx.controls/javafx.scene.control=org.jabref \ - --java-options --add-opens=javafx.controls/com.sun.javafx.scene.control=org.jabref \ - --java-options --add-opens=javafx.base/javafx.collections=org.jabref \ - --java-options --add-opens=javafx.base/javafx.collections.transformation=org.jabref \ - --java-options --add-modules=jdk.incubator.vector - - name: Build pkg (macOS) - if: (matrix.os == 'macos-13') && (steps.checksecrets.outputs.secretspresent == 'YES') + - name: Build dmg and pkg (macOS) + if: ((matrix.os == 'macos-13') || (matrix.os == 'macos-14')) && (steps.checksecrets.outputs.secretspresent == 'YES') shell: bash run: | + set -e + cd jabgui + + # Use Java's packaging tool to create "JabRef.app" jpackage \ --module org.jabref/org.jabref.Launcher \ --module-path ${{env.JAVA_HOME}}/jmods/:build/jlinkbase/jlinkjars \ --add-modules org.jabref,org.jabref.merged.module \ --add-modules jdk.incubator.vector \ --dest build/distribution \ - --app-content buildres/mac/jabrefHost.py \ - --app-content buildres/mac/native-messaging-host \ --name JabRef \ --app-version ${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }} \ --verbose \ @@ -173,7 +138,8 @@ jobs: --vendor "JabRef e.V." \ --mac-package-identifier JabRef \ --mac-package-name JabRef \ - --type pkg --mac-signing-key-user-name "JabRef e.V. (6792V39SK3)" \ + --type app-image \ + --mac-signing-key-user-name "JabRef e.V. (6792V39SK3)" \ --mac-package-signing-prefix org.jabref \ --mac-entitlements buildres/mac/jabref.entitlements \ --icon src/main/resources/icons/jabref.icns \ @@ -195,25 +161,41 @@ jobs: --java-options --add-opens=javafx.base/javafx.collections=org.jabref \ --java-options --add-opens=javafx.base/javafx.collections.transformation=org.jabref \ --java-options --add-modules=jdk.incubator.vector + + # Add additional files / directories + cp buildres/mac/jabrefHost.py build/distribution/JabRef.app/Contents/ + cp -R buildres/mac/native-messaging-host build/distribution/JabRef.app/Contents/ + + # Sign the final artifact + codesign --force --deep --sign "Developer ID Application: JabRef e.V. (6792V39SK3)" \ + --entitlements buildres/mac/jabref.entitlements \ + --options runtime --timestamp build/distribution/JabRef.app + + # pack dmg and pkg + hdiutil create -volname "JabRef" -srcfolder build/distribution/JabRef.app -ov -format UDZO build/distribution/JabRef${{ matrix.suffix }}.dmg + productbuild --component build/distribution/JabRef.app /Applications --sign "Developer ID Installer: JabRef e.V. (6792V39SK3)" build/distribution/JabRef${{ matrix.suffix }}.pkg + + # Cleanup unpacked file + rm -rf build/distribution/JabRef.app - name: Build runtime image and installer (linux, Windows) - if: (matrix.os != 'macos-13') && (steps.checksecrets.outputs.secretspresent == 'YES') + if: (matrix.os != 'macos-13') && (matrix.os != 'macos-14') && (steps.checksecrets.outputs.secretspresent == 'YES') shell: bash - run: ./gradlew -i -PprojVersion="${{ steps.gitversion.outputs.AssemblySemVer }}" -PprojVersionInfo="${{ steps.gitversion.outputs.InformationalVersion }}" jpackage jlinkZip + run: ./gradlew -i -PprojVersion="${{ steps.gitversion.outputs.AssemblySemVer }}" -PprojVersionInfo="${{ steps.gitversion.outputs.InformationalVersion }}" :jabgui:jpackage :jabgui:jlinkZip - name: Package application image (linux, Windows) - if: (matrix.os != 'macos-13') && (steps.checksecrets.outputs.secretspresent == 'YES') + if: (matrix.os != 'macos-13') && (matrix.os != 'macos-14') && (steps.checksecrets.outputs.secretspresent == 'YES') shell: bash run: ${{ matrix.archivePortable }} - name: Rename files - if: (matrix.os != 'macos-13') && (steps.checksecrets.outputs.secretspresent == 'YES') + if: (matrix.os != 'macos-13') && (matrix.os != 'macos-14') && (steps.checksecrets.outputs.secretspresent == 'YES') shell: pwsh run: | - get-childitem -Path build/distribution/* | rename-item -NewName {$_.name -replace "${{ steps.gitversion.outputs.AssemblySemVer }}","${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}"} - get-childitem -Path build/distribution/* | rename-item -NewName {$_.name -replace "portable","${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}-portable"} + get-childitem -Path jabgui/build/distribution/* | rename-item -NewName {$_.name -replace "${{ steps.gitversion.outputs.AssemblySemVer }}","${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}"} + get-childitem -Path jabgui/build/distribution/* | rename-item -NewName {$_.name -replace "portable","${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}-portable"} - name: Repack deb file for Debian if: (matrix.os == 'ubuntu-22.04') && (steps.checksecrets.outputs.secretspresent == 'YES') shell: bash run: | - cd build/distribution + cd jabgui/build/distribution ar x jabref_${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}_amd64.deb zstd -d < control.tar.zst | xz > control.tar.xz zstd -d < data.tar.zst | xz > data.tar.xz @@ -221,7 +203,7 @@ jobs: rm debian-binary control.tar.* data.tar.* mv -f jabref_${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}_amd64_repackaged.deb jabref_${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}_amd64.deb - name: Setup rsync (macOS) - if: ${{ (!startsWith(github.ref, 'refs/heads/gh-readonly-queue')) && (steps.checksecrets.outputs.secretspresent == 'YES') && ((matrix.os == 'macos-13') && !((startsWith(github.ref, 'refs/tags/') || inputs.notarization == true))) }} + if: ${{ (!startsWith(github.ref, 'refs/heads/gh-readonly-queue')) && (steps.checksecrets.outputs.secretspresent == 'YES') && (((matrix.os == 'macos-13') || (matrix.os == 'macos-14')) && !((startsWith(github.ref, 'refs/tags/') || inputs.notarization == true))) }} run: brew install rsync - name: Setup rsync (Windows) if: (matrix.os == 'windows-latest') && (steps.checksecrets.outputs.secretspresent == 'YES') && (!startsWith(github.ref, 'refs/heads/gh-readonly-queue')) @@ -231,7 +213,7 @@ jobs: # We do not use egor-tensin/setup-cygwin@v4, because it replaces the default shell run: choco install --no-progress rsync - name: Setup SSH key - if: ${{ (steps.checksecrets.outputs.secretspresent == 'YES') && (!startsWith(github.ref, 'refs/heads/gh-readonly-queue')) && ((matrix.os != 'macos-13') || !((startsWith(github.ref, 'refs/tags/') || (inputs.notarization == true)))) }} + if: ${{ (steps.checksecrets.outputs.secretspresent == 'YES') && (!startsWith(github.ref, 'refs/heads/gh-readonly-queue')) && (!((startsWith(github.ref, 'refs/tags/') || (inputs.notarization == true)))) }} run: | echo "${{ secrets.buildJabRefPrivateKey }}" > sshkey chmod 600 sshkey @@ -240,21 +222,21 @@ jobs: shell: cmd # for rsync installed by chocolatey, we need the ssh.exe delivered with that installation run: | - rsync -rt --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r --itemize-changes --stats --rsync-path="mkdir -p /var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }} && rsync" -e 'C:\ProgramData\chocolatey\lib\rsync\tools\bin\ssh.exe -p 9922 -i sshkey -o StrictHostKeyChecking=no' build/distribution/ jrrsync@build-upload.jabref.org:/var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }}/ || true + rsync -rt --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r --itemize-changes --stats --rsync-path="mkdir -p /var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }} && rsync" -e 'C:\ProgramData\chocolatey\lib\rsync\tools\bin\ssh.exe -p 9922 -i sshkey -o StrictHostKeyChecking=no' jabgui/build/distribution/ jrrsync@build-upload.jabref.org:/var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }}/ || true - name: Upload to builds.jabref.org (linux, macOS) # macOS: Negated condition of "Upload to GitHub workflow artifacts store (macOS)" # Reason: We either upload the non-notarized files - or notarize the files later (and upload these later) # needs to be on one line; multi line does not work - if: ${{ (!startsWith(github.ref, 'refs/heads/gh-readonly-queue')) && (steps.checksecrets.outputs.secretspresent == 'YES') && ((matrix.os == 'ubuntu-22.04') || ((matrix.os == 'macos-13') && !((startsWith(github.ref, 'refs/tags/') || inputs.notarization == true)))) }} + if: ${{ (!startsWith(github.ref, 'refs/heads/gh-readonly-queue')) && (steps.checksecrets.outputs.secretspresent == 'YES') && ((matrix.os == 'ubuntu-22.04') || (matrix.os == 'macos-13') || (matrix.os == 'macos-14')) && !((startsWith(github.ref, 'refs/tags/') || inputs.notarization == true)) }} shell: bash run: | - rsync -rt --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r --itemize-changes --stats --rsync-path="mkdir -p /var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }} && rsync" -e 'ssh -p 9922 -i sshkey -o StrictHostKeyChecking=no' build/distribution/ jrrsync@build-upload.jabref.org:/var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }}/ || true + rsync -rt --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r --itemize-changes --stats --rsync-path="mkdir -p /var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }} && rsync" -e 'ssh -p 9922 -i sshkey -o StrictHostKeyChecking=no' jabgui/build/distribution/ jrrsync@build-upload.jabref.org:/var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }}/ || true - name: Upload to GitHub workflow artifacts store (macOS) - if: (matrix.os == 'macos-13') && (steps.checksecrets.outputs.secretspresent == 'YES') && (startsWith(github.ref, 'refs/tags/') || inputs.notarization == true) + if: ((matrix.os == 'macos-13') || (matrix.os == 'macos-14')) && (steps.checksecrets.outputs.secretspresent == 'YES') && (startsWith(github.ref, 'refs/tags/') || inputs.notarization == true) uses: actions/upload-artifact@v4 with: # tbn = to-be-notarized - name: JabRef-macOS-tbn + name: JabRef-macOS-tbn-${{ matrix.os }} path: build/distribution compression-level: 0 # no compression - name: Upload to GitHub workflow artifacts store @@ -293,7 +275,18 @@ jobs: mode: recreate notarize: # outsourced in a separate job to be able to rerun if this fails for timeouts name: macOS notarization - runs-on: macos-13 + strategy: + # Ensure that calls to Apple are sequentially made + max-parallel: 1 + matrix: + include: + - os: macos-13 # intel image + displayName: macOS + suffix: '' + - os: macos-14 + displayName: macOS (ARM64) + suffix: '-arm64' + runs-on: ${{ matrix.os }} needs: [build] if: ${{ startsWith(github.ref, 'refs/tags/') || inputs.notarization == true }} steps: @@ -314,26 +307,28 @@ jobs: if: (steps.checksecrets.outputs.secretspresent == 'YES') uses: actions/download-artifact@v4 with: - name: JabRef-macOS-tbn - path: build/distribution/ + name: JabRef-macOS-tbn-${{ matrix.os }} + path: jabgui/build/distribution/ - name: Notarize dmg if: (steps.checksecrets.outputs.secretspresent == 'YES') shell: bash run: | + cd jabgui xcrun notarytool store-credentials "notarytool-profile" --apple-id "vorstand@jabref.org" --team-id "6792V39SK3" --password "${{ secrets.OSX_NOTARIZATION_APP_PWD }}" - xcrun notarytool submit build/distribution/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}.dmg --keychain-profile "notarytool-profile" --wait - xcrun stapler staple build/distribution/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}.dmg + xcrun notarytool submit build/distribution/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.dmg --keychain-profile "notarytool-profile" --wait + xcrun stapler staple build/distribution/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.dmg - name: Notarize pkg if: (steps.checksecrets.outputs.secretspresent == 'YES') shell: bash run: | + cd jabgui xcrun notarytool store-credentials "notarytool-profile" --apple-id "vorstand@jabref.org" --team-id "6792V39SK3" --password "${{ secrets.OSX_NOTARIZATION_APP_PWD }}" - xcrun notarytool submit build/distribution/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}.pkg --keychain-profile "notarytool-profile" --wait - xcrun stapler staple build/distribution/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}.pkg + xcrun notarytool submit build/distribution/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.pkg --keychain-profile "notarytool-profile" --wait + xcrun stapler staple build/distribution/JabRef-${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.pkg - name: Upload to builds.jabref.org if: (steps.checksecrets.outputs.secretspresent == 'YES') shell: bash run: | echo "${{ secrets.buildJabRefPrivateKey }}" > sshkey chmod 600 sshkey - rsync -rt --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r --itemize-changes --stats --rsync-path="mkdir -p /var/www/builds.jabref.org/www/${{ needs.build.outputs.branchname }} && rsync" -e 'ssh -p 9922 -i sshkey -o StrictHostKeyChecking=no' build/distribution/ jrrsync@build-upload.jabref.org:/var/www/builds.jabref.org/www/${{ needs.build.outputs.branchname }}/ + rsync -rt --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r --itemize-changes --stats --rsync-path="mkdir -p /var/www/builds.jabref.org/www/${{ needs.build.outputs.branchname }} && rsync" -e 'ssh -p 9922 -i sshkey -o StrictHostKeyChecking=no' jabgui/build/distribution/ jrrsync@build-upload.jabref.org:/var/www/builds.jabref.org/www/${{ needs.build.outputs.branchname }}/ diff --git a/.github/workflows/product-map.yml b/.github/workflows/product-map.yml index c5dc9f5a6be..1c840641a1f 100644 --- a/.github/workflows/product-map.yml +++ b/.github/workflows/product-map.yml @@ -9,7 +9,7 @@ on: jobs: generate-map: runs-on: ubuntu-latest - if: false() + if: false steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/.github/workflows/tests-fetchers.yml b/.github/workflows/tests-fetchers.yml index d31552a4802..ed40aff67df 100644 --- a/.github/workflows/tests-fetchers.yml +++ b/.github/workflows/tests-fetchers.yml @@ -55,8 +55,8 @@ jobs: - name: Set up JDK uses: actions/setup-java@v4 with: - java-version: 23.0.1 - distribution: 'temurin' + java-version: 24.0.1 + distribution: 'zulu' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Run fetcher tests diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 88809faf2b1..0dd8de01c97 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -37,8 +37,8 @@ jobs: - name: Set up JDK uses: actions/setup-java@v4 with: - java-version: 23.0.1 - distribution: 'temurin' + java-version: 24.0.1 + distribution: 'zulu' - name: Run checkstyle reporter uses: dbelyaev/action-checkstyle@master with: @@ -62,8 +62,8 @@ jobs: - name: Set up JDK uses: actions/setup-java@v4 with: - java-version: 23.0.1 - distribution: 'temurin' + java-version: 24.0.1 + distribution: 'zulu' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Run OpenRewrite @@ -82,14 +82,14 @@ jobs: - name: Set up JDK uses: actions/setup-java@v4 with: - java-version: 23.0.1 - distribution: 'temurin' + java-version: 24.0.1 + distribution: 'zulu' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Run modernizer run: | # enable failing of this task if modernizer complains - sed -i "s/failOnViolations = false/failOnViolations = true/" build.gradle + # sed -i "s/failOnViolations = false/failOnViolations = true/" build.gradle.kts ./gradlew modernizer markdown: @@ -167,8 +167,11 @@ jobs: <(git show HEAD:CHANGELOG.md | clparse --format=json --separator=– - | jq '.releases[] | select(.version != null)') tests: - name: Unit tests + name: Unit tests – ${{ matrix.module }} runs-on: ubuntu-latest + strategy: + matrix: + module: [jablib, jabkit, jabsrv, jabgui] steps: - name: Checkout source uses: actions/checkout@v4 @@ -178,12 +181,12 @@ jobs: - name: Set up JDK uses: actions/setup-java@v4 with: - java-version: 23.0.1 - distribution: 'temurin' + java-version: 24.0.1 + distribution: 'zulu' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - - name: Run tests - run: xvfb-run --auto-servernum ./gradlew check -x checkstyleJmh -x checkstyleMain -x checkstyleTest -x modernizer + - name: Run ${{ matrix.module }} tests + run: xvfb-run --auto-servernum ./gradlew :${{ matrix.module }}:check -x checkstyleJmh -x checkstyleMain -x checkstyleTest -x modernizer env: CI: "true" - name: Prepare format failed test results @@ -211,6 +214,8 @@ jobs: # needed because the postgres container does not provide a healthcheck options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 steps: + - name: Shutdown Ubuntu MySQL + run: sudo service mysql stop # Shutdown the Default MySQL to save memory, "sudo" is necessary, please do not remove it - name: Checkout source uses: actions/checkout@v4 with: @@ -219,55 +224,18 @@ jobs: - name: Set up JDK uses: actions/setup-java@v4 with: - java-version: 23.0.1 - distribution: 'temurin' + java-version: 24.0.1 + distribution: 'zulu' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Run tests on PostgreSQL - run: ./gradlew databaseTest --rerun-tasks + run: ./gradlew :jablib:databaseTest --rerun-tasks env: CI: "true" DBMS: "postgresql" - - name: Shutdown Ubuntu MySQL - run: sudo service mysql stop # Shutdown the Default MySQL, "sudo" is necessary, please not remove it - - name: Start custom MySQL - uses: mirromutth/mysql-action@v1.1 - with: - host port: 3800 - container port: 3307 - character set server: 'utf8' - collation server: 'utf8_general_ci' - mysql version: '8.0' - mysql database: 'jabref' - mysql root password: 'root' - - name: Run tests on MySQL - run: ./gradlew databaseTest --rerun-tasks - env: - CI: "true" - DBMS: "mysql" - - guitests: - name: GUI tests - runs-on: ubuntu-latest - steps: - - name: Checkout source - uses: actions/checkout@v4 - with: - submodules: 'true' - show-progress: 'false' - - name: Set up JDK - uses: actions/setup-java@v4 - with: - java-version: 23.0.1 - distribution: 'temurin' - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - name: Run GUI tests - run: xvfb-run --auto-servernum ./gradlew guiTest - env: - CI: "true" codecoverage: + if: false name: Code coverage runs-on: ubuntu-latest services: @@ -306,8 +274,8 @@ jobs: if: github.ref == 'refs/heads/main' uses: actions/setup-java@v4 with: - java-version: 23.0.1 - distribution: 'temurin' + java-version: 24.0.1 + distribution: 'zulu' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Update test coverage metrics @@ -337,12 +305,12 @@ jobs: - name: Set up JDK uses: actions/setup-java@v4 with: - java-version: 23.0.1 - distribution: 'temurin' + java-version: 24.0.1 + distribution: 'zulu' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - run: ./gradlew traceRequirements - - if: failure() + - if: always() run: cat build/reports/tracing.txt # This is https://github.com/marketplace/actions/gradle-wrapper-validation @@ -482,7 +450,7 @@ jobs: unmodified_submodules: name: Submodules not modified - if: github.actor != 'dependabot[bot]' && github.event_name == 'pull_request' + if: false && (github.actor != 'dependabot[bot]' && github.event_name == 'pull_request') runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/update-gradle-wrapper.yml b/.github/workflows/update-gradle-wrapper.yml index edcb9727b3e..863cc801052 100644 --- a/.github/workflows/update-gradle-wrapper.yml +++ b/.github/workflows/update-gradle-wrapper.yml @@ -15,8 +15,8 @@ jobs: - name: Setup JDK uses: actions/setup-java@v4 with: - java-version: 23.0.1 - distribution: 'temurin' + java-version: 24.0.1 + distribution: 'zulu' - name: Update Gradle Wrapper uses: gradle-update/update-gradle-wrapper-action@v2 diff --git a/.gitignore b/.gitignore index 2e33739ec64..d0be21930a0 100644 --- a/.gitignore +++ b/.gitignore @@ -3,8 +3,17 @@ src/main/gen/ src/main/generated/ src-gen/ +src/main/resources/csl-styles +src/main/resources/csl-locales +buildres/abbrv.jabref.org + +jablib/src/main/resources/csl-styles +jablib/src/main/resources/csl-locales + .lycheecache +.kotlin + javafx/javafx-sdk-* javafx/javafx-jmods-* javafx/javafx.html @@ -567,3 +576,6 @@ lib/ojdbc.jar # generated during release process CHANGELOG.html + +# some strange gradle/IntelliJ extension +extension 'reporting' property 'baseDirectory' diff --git a/.gitmodules b/.gitmodules index 10944a3d5a0..c2346184061 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,15 +1,15 @@ [submodule "abbrv.jabref.org"] - path = buildres/abbrv.jabref.org + path = jablib/src/main/abbrv.jabref.org url = https://github.com/JabRef/abbrv.jabref.org.git ignore = all shallow = true [submodule "csl-styles"] - path = src/main/resources/csl-styles + path = jablib/src/main/resources/csl-styles url = https://github.com/citation-style-language/styles.git ignore = all shallow = true [submodule "csl-locales"] - path = src/main/resources/csl-locales + path = jablib/src/main/resources/csl-locales url = https://github.com/citation-style-language/locales.git ignore = all shallow = true diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile deleted file mode 100644 index 61c8da1a8e2..00000000000 --- a/.gitpod.Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -# See https://www.gitpod.io/docs/java-in-gitpod/ for a full documentation of Java in GitPod - -FROM gitpod/workspace-full - -# All available versions can be listed using sdk ls java -# More information about SDKMAN available at https://github.com/sdkman/sdkman-cli#sdkman-cli -RUN bash -c ". /home/gitpod/.sdkman/bin/sdkman-init.sh \ - && sdk install java 23-open" diff --git a/.moderne/moderne.yml b/.moderne/moderne.yml index e90c2b39622..970c3c0479c 100644 --- a/.moderne/moderne.yml +++ b/.moderne/moderne.yml @@ -1,3 +1,3 @@ specs: specs.moderne.ai/v1/cli java: - selectedJdk: '23' + selectedJdk: '24' diff --git a/.vscode/settings.json b/.vscode/settings.json index 3ae9e077a75..6ae28fd085f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,5 +2,6 @@ "java.configuration.updateBuildConfiguration": "interactive", "java.format.settings.url": "/config/VSCode Code Style.xml", "java.checkstyle.configuration": "${workspaceFolder}/config/checkstyle/checkstyle_reviewdog.xml", - "java.checkstyle.version": "10.21.0" + "java.checkstyle.version": "10.21.0", + "java.compile.nullAnalysis.mode": "automatic" } diff --git a/CHANGELOG.md b/CHANGELOG.md index bf1b751b524..c2a73a06e61 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,9 @@ Note that this project **does not** adhere to [Semantic Versioning](https://semv ### Removed +- We removed support for MySQL/MariaDB and Oracle. +- We removed library migrations (users need to use JabRef 6.0-alpha.1 to perform migrations) [#12990](https://github.com/JabRef/jabref/pull/12990) + ## [6.0-alpha2] – 2025-04-27 ### Added diff --git a/build-logic/README.md b/build-logic/README.md new file mode 100644 index 00000000000..f85c92aa97d --- /dev/null +++ b/build-logic/README.md @@ -0,0 +1,4 @@ +# JabRef build logic + +This directory contains gradle instructions for the build. +Initially, it was created by `gradle init` using gradle 8.13. diff --git a/build-logic/build.gradle.kts b/build-logic/build.gradle.kts new file mode 100644 index 00000000000..58a475186fc --- /dev/null +++ b/build-logic/build.gradle.kts @@ -0,0 +1,27 @@ +import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform + +plugins { + `kotlin-dsl` +} + +repositories { + gradlePluginPortal() +} + +dependencies { + configurations + .matching { it.name.contains("downloadSources") } + .configureEach { + attributes { + attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage::class.java, Usage.JAVA_RUNTIME)) + attribute( + OperatingSystemFamily.OPERATING_SYSTEM_ATTRIBUTE, + objects.named(OperatingSystemFamily::class.java, DefaultNativePlatform.getCurrentOperatingSystem().name) + ) + attribute( + MachineArchitecture.ARCHITECTURE_ATTRIBUTE, + objects.named(MachineArchitecture::class.java, DefaultNativePlatform.getCurrentArchitecture().name) + ) + } + } +} diff --git a/build-logic/settings.gradle.kts b/build-logic/settings.gradle.kts new file mode 100644 index 00000000000..7fbbd448ef1 --- /dev/null +++ b/build-logic/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "build-logic" diff --git a/build-logic/src/main/kotlin/buildlogic.java-common-conventions.gradle.kts b/build-logic/src/main/kotlin/buildlogic.java-common-conventions.gradle.kts new file mode 100644 index 00000000000..fee6c7710f8 --- /dev/null +++ b/build-logic/src/main/kotlin/buildlogic.java-common-conventions.gradle.kts @@ -0,0 +1,56 @@ +plugins { + java + + id("idea") + + // id("checkstyle") + + // id("jacoco") + + id("project-report") +} + +repositories { + mavenCentral() + maven { url = uri("https://s01.oss.sonatype.org/content/repositories/snapshots/") } + maven { url = uri("https://oss.sonatype.org/content/repositories/snapshots") } + maven { url = uri("https://jitpack.io") } + maven { url = uri("https://oss.sonatype.org/content/groups/public") } + + // Required for one.jpro.jproutils:tree-showing + maven { url = uri("https://sandec.jfrog.io/artifactory/repo") } +} + +dependencies { + constraints { + // Define dependency versions as constraints + // implementation("org.apache.commons:commons-text:1.12.0") + } +} + +testing { + suites { + val test by getting(JvmTestSuite::class) { + useJUnitJupiter("5.12.2") + } + } +} + +java { + toolchain { + // If this is updated, also update + // - build.gradle -> jacoco -> toolVersion (because JaCoCo does not support newest JDK out of the box. Check versions at https://www.jacoco.org/jacoco/trunk/doc/changes.html) + // - .devcontainer/devcontainer.json#L34 and + // - .moderne/moderne.yml + // - .github/workflows/deployment*.yml + // - .github/workflows/tests*.yml + // - .github/workflows/update-gradle-wrapper.yml + // - docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.md + // - mise.toml + languageVersion = JavaLanguageVersion.of(24) + // See https://docs.gradle.org/current/javadoc/org/gradle/jvm/toolchain/JvmVendorSpec.html for a full list + // See https://docs.gradle.org/current/javadoc/org/gradle/jvm/toolchain/JvmVendorSpec.html for a full list + // Temurin does not ship jmods, thus we need to use another JDK -- see https://github.com/actions/setup-java/issues/804 + vendor = JvmVendorSpec.AZUL + } +} diff --git a/build.gradle b/build.gradle deleted file mode 100644 index 6f5c74cae09..00000000000 --- a/build.gradle +++ /dev/null @@ -1,1025 +0,0 @@ -import org.gradle.internal.os.OperatingSystem -import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform -import org.jabref.build.xjc.XjcPlugin -import org.jabref.build.xjc.XjcTask - -plugins { - id 'application' - - id 'com.github.andygoossens.modernizer' version '1.10.0' - - id 'me.champeau.jmh' version '0.7.3' - - // This is https://github.com/java9-modularity/gradle-modules-plugin/pull/282 - id 'com.github.koppor.gradle-modules-plugin' version 'v1.8.15-cmd-1' - - id 'org.openjfx.javafxplugin' version '0.1.0' - - id 'org.beryx.jlink' version '3.1.1' - - // nicer test outputs during running and completion - // Homepage: https://github.com/radarsh/gradle-test-logger-plugin - id 'com.adarshr.test-logger' version '4.0.0' - - id 'jacoco' - - id 'checkstyle' - - id 'project-report' - - id 'idea' - - id 'org.openrewrite.rewrite' version '7.3.0' - - id "org.itsallcode.openfasttrace" version "3.0.1" -} - -// Enable following for debugging -// gradle.startParameter.showStacktrace = org.gradle.api.logging.configuration.ShowStacktrace. - -apply plugin: XjcPlugin - -apply from: 'eclipse.gradle' - -group = "org.jabref" -version = project.findProperty('projVersion') ?: '100.0.0' - -java { - sourceCompatibility = JavaVersion.VERSION_23 - targetCompatibility = JavaVersion.VERSION_23 - - // Workaround needed for Eclipse, probably because of https://github.com/gradle/gradle/issues/16922 - // Should be removed as soon as Gradle 7.0.1 is released ( https://github.com/gradle/gradle/issues/16922#issuecomment-828217060 ) - modularity.inferModulePath.set(false) - - toolchain { - // If this is updated, also update - // - build.gradle -> jacoco -> toolVersion (because JaCoCo does not support newest JDK out of the box. Check versions at https://www.jacoco.org/jacoco/trunk/doc/changes.html) - // - .devcontainer/devcontainer.json#L34 and - // - .gitpod.Dockerfile - // - .moderne/moderne.yml - // - .github/workflows/deployment*.yml - // - .github/workflows/tests*.yml - // - .github/workflows/update-gradle-wrapper.yml - // - docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.md - // - mise.toml - languageVersion = JavaLanguageVersion.of(23) - // See https://docs.gradle.org/current/javadoc/org/gradle/jvm/toolchain/JvmVendorSpec.html for a full list - // vendor = JvmVendorSpec.AMAZON - } -} - -application { - mainClass.set('org.jabref.Launcher') - mainModule.set('org.jabref') - - applicationDefaultJvmArgs = [ - // On a change here, also adapt - // 1. "run > moduleOptions" - // 2. "deployment.yml" (macOS part) - // 3. "deployment-arm64.yml" - - // Note that the arguments are cleared for the "run" task to avoid messages like "WARNING: Unknown module: org.jabref.merged.module specified to --add-exports" - - // Fix for https://github.com/JabRef/jabref/issues/11188 - '--add-exports=javafx.base/com.sun.javafx.event=org.jabref.merged.module', - '--add-exports=javafx.controls/com.sun.javafx.scene.control=org.jabref.merged.module', - - // Fix for https://github.com/JabRef/jabref/issues/11198 - '--add-opens=javafx.graphics/javafx.scene=org.jabref.merged.module', - '--add-opens=javafx.controls/javafx.scene.control=org.jabref.merged.module', - '--add-opens=javafx.controls/com.sun.javafx.scene.control=org.jabref.merged.module', - // fix for https://github.com/JabRef/jabref/issues/11426 - '--add-opens=javafx.controls/javafx.scene.control.skin=org.jabref.merged.module', - - // Fix for https://github.com/JabRef/jabref/issues/11225 on linux - '--add-opens=javafx.controls/javafx.scene.control=org.jabref', - '--add-exports=javafx.base/com.sun.javafx.event=org.jabref', - '--add-exports=javafx.controls/com.sun.javafx.scene.control=org.jabref', - '--add-opens=javafx.graphics/javafx.scene=org.jabref', - '--add-opens=javafx.controls/javafx.scene.control=org.jabref', - '--add-opens=javafx.controls/com.sun.javafx.scene.control=org.jabref', - - '--add-opens=javafx.base/javafx.collections=org.jabref', - '--add-opens=javafx.base/javafx.collections.transformation=org.jabref', - - '--enable-native-access=javafx.graphics,javafx.media,javafx.web,org.apache.lucene.core' - ] -} - -// Workaround for https://github.com/openjfx/javafx-gradle-plugin/issues/89 -// See also https://github.com/java9-modularity/gradle-modules-plugin/issues/165 -modularity.disableEffectiveArgumentsAdjustment() - -sourceSets { - main { - java { - // src-gen reasoning: https://stackoverflow.com/a/64612308/873282 - srcDirs = ["src/main/java", "src-gen/main/java"] - } - resources { - srcDirs = ["src/main/java", "src/main/resources"] - } - } - test { - java { - srcDirs = ["src/test/java"] - } - resources { - srcDirs = ["src/test/resources"] - } - } -} - -repositories { - mavenCentral() - maven { url = 'https://s01.oss.sonatype.org/content/repositories/snapshots/' } - maven { url = 'https://oss.sonatype.org/content/repositories/snapshots' } - maven { url = 'https://jitpack.io' } - maven { url = 'https://oss.sonatype.org/content/groups/public' } - - // Required for one.jpro.jproutils:tree-showing - maven { url = 'https://sandec.jfrog.io/artifactory/repo' } -} - -configurations { - antlr4 -} - -dependencyLocking { - lockAllConfigurations() -} - -javafx { - version = "24" - modules = [ 'javafx.controls', 'javafx.fxml', 'javafx.web', 'javafx.swing' ] -} - -jacoco { - toolVersion = "0.8.13" -} - -dependencies { - // Include all jar-files in the 'lib' folder as dependencies - implementation fileTree(dir: 'lib', includes: ['*.jar']) - - def pdfbox = "3.0.4" - implementation ("org.apache.pdfbox:pdfbox:$pdfbox") { - exclude group: 'commons-logging' - } - implementation ("org.apache.pdfbox:fontbox:$pdfbox") { - exclude group: 'commons-logging' - } - implementation ("org.apache.pdfbox:xmpbox:$pdfbox") { - exclude group: 'org.junit.jupiter' - exclude group: 'commons-logging' - } - - def luceneVersion = "10.2.0" - implementation "org.apache.lucene:lucene-core:$luceneVersion" - implementation "org.apache.lucene:lucene-queryparser:$luceneVersion" - implementation "org.apache.lucene:lucene-queries:$luceneVersion" - implementation "org.apache.lucene:lucene-analysis-common:$luceneVersion" - implementation "org.apache.lucene:lucene-highlighter:$luceneVersion" - - implementation group: 'org.apache.commons', name: 'commons-csv', version: '1.14.0' - implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.17.0' - implementation group: 'org.apache.commons', name: 'commons-text', version: '1.13.1' - implementation 'commons-logging:commons-logging:1.3.5' - implementation 'com.h2database:h2-mvstore:2.3.232' - - // required for reading write-protected PDFs - see https://github.com/JabRef/jabref/pull/942#issuecomment-209252635 - implementation 'org.bouncycastle:bcprov-jdk18on:1.80' - - implementation 'commons-cli:commons-cli:1.9.0' - - // region: LibreOffice - implementation 'org.libreoffice:unoloader:24.8.4' - implementation 'org.libreoffice:libreoffice:24.8.4' - // Required for ID generation - implementation 'io.github.thibaultmeyer:cuid:2.0.3' - // endregion - - implementation 'io.github.java-diff-utils:java-diff-utils:4.15' - implementation 'info.debatty:java-string-similarity:2.0.0' - implementation 'com.github.javakeyring:java-keyring:1.0.4' - - antlr4 'org.antlr:antlr4:4.13.2' - implementation 'org.antlr:antlr4-runtime:4.13.2' - - implementation group: 'org.eclipse.jgit', name: 'org.eclipse.jgit', version: '7.2.0.202503040940-r' - - implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: '2.18.3' - implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: '2.18.3' - - implementation 'com.fasterxml:aalto-xml:1.3.3' - - implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '2.7.12' - - implementation 'org.postgresql:postgresql:42.7.5' - - // Support unix socket connection types - implementation 'com.kohlschutter.junixsocket:junixsocket-core:2.10.1' - implementation 'com.kohlschutter.junixsocket:junixsocket-mysql:2.10.1' - - implementation ('com.oracle.ojdbc:ojdbc10:19.3.0.0') { - // causing module issues - exclude module: 'oraclepki' - } - - implementation 'com.google.guava:guava:33.4.8-jre' - - implementation 'jakarta.annotation:jakarta.annotation-api:2.1.1' - implementation 'jakarta.inject:jakarta.inject-api:2.0.1' - - implementation('org.jabref:afterburner.fx:2.0.0') { - exclude group: 'org.openjfx' - } - implementation 'org.kordamp.ikonli:ikonli-javafx:12.4.0' - implementation 'org.kordamp.ikonli:ikonli-materialdesign2-pack:12.4.0' - implementation 'com.github.sialcasa.mvvmFX:mvvmfx-validation:f195849ca9' //jitpack - implementation 'de.saxsys:mvvmfx:1.8.0' - implementation('org.jabref:easybind:2.2.1-SNAPSHOT') { - exclude group: 'org.openjfx' - } - implementation 'org.fxmisc.flowless:flowless:0.7.4' - implementation 'org.fxmisc.richtext:richtextfx:0.11.5' - implementation (group: 'com.dlsc.gemsfx', name: 'gemsfx', version: '2.96.0') { - exclude module: 'javax.inject' // Split package, use only jakarta.inject - exclude module: 'commons-lang3' - exclude group: 'org.apache.commons.validator' - exclude group: 'org.apache.commons.commons-logging' - exclude module: 'kotlin-stdlib-jdk8' - exclude group: 'com.squareup.retrofit2' - exclude group: 'org.openjfx' - exclude group: 'org.apache.logging.log4j' - exclude group: 'tech.units' - } - // Required by gemsfx - implementation 'tech.units:indriya:2.2.2' - // Required by gemsfx and langchain4j - implementation ('com.squareup.retrofit2:retrofit:2.11.0') { - exclude group: 'com.squareup.okhttp3' - } - - implementation 'org.controlsfx:controlsfx:11.2.2' - - // region HTTP clients - implementation 'org.jsoup:jsoup:1.19.1' - implementation 'com.konghq:unirest-java-core:4.4.6' - implementation 'com.konghq:unirest-modules-gson:4.4.6' - implementation 'org.apache.httpcomponents.client5:httpclient5:5.4.3' - // endregion - - implementation 'org.slf4j:slf4j-api:2.0.17' - implementation 'org.tinylog:tinylog-api:2.7.0' - implementation 'org.tinylog:slf4j-tinylog:2.7.0' - implementation 'org.tinylog:tinylog-impl:2.7.0' - - // route all requests to java.util.logging to SLF4J (which in turn routes to tinylog) - implementation 'org.slf4j:jul-to-slf4j:2.0.17' - // route all requests to log4j to SLF4J - implementation 'org.apache.logging.log4j:log4j-to-slf4j:2.24.3' - - implementation('de.undercouch:citeproc-java:3.2.1') { - exclude group: 'org.antlr' - } - - // jakarta.activation is already dependency of glassfish - implementation group: 'jakarta.xml.bind', name: 'jakarta.xml.bind-api', version: '4.0.2' - implementation group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: '4.0.3' - - implementation ('com.github.tomtung:latex2unicode_2.13:0.3.2') { - exclude module: 'fastparse_2.13' - } - - implementation "de.rototor.snuggletex:snuggletex:1.3.0" - implementation ("de.rototor.snuggletex:snuggletex-jeuclid:1.3.0") { - exclude group: "org.apache.xmlgraphics" - } - - implementation 'com.vladsch.flexmark:flexmark:0.64.8' - implementation 'com.vladsch.flexmark:flexmark-html2md-converter:0.64.8' - - implementation group: 'net.harawata', name: 'appdirs', version: '1.4.0' - - implementation group: 'org.jooq', name: 'jool', version: '0.9.15' - // JAX-RS implemented by Jersey - // API - implementation 'jakarta.ws.rs:jakarta.ws.rs-api:4.0.0' - // Implementation of the API - implementation 'org.glassfish.jersey.core:jersey-server:3.1.10' - // injection framework - implementation 'org.glassfish.jersey.inject:jersey-hk2:3.1.10' - implementation 'org.glassfish.hk2:hk2-api:3.1.1' - // testImplementation 'org.glassfish.hk2:hk2-testing:3.0.4' - // implementation 'org.glassfish.hk2:hk2-testing-jersey:3.0.4' - // testImplementation 'org.glassfish.hk2:hk2-junitrunner:3.0.4' - // HTTP server - // implementation 'org.glassfish.jersey.containers:jersey-container-netty-http:3.1.1' - implementation 'org.glassfish.jersey.containers:jersey-container-grizzly2-http:3.1.10' - testImplementation 'org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-grizzly2:3.1.10' - // Allow objects "magically" to be mapped to JSON using GSON - // implementation 'org.glassfish.jersey.media:jersey-media-json-gson:3.1.1' - - // Because of GraalVM quirks, we need to ship that. See https://github.com/jspecify/jspecify/issues/389#issuecomment-1661130973 for details - implementation 'org.jspecify:jspecify:1.0.0' - - // parse plist files - implementation 'com.googlecode.plist:dd-plist:1.28' - - // Parse lnk files - implementation 'com.github.vatbub:mslinks:1.0.6.2' - - // YAML formatting - implementation 'org.yaml:snakeyaml:2.4' - - // region AI - implementation 'dev.langchain4j:langchain4j:0.36.2' - // Even though we use jvm-openai for LLM connection, we still need this package for tokenization. - implementation('dev.langchain4j:langchain4j-open-ai:0.36.2') { - exclude group: 'com.squareup.okhttp3' - exclude group: 'com.squareup.retrofit2', module: 'retrofit' - exclude group: 'org.jetbrains.kotlin' - } - implementation('dev.langchain4j:langchain4j-mistral-ai:0.36.2') { - exclude group: 'com.squareup.okhttp3' - exclude group: 'com.squareup.retrofit2', module: 'retrofit' - exclude group: 'org.jetbrains.kotlin' - } - implementation('dev.langchain4j:langchain4j-google-ai-gemini:0.36.2') { - exclude group: 'com.squareup.okhttp3' - exclude group: 'com.squareup.retrofit2', module: 'retrofit' - } - implementation('dev.langchain4j:langchain4j-hugging-face:0.36.2') { - exclude group: 'com.squareup.okhttp3' - exclude group: 'com.squareup.retrofit2', module: 'retrofit' - exclude group: 'org.jetbrains.kotlin' - } - - implementation 'org.apache.velocity:velocity-engine-core:2.4.1' - implementation platform('ai.djl:bom:0.32.0') - implementation 'ai.djl:api' - implementation 'ai.djl.huggingface:tokenizers' - implementation 'ai.djl.pytorch:pytorch-model-zoo' - implementation 'io.github.stefanbratanov:jvm-openai:0.11.0' - // openai depends on okhttp, which needs kotlin - see https://github.com/square/okhttp/issues/5299 for details - implementation ('com.squareup.okhttp3:okhttp:4.12.0') { - exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8' - } - // GemxFX also (transitively) depends on kotlin - implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.20' - // endregion - - implementation 'commons-io:commons-io:2.19.0' - - // Even if "compileOnly" is used, IntelliJ always adds to module-info.java. To avoid issues during committing, we use "implementation" instead of "compileOnly" - implementation 'io.github.adr:e-adr:2.0.0-SNAPSHOT' - - implementation 'io.zonky.test:embedded-postgres:2.1.0' - implementation enforcedPlatform('io.zonky.test.postgres:embedded-postgres-binaries-bom:17.4.0') - implementation 'io.zonky.test.postgres:embedded-postgres-binaries-darwin-arm64v8' - implementation 'io.zonky.test.postgres:embedded-postgres-binaries-linux-arm64v8' - - testImplementation 'io.github.classgraph:classgraph:4.8.179' - testImplementation 'org.junit.jupiter:junit-jupiter:5.12.2' - testImplementation 'org.junit.platform:junit-platform-launcher:1.12.2' - - testImplementation 'org.mockito:mockito-core:5.17.0' - testImplementation 'org.xmlunit:xmlunit-core:2.10.0' - testImplementation 'org.xmlunit:xmlunit-matchers:2.10.0' - testRuntimeOnly 'com.tngtech.archunit:archunit-junit5-engine:1.4.0' - testImplementation 'com.tngtech.archunit:archunit-junit5-api:1.4.0' - testImplementation "org.testfx:testfx-core:4.0.16-alpha" - testImplementation "org.testfx:testfx-junit5:4.0.16-alpha" - testImplementation "org.hamcrest:hamcrest-library:3.0" - testImplementation "com.github.javaparser:javaparser-symbol-solver-core:3.26.4" - - // recommended by https://github.com/wiremock/wiremock/issues/2149#issuecomment-1835775954 - testImplementation 'org.wiremock:wiremock-standalone:3.12.1' - - checkstyle 'com.puppycrawl.tools:checkstyle:10.23.0' - // xjc needs the runtime as well for the ant task, otherwise it fails - xjc group: 'org.glassfish.jaxb', name: 'jaxb-xjc', version: '3.0.2' - xjc group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: '3.0.2' - - rewrite(platform("org.openrewrite.recipe:rewrite-recipe-bom:3.6.1")) - rewrite("org.openrewrite.recipe:rewrite-static-analysis") - rewrite("org.openrewrite.recipe:rewrite-logging-frameworks") - rewrite("org.openrewrite.recipe:rewrite-testing-frameworks") - rewrite("org.openrewrite.recipe:rewrite-migrate-java") - - configurations.checkstyle { - resolutionStrategy.capabilitiesResolution.withCapability("com.google.collections:google-collections") { - select("com.google.guava:guava:0") - } - } - - configurations - .matching(c -> c.name.contains("downloadSources")) - .configureEach { - attributes { - attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage, Usage.JAVA_RUNTIME)) - attribute(OperatingSystemFamily.OPERATING_SYSTEM_ATTRIBUTE, objects.named(OperatingSystemFamily, DefaultNativePlatform.getCurrentOperatingSystem().getName())) - attribute(MachineArchitecture.ARCHITECTURE_ATTRIBUTE, objects.named(MachineArchitecture, DefaultNativePlatform.getCurrentArchitecture().getName())) - } - } -} - -clean { - delete "src/main/generated" - delete "src-gen" -} - -processResources { - filteringCharset = 'UTF-8' - - filesMatching("build.properties") { - expand(version: project.findProperty('projVersionInfo') ?: '100.0.0', - "year": String.valueOf(Calendar.getInstance().get(Calendar.YEAR)), - "maintainers": new File('MAINTAINERS').readLines().findAll { !it.startsWith("#") }.join(", "), - "azureInstrumentationKey": System.getenv('AzureInstrumentationKey') ? System.getenv('AzureInstrumentationKey') : '', - "springerNatureAPIKey": System.getenv('SpringerNatureAPIKey') ? System.getenv('SpringerNatureAPIKey') : '', - "astrophysicsDataSystemAPIKey": System.getenv('AstrophysicsDataSystemAPIKey') ? System.getenv('AstrophysicsDataSystemAPIKey') : '', - "ieeeAPIKey": System.getenv('IEEEAPIKey') ? System.getenv('IEEEAPIKey') : '', - "scienceDirectApiKey": System.getenv('SCIENCEDIRECTAPIKEY') ? System.getenv('SCIENCEDIRECTAPIKEY') : '', - "biodiversityHeritageApiKey": System.getenv('BiodiversityHeritageApiKey') ? System.getenv('BiodiversityHeritageApiKey') : '', - "semanticScholarApiKey": System.getenv('SemanticScholarApiKey') ? System.getenv("SemanticScholarApiKey") : '' - ) - filteringCharset = 'UTF-8' - } - - filesMatching(["resources/resource/ods/meta.xml", "resources/resource/openoffice/meta.xml"]) { - expand version: project.version - } -} - -tasks.register('generateSource') { - dependsOn("generateBstGrammarSource", - "generateSearchGrammarSource", - "generateLtwaGrammarSource", - "generateCitaviSource") - group = 'JabRef' - description = 'Generates all necessary (Java) source files.' -} - -tasks.register("generateBstGrammarSource", JavaExec) { - group = "JabRef" - description = 'Generates BstLexer.java and BstParser.java from the Bst.g4 grammar file using antlr4.' - classpath = configurations.antlr4 - mainClass = "org.antlr.v4.Tool" - javaLauncher.set(javaToolchains.launcherFor(java.toolchain)) - - inputs.dir('src/main/antlr4/org/jabref/bst/') - outputs.dir("src-gen/main/java/org/jabref/logic/bst/") - args = ["-o", "src-gen/main/java/org/jabref/logic/bst/", "-visitor", "-no-listener", "-package", "org.jabref.logic.bst", "$projectDir/src/main/antlr4/org/jabref/bst/Bst.g4"] -} - -tasks.register("generateSearchGrammarSource", JavaExec) { - group = 'JabRef' - description = "Generates java files for Search.g4 antlr4." - classpath = configurations.antlr4 - mainClass = "org.antlr.v4.Tool" - javaLauncher.set(javaToolchains.launcherFor(java.toolchain)) - - inputs.dir("src/main/antlr4/org/jabref/search/") - outputs.dir("src-gen/main/java/org/jabref/search/") - args = ["-o","src-gen/main/java/org/jabref/search" , "-visitor", "-no-listener", "-package", "org.jabref.search", "$projectDir/src/main/antlr4/org/jabref/search/Search.g4"] -} - -tasks.register("generateLtwaGrammarSource", JavaExec) { - group = "JabRef" - description = 'Generates LtwaLexer.java and LtwaParser.java from the Ltwa.g4 grammar file using antlr4.' - classpath = configurations.antlr4 - mainClass = "org.antlr.v4.Tool" - javaLauncher.set(javaToolchains.launcherFor(java.toolchain)) - - inputs.dir('src/main/antlr4/org/jabref/ltwa/') - outputs.dir("src-gen/main/java/org/jabref/logic/journals/ltwa/") - args = ["-o", "src-gen/main/java/org/jabref/logic/journals/ltwa/", "-no-visitor", "-listener", "-package", "org.jabref.logic.journals.ltwa", "$projectDir/src/main/antlr4/org/jabref/ltwa/Ltwa.g4"] -} - -tasks.register("generateJournalListMV", JavaExec) { - group = "JabRef" - description = "Converts the comma-separated journal abbreviation file to a H2 MVStore" - classpath = sourceSets.main.runtimeClasspath - mainClass = "org.jabref.cli.JournalListMvGenerator" - javaLauncher.set(javaToolchains.launcherFor(java.toolchain)) - onlyIf { - !file("build/resources/main/journals/journal-list.mv").exists() - } -} - -jar.dependsOn("generateJournalListMV") -compileTestJava.dependsOn("generateJournalListMV") - -tasks.register('downloadLtwaFile') { - group = "JabRef" - description = "Downloads the LTWA file for journal abbreviations" - doLast { - def ltwaUrl = "https://www.issn.org/wp-content/uploads/2021/07/ltwa_20210702.csv" - def ltwaDir = file("build/resources/main/journals") - def ltwaCsvFile = file("${ltwaDir}/ltwa_20210702.csv") - - if (!ltwaCsvFile.exists()) { - mkdir(ltwaDir) - ant.get(src: ltwaUrl, dest: ltwaCsvFile, verbose: true) - logger.lifecycle("Downloaded LTWA file to ${ltwaCsvFile}") - } else { - logger.lifecycle("LTWA file already exists at ${ltwaCsvFile}") - } - } - onlyIf { - !file("build/resources/main/journals/ltwa_20210702.csv").exists() - } -} - -tasks.register('generateLtwaListMV', JavaExec) { - group = "JabRef" - description = "Converts the LTWA CSV file to a H2 MVStore" - classpath = sourceSets.main.runtimeClasspath - mainClass = "org.jabref.cli.LtwaListMvGenerator" - javaLauncher.set(javaToolchains.launcherFor(java.toolchain)) - dependsOn('downloadLtwaFile') - onlyIf { - !file("build/resources/main/journals/ltwa-list.mv").exists() - } -} - -jar.dependsOn("generateLtwaListMV") -compileTestJava.dependsOn("generateLtwaListMV") - -tasks.register('generateCitationStyleCatalog', JavaExec) { - group = "JabRef" - description = "Generates a catalog of all available citation styles" - - dependsOn 'processResources' - - classpath = sourceSets.main.runtimeClasspath - - mainClass = "org.jabref.logic.citationstyle.CitationStyleCatalogGenerator" - javaLauncher.set(javaToolchains.launcherFor(java.toolchain)) -} - -jar.dependsOn('generateCitationStyleCatalog') -compileTestJava.dependsOn("generateCitationStyleCatalog") - -tasks.register('generateCitaviSource', XjcTask) { - group = 'JabRef' - description = "Generates java files for the citavi importer." - - schemaFile = "src/main/resources/xjc/citavi/citavi.xsd" - outputDirectory = "src-gen/main/java/" - javaPackage = "org.jabref.logic.importer.fileformat.citavi" -} - -tasks.withType(JavaCompile).configureEach { - options.encoding = 'UTF-8' - - // hint by https://docs.gradle.org/current/userguide/performance.html#run_the_compiler_as_a_separate_process - options.fork = true -} - -compileJava { - options.compilerArgs << "-Xlint:none" - dependsOn "generateSource" - - options.generatedSourceOutputDirectory.set(file("src-gen/main/java")) - - moduleOptions { - addExports = [ - // TODO: Remove access to internal api - 'javafx.controls/com.sun.javafx.scene.control' : 'org.jabref', - 'org.controlsfx.controls/impl.org.controlsfx.skin' : 'org.jabref' - ] - } -} - -// Configures "application > run" task -run { - doFirst { - // Clear the default JVM arguments, to avoid messages like "WARNING: Unknown module: org.jabref.merged.module specified to --add-exports" - application.applicationDefaultJvmArgs = [] - } - - moduleOptions { - // On a change here, also adapt "application > applicationDefaultJvmArgs" - addExports = [ - // TODO: Remove access to internal api - 'javafx.base/com.sun.javafx.event' : 'org.jabref.merged.module', - 'javafx.controls/com.sun.javafx.scene.control' : 'org.jabref', - - // We need to restate the ControlsFX exports, because we get following error otherwise: - // java.lang.IllegalAccessError: - // class org.controlsfx.control.textfield.AutoCompletionBinding (in module org.controlsfx.controls) - // cannot access class com.sun.javafx.event.EventHandlerManager (in module javafx.base) because - // module javafx.base does not export com.sun.javafx.event to module org.controlsfx.controls - // Taken from here: https://github.com/controlsfx/controlsfx/blob/9.0.0/build.gradle#L1 - 'javafx.graphics/com.sun.javafx.scene' : 'org.controlsfx.controls', - 'javafx.graphics/com.sun.javafx.scene.traversal' : 'org.controlsfx.controls', - 'javafx.graphics/com.sun.javafx.css' : 'org.controlsfx.controls', - 'javafx.controls/com.sun.javafx.scene.control' : 'org.controlsfx.controls', - 'javafx.controls/com.sun.javafx.scene.control.behavior' : 'org.controlsfx.controls', - 'javafx.controls/com.sun.javafx.scene.control.inputmap' : 'org.controlsfx.controls', - 'javafx.base/com.sun.javafx.event' : 'org.controlsfx.controls', - 'javafx.base/com.sun.javafx.collections' : 'org.controlsfx.controls', - 'javafx.base/com.sun.javafx.runtime': 'org.controlsfx.controls', - 'javafx.web/com.sun.webkit' : 'org.controlsfx.controls', - ] - - addOpens = [ - 'javafx.controls/javafx.scene.control' : 'org.jabref', - 'javafx.controls/com.sun.javafx.scene.control' : 'org.jabref', - 'org.controlsfx.controls/impl.org.controlsfx.skin' : 'org.jabref', - 'org.controlsfx.controls/org.controlsfx.control.textfield' : 'org.jabref', - - 'javafx.controls/javafx.scene.control.skin' : 'org.controlsfx.controls', - 'javafx.graphics/javafx.scene' : 'org.controlsfx.controls', - - 'javafx.base/javafx.collections' : 'org.jabref', - 'javafx.base/javafx.collections.transformation' : 'org.jabref' - ] - - addModules = [ - 'jdk.incubator.vector' - ] - - createCommandLineArgumentFile = true - } - - if (project.hasProperty('component')){ - if (component == 'httpserver'){ - main = 'org.jabref.http.server.Server' - } - } -} - -javadoc { - options { - encoding = 'UTF-8' - version = false - author = false - addMultilineStringsOption("-add-exports").setValue([ - 'javafx.controls/com.sun.javafx.scene.control=org.jabref', - 'org.controlsfx.controls/impl.org.controlsfx.skin=org.jabref' - ]) - } -} - -test { - useJUnitPlatform { - excludeTags 'DatabaseTest', 'FetcherTest', 'GUITest' - } - - moduleOptions { - // TODO: Remove this as soon as ArchUnit is modularized - runOnClasspath = true - } -} - -testlogger { - // See https://github.com/radarsh/gradle-test-logger-plugin#configuration for configuration options - - theme = 'standard' - - showPassed = false - showSkipped = false - - showCauses = false - showStackTraces = false -} - -tasks.withType(Test).configureEach { - reports.html.outputLocation.set(file("${reporting.baseDirectory}/${name}")) - // Enable parallel tests (on desktop). - // See https://docs.gradle.org/8.1/userguide/performance.html#execute_tests_in_parallel for details. - if (!providers.environmentVariable("CI").isPresent()) { - maxParallelForks = Math.max(Runtime.runtime.availableProcessors() - 1, 1) - } -} - -tasks.register('databaseTest', Test) { - useJUnitPlatform { - includeTags 'DatabaseTest' - } - - testLogging { - // set options for log level LIFECYCLE - events = ["FAILED"] - exceptionFormat = "full" - } - - maxParallelForks = 1 -} - -tasks.register('fetcherTest', Test) { - useJUnitPlatform { - includeTags 'FetcherTest' - } - - maxParallelForks = 1 -} - -tasks.register('guiTest', Test) { - useJUnitPlatform { - includeTags 'GUITest' - } - - testLogging { - // set options for log level LIFECYCLE - events = ["FAILED"] - exceptionFormat = "full" - } - - maxParallelForks = 1 -} - -// Test result tasks -tasks.register('copyTestResources', Copy) { - from "${projectDir}/src/test/resources" - into "${buildDir}/classes/test" -} -processTestResources.dependsOn copyTestResources - -tasks.register('jacocoPrepare') { - doFirst { - // Ignore failures of tests - tasks.withType(Test).tap { - configureEach { - ignoreFailures = true - } - } - } -} -test.mustRunAfter jacocoPrepare -databaseTest.mustRunAfter jacocoPrepare -fetcherTest.mustRunAfter jacocoPrepare - -jacocoTestReport { - dependsOn jacocoPrepare, test, fetcherTest, databaseTest - - executionData files( - layout.buildDirectory.file('jacoco/test.exec').get().asFile, - layout.buildDirectory.file('jacoco/fetcherTest.exec').get().asFile, - layout.buildDirectory.file('jacoco/databaseTest.exec').get().asFile) - - reports { - csv.required = true - html.required = true - // coveralls plugin depends on xml format report - xml.required = true - } -} - -// Code quality tasks -checkstyle { - // will only run when called explicitly from the command line - sourceSets = [] -} - -rewrite { - activeRecipe( - 'org.jabref.config.rewrite.cleanup' - ) - exclusion ( - "build.gradle", - "buildSrc/build.gradle", - "eclipse.gradle", - "settings.gradle", - "src-gen/**", - "src/main/resources/**", - "src/test/resources/**", - "**/module-info.java", - "**/*.py", - "**/*.xml", - "**/*.yml" - ) - plainTextMask("**/*.md") - failOnDryRunResults = true -} - -modernizer { - failOnViolations = false - includeTestClasses = true - exclusions = [ - 'java/util/Optional.get:()Ljava/lang/Object;' - ] -} - -// Release tasks -tasks.register('deleteInstallerTemp', Delete) { - delete "$buildDir/installer" -} - -jpackage.dependsOn deleteInstallerTemp -jlinkZip.dependsOn jpackage -jlink { - // https://github.com/beryx/badass-jlink-plugin/issues/61#issuecomment-504640018 - addExtraDependencies("javafx") - - // We keep debug statements - otherwise '--strip-debug' would be included - addOptions('--compress', 'zip-6', '--no-header-files', '--no-man-pages') - launcher { - name = 'JabRef' - } - - addOptions("--bind-services") - - // TODO: Remove the following as soon as the dependencies are fixed (upstream) - // forceMerge is usually needed when some non-modular artifacts in the dependency graph use code that was previously part of the JDK - // but it was removed in the newer releases. - // The pom.xml associated with such a non-modular artifact does not mention that the artifact depends on the removed code - // (because the artifact was published when this code was still available in the JDK). - forceMerge "controlsfx", "bcprov", "jaxb", "istack", "stax" - - // TODO: Remove the following correction to the merged module - // The module descriptor automatically generated by the plugin for the merged module contained some invalid entries. - // This is based on ./gradlew suggestMergedModuleInfo, sort, strip ";"", remove non-used modules, and include the suggested directives here. - mergedModule { - requires 'com.google.gson' - requires 'com.fasterxml.jackson.annotation' - requires 'com.fasterxml.jackson.databind' - requires 'com.fasterxml.jackson.core' - requires 'com.fasterxml.jackson.datatype.jdk8' - requires 'jakarta.xml.bind' - requires 'java.compiler' - requires 'java.datatransfer' - requires 'java.desktop' - requires 'java.logging' - requires 'java.management' - requires 'java.naming' - requires 'java.net.http' - requires 'java.rmi' - requires 'java.scripting' - requires 'java.security.jgss' - requires 'java.security.sasl' - requires 'java.sql' - requires 'java.sql.rowset' - requires 'java.transaction.xa' - requires 'java.xml' - requires 'javafx.base' - requires 'javafx.controls' - requires 'javafx.fxml' - requires 'javafx.graphics' - requires 'javafx.media' - requires 'javafx.swing' - requires 'jdk.jsobject' - requires 'jdk.security.jgss' - requires 'jdk.unsupported' - requires 'jdk.unsupported.desktop' - requires 'jdk.xml.dom' - requires 'org.apache.commons.lang3' - requires 'org.apache.commons.logging' - requires 'org.apache.commons.text' - requires 'org.apache.commons.codec' - requires 'org.apache.commons.io' - requires 'org.apache.commons.compress' - requires 'org.freedesktop.dbus' - requires 'org.jsoup' - requires 'org.slf4j' - requires 'org.tukaani.xz'; - uses 'ai.djl.engine.EngineProvider' - uses 'ai.djl.repository.RepositoryFactory' - uses 'ai.djl.repository.zoo.ZooProvider' - uses 'dev.langchain4j.spi.prompt.PromptTemplateFactory' - uses 'kong.unirest.core.json.JsonEngine' - uses 'org.eclipse.jgit.lib.Signer' - uses 'org.eclipse.jgit.transport.SshSessionFactory' - uses 'org.mariadb.jdbc.LocalInfileInterceptor' - uses 'org.mariadb.jdbc.authentication.AuthenticationPlugin' - uses 'org.mariadb.jdbc.credential.CredentialPlugin' - uses 'org.mariadb.jdbc.tls.TlsSocketPlugin' - uses 'org.postgresql.shaded.com.ongres.stringprep.Profile' - - provides 'org.mariadb.jdbc.tls.TlsSocketPlugin' with 'org.mariadb.jdbc.internal.protocol.tls.DefaultTlsSocketPlugin' - provides 'java.sql.Driver' with 'org.postgresql.Driver' - provides 'org.mariadb.jdbc.authentication.AuthenticationPlugin' with 'org.mariadb.jdbc.internal.com.send.authentication.CachingSha2PasswordPlugin', - 'org.mariadb.jdbc.internal.com.send.authentication.ClearPasswordPlugin', - 'org.mariadb.jdbc.internal.com.send.authentication.Ed25519PasswordPlugin', - 'org.mariadb.jdbc.internal.com.send.authentication.NativePasswordPlugin', - 'org.mariadb.jdbc.internal.com.send.authentication.OldPasswordPlugin', - 'org.mariadb.jdbc.internal.com.send.authentication.SendGssApiAuthPacket', - 'org.mariadb.jdbc.internal.com.send.authentication.SendPamAuthPacket', - 'org.mariadb.jdbc.internal.com.send.authentication.Sha256PasswordPlugin' - provides 'org.mariadb.jdbc.credential.CredentialPlugin' with 'org.mariadb.jdbc.credential.aws.AwsIamCredentialPlugin', - 'org.mariadb.jdbc.credential.env.EnvCredentialPlugin', - 'org.mariadb.jdbc.credential.system.PropertiesCredentialPlugin' - provides 'java.security.Provider' with 'org.bouncycastle.jce.provider.BouncyCastleProvider', - 'org.bouncycastle.pqc.jcajce.provider.BouncyCastlePQCProvider' - provides 'kong.unirest.core.json.JsonEngine' with 'kong.unirest.modules.gson.GsonEngine'; - provides 'ai.djl.repository.zoo.ZooProvider' with 'ai.djl.engine.rust.zoo.RsZooProvider', - 'ai.djl.huggingface.zoo.HfZooProvider', - 'ai.djl.pytorch.zoo.PtZooProvider', - 'ai.djl.repository.zoo.DefaultZooProvider'; - provides 'ai.djl.engine.EngineProvider' with 'ai.djl.engine.rust.RsEngineProvider', - 'ai.djl.pytorch.engine.PtEngineProvider'; - } - - jpackage { - outputDir = "distribution" - - if (OperatingSystem.current().isWindows()) { - // This requires WiX to be installed: https://github.com/wixtoolset/wix3/releases - installerType = "msi" - imageOptions = [ - '--icon', "${projectDir}/src/main/resources/icons/jabref.ico", - ] - installerOptions = [ - '--vendor', 'JabRef', - '--app-version', "${project.version}", - '--verbose', - '--win-upgrade-uuid', 'd636b4ee-6f10-451e-bf57-c89656780e36', - '--win-dir-chooser', - '--win-shortcut', - '--win-menu', - '--win-menu-group', "JabRef", - '--temp', "$buildDir/installer", - '--resource-dir', "${projectDir}/buildres/windows", - '--license-file', "${projectDir}/buildres/LICENSE_with_Privacy.md", - '--file-associations', "${projectDir}/buildres/windows/bibtexAssociations.properties" - ] - } - - if (OperatingSystem.current().isLinux()) { - imageOptions = [ - '--icon', "${projectDir}/src/main/resources/icons/JabRef-linux-icon-64.png", - '--app-version', "${project.version}", - ] - installerOptions = [ - '--verbose', - '--vendor', 'JabRef', - '--app-version', "${project.version}", - // '--temp', "$buildDir/installer", - '--resource-dir', "${projectDir}/buildres/linux", - '--linux-menu-group', 'Office;', - '--linux-rpm-license-type', 'MIT', - // '--license-file', "${projectDir}/LICENSE.md", - '--description', 'JabRef is an open source bibliography reference manager. The native file format used by JabRef is BibTeX, the standard LaTeX bibliography format.', - '--linux-shortcut', - '--file-associations', "${projectDir}/buildres/linux/bibtexAssociations.properties" - ] - } - - if (OperatingSystem.current().isMacOsX()) { - imageOptions = [ - '--icon', "${projectDir}/src/main/resources/icons/jabref.icns", - '--resource-dir', "${projectDir}/buildres/mac" - ] - // Notarized mac images and packages are built on the pipeline only - skipInstaller = true - installerOptions = [ - '--verbose', - '--vendor', 'JabRef', - '--mac-package-identifier', "JabRef", - '--mac-package-name', "JabRef", - '--app-version', "${project.version}", - '--file-associations', "${projectDir}/buildres/mac/bibtexAssociations.properties", - '--resource-dir', "${projectDir}/buildres/mac" - ] - } - } -} - -if (OperatingSystem.current().isWindows()) { - tasks.jpackageImage.doLast { - copy { - from("${projectDir}/buildres/windows") { - include "jabref-firefox.json", "jabref-chrome.json", "JabRefHost.bat", "JabRefHost.ps1" - } - into "$buildDir/distribution/JabRef" - } - } -} - -if (OperatingSystem.current().isLinux()) { - tasks.jpackageImage.doLast { - copy { - from("${projectDir}/buildres/linux") { - include "native-messaging-host/**", "jabrefHost.py" - } - into "$buildDir/distribution/JabRef/lib" - } - } -} - -if (OperatingSystem.current().isMacOsX()) { - tasks.jpackageImage.doLast { - copy { - from("${projectDir}/buildres/mac") { - include "native-messaging-host/**", "jabrefHost.py" - } - into "$buildDir/distribution/JabRef.app/Contents/Resources" - } - } -} - -jmh { - warmupIterations = 5 - iterations = 10 - fork = 2 - zip64 = true -} - -requirementTracing { - inputDirectories = files('docs', 'src/main/java', 'src/test/java') -} diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 00000000000..e22097746da --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,111 @@ +plugins { + id("buildlogic.java-common-conventions") + + id("checkstyle") + + id("com.github.andygoossens.modernizer") version "1.11.0" + id("org.openrewrite.rewrite") version "7.5.0" + + id("org.itsallcode.openfasttrace") version "3.0.1" + + id("com.adarshr.test-logger") version "4.0.0" + + // This is https://github.com/java9-modularity/gradle-modules-plugin/pull/282 + id("com.github.koppor.gradle-modules-plugin") version "v1.8.15-cmd-1" +} + +// OpenRewrite should rewrite all sources +// This is the behavior when applied in the root project (https://docs.openrewrite.org/reference/gradle-plugin-configuration#multi-module-gradle-projects) + +dependencies { + rewrite(platform("org.openrewrite.recipe:rewrite-recipe-bom:3.5.0")) + rewrite("org.openrewrite.recipe:rewrite-static-analysis") + rewrite("org.openrewrite.recipe:rewrite-logging-frameworks") + rewrite("org.openrewrite.recipe:rewrite-testing-frameworks") + rewrite("org.openrewrite.recipe:rewrite-migrate-java") +} + +rewrite { + activeRecipe("org.jabref.config.rewrite.cleanup") + exclusion( + "settings.gradle", + "**/build.gradle.kts", + "**/generated-sources/**", + "**/src/main/resources/**", + "**/src/test/resources/**", + "**/module-info.java", + "**/*.py", + "**/*.xml", + "**/*.yml" + ) + plainTextMask("**/*.md") + failOnDryRunResults = true +} + +requirementTracing { + inputDirectories.setFrom(files("docs", + "jablib/src/main/java", "jablib/src/test/java", + "jabkit/src/main/java", "jabkit/src/test/java", + "jabgui/src/main/java", "jabgui/src/test/java", + "jabsrv/src/main/java", "jabsrv/src/test/java" + ) + ) + // TODO: Short Tag Importer: https://github.com/itsallcode/openfasttrace-gradle#configuring-the-short-tag-importer +} + + +subprojects { + plugins.apply("checkstyle") + plugins.apply("com.github.andygoossens.modernizer") + plugins.apply("com.adarshr.test-logger") + plugins.apply("com.github.koppor.gradle-modules-plugin") + + checkstyle { + toolVersion = "10.23.0" + configFile = rootProject.file("config/checkstyle/checkstyle.xml") + } + + tasks.withType().configureEach { + reports { + xml.required.set(false) + html.required.set(true) + } + source = fileTree("src") { include("**/*.java") } + } + + configurations.named("checkstyle") { + resolutionStrategy.capabilitiesResolution.withCapability("com.google.collections:google-collections") { + select("com.google.guava:guava:0") + } + } + + modernizer { + failOnViolations = true + includeTestClasses = true + exclusions = setOf( + "java/util/Optional.get:()Ljava/lang/Object;" + ) + } + + testlogger { + // See https://github.com/radarsh/gradle-test-logger-plugin#configuration for configuration options + + theme = com.adarshr.gradle.testlogger.theme.ThemeType.STANDARD + + showPassed = false + showSkipped = false + + showCauses = false + showStackTraces = false + } + + tasks.withType().configureEach { + reports.html.outputLocation.set(file("${reporting.baseDirectory}/${name}")) + + // Enable parallel tests (on desktop). + // See https://docs.gradle.org/8.1/userguide/performance.html#execute_tests_in_parallel for details. + if (!providers.environmentVariable("CI").isPresent) { + maxParallelForks = maxOf(Runtime.getRuntime().availableProcessors() - 1, 1) + } + } +} diff --git a/buildSrc/src/main/groovy/org/jabref/build/xjc/XjcPlugin.groovy b/buildSrc/src/main/groovy/org/jabref/build/xjc/XjcPlugin.groovy deleted file mode 100644 index 72e2c3644a7..00000000000 --- a/buildSrc/src/main/groovy/org/jabref/build/xjc/XjcPlugin.groovy +++ /dev/null @@ -1,20 +0,0 @@ -package org.jabref.build.xjc - -import org.gradle.api.Plugin -import org.gradle.api.Project - -class XjcPlugin implements Plugin { - - static final def CONFIGURATION_NAME = "xjc" - - @Override - void apply(Project target) { - def configuration = target.configurations.create(CONFIGURATION_NAME) - configuration.description = "Dependencies needed to run the XJC tool." - - target.afterEvaluate { evaluated -> - evaluated.logger.info(evaluated.configurations.xjc.asPath) - evaluated.ant.taskdef(name: 'xjc', classname: 'com.sun.tools.xjc.XJCTask', classpath: evaluated.configurations.getByName(CONFIGURATION_NAME).asPath) - } - } -} diff --git a/buildSrc/src/main/groovy/org/jabref/build/xjc/XjcTask.groovy b/buildSrc/src/main/groovy/org/jabref/build/xjc/XjcTask.groovy deleted file mode 100644 index fb7bbf7cdb6..00000000000 --- a/buildSrc/src/main/groovy/org/jabref/build/xjc/XjcTask.groovy +++ /dev/null @@ -1,114 +0,0 @@ -package org.jabref.build.xjc - -import org.gradle.api.DefaultTask -import org.gradle.api.tasks.Input -import org.gradle.api.tasks.InputFile -import org.gradle.api.tasks.OutputDirectory -import org.gradle.api.tasks.Optional -import org.gradle.api.tasks.TaskAction - -class XjcTask extends DefaultTask { - - private def schemaFile - @Optional - private def bindingFile - private def outputDirectory - private String javaPackage - private String encoding - @Optional - private String arguments - - @TaskAction - def generateClasses() { - project.mkdir(outputDirectory) - project.ant.xjc(destdir: outputDirectory, package: javaPackage, encoding: getEncoding()) { - schema(dir: schemaFile.getParent(), includes: schemaFile.getName()) - if (bindingFile != null) { - binding(dir: bindingFile.getParent(), includes: bindingFile.getName()) - } - if (arguments != null) { - arg(value: arguments) - } - } - } - - @InputFile - File getSchemaFile() { - if (schemaFile == null) { - return null - } - return project.file(schemaFile) - } - - void setSchemaFile(Object schemaFile) { - this.schemaFile = schemaFile - } - - @OutputDirectory - File getOutputDirectory() { - if (outputDirectory == null) { - return null - } - return project.file(outputDirectory) - } - - void setOutputDirectory(Object outputDirectory) { - this.outputDirectory = outputDirectory - updateOutput() - } - - @Input - String getJavaPackage() { - return javaPackage - } - - void setJavaPackage(String javaPackage) { - this.javaPackage = javaPackage - updateOutput() - } - - @Input - String getEncoding() { - if(encoding == null ) { - // use UTF-8 as default encoding - return "UTF-8" - } else { - return encoding - } - } - - void setEncoding(String encoding) { - this.encoding = encoding - } - - @Input - String getArguments() { - return arguments - } - - void setArguments(String args) { - this.arguments = args - } - - @InputFile - File getBindingFile() { - if (bindingFile == null) { - return null - } - return project.file(bindingFile) - } - - void setBindingFile(Object binding) { - this.bindingFile = binding - } - - private void updateOutput() { - if (outputDirectory != null && javaPackage != null) { - outputs.dir(new File(getOutputDirectory(), packageAsPath(javaPackage))) - } - } - - private static String packageAsPath(String pkg) { - return pkg.replace((char) '.', File.separatorChar) - } -} diff --git a/buildres/LICENSE_with_Privacy.md b/buildres/LICENSE_with_Privacy.md deleted file mode 100644 index 4a498007fa2..00000000000 --- a/buildres/LICENSE_with_Privacy.md +++ /dev/null @@ -1,179 +0,0 @@ -MIT License - -Copyright © 2003-2024 JabRef Authors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ---- Privacy Policy ---- - -# Privacy Policy - -Last updated: 2023-08-24 - -Your privacy is a fundamental right JabRef e.V. respects and supports. -By using JabRef and its related online services, you choose to share -some of your personal information. In this Privacy Policy we explain how -we collect, use, and share information about you, along with the choices -you have. - -The term \'Personal information\' in this policy means any information -that either directly identifies you or can be somehow linked to you. -\'JabRef\' refers to the desktop application that is provided by JabRef -e.V. - -Please remember that no method of transmission over the Internet, or -method of electronic storage is absolute secure. While we strive to use -commercially acceptable means to protect your Personal Data, we cannot -guarantee its absolute security. Also, whenever you communicate through -the internet, your IP-Address will always be transmitted and retained by -third parties for technical and in some cases for legal reasons. - -## JabRef Desktop Application - -### Collecting information - -JabRef does not collect any personal information directly linked to you. -However, on certain occasions JabRef will send some information to the -online services of JabRef e.V.: - -- On application start, JabRef will check for the latest version - online (by default *enabled*). -- Information about a journal you are citing when looking for more - information about this journal, using our journal database (by - default *enabled*). -- A pdf document you automatically want to extract citation - information from, using our GROBID service (by default *disabled*). -- Anonymized statistical data on the use of the graphical user - interface for internal analysis purposes (by default *disabled*). - -### Storing information - -JabRef only stores the following personal information locally on your -computer: - -- Your proxy username and password, if you decide to store them (by - default *disabled*). -- Any personal API key you use to access third party online services - (by default *disabled*). - -### Sharing information - -Certain operations you perform in JabRef may trigger requests to public -third-party services such as Zotero, Crossref or the Library of Congress -for metadata retrieval. These third parties may log additional -information besides your IP address and the search terms (e.g., DOI, -ISBN or the current URL) according to their privacy policies. - -These third-party services are the following: - -Service;Privacy Policy -[ACM](https://www.acm.org/); -[ACS Publications](https://pubs.acs.org/); -[APS Advancing Physics](https://harvest.aps.org/); -[arXiv.org](https://arxiv.org/); -[Bibliotheksverbund Bayern](https://www.bib-bvb.de/); -[Biodiversity Heritage Library](https://www.biodiversitylibrary.org/); -[Collection of Computer Science Bibliographies](https://en.wikipedia.org/wiki/Collection_of_Computer_Science_Bibliographies);**currently unavailable**, offline -[CrossRef](https://www.crossref.org/); -[dblp](https://dblp.uni-trier.de/); -[Directory of Open Access Books](https://www.doabooks.org/); -[Digitala Vetenskapliga Arkivet](https://www.diva-portal.org/); -[DOI Foundation](https://www.doi.org/); -[Elsevier](https://www.elsevier.com/); -[Google Scholar](https://scholar.google.com/); -[Gemeinsamer Verbundkatalog](https://www.gbv.de/); -[IACR](https://www.iacr.org/); -[IEEEXplore](https://ieeexplore.ieee.org/Xplore/home.jsp); -[INSPIRE](https://inspirehep.net/); -[JSTOR](https://www.jstor.org/); -[Library of Congress](https://lccn.loc.gov/); -[National Library of Medicine](https://www.ncbi.nlm.nih.gov/); -[MathSciNet](http://www.ams.org/mathscinet); -[mEDRA](https://www.medra.org/); -[Mr. DLib](https://mr-dlib.org/) [1]; -[Openlibrary](https://openlibrary.org); -[ResearchGate](https://www.researchgate.net/); -[IETF Datatracker](https://datatracker.ietf.org/); -[Semantic Scholar](https://www.semanticscholar.org/), powered by [Allen Institute for AI](https://allenai.org/); -[Springer Nature](https://dev.springernature.com/); -[The SAO/NASA Astrophysics Data System](https://ui.adsabs.harvard.edu/); -[Unpaywall](https://unpaywall.org/); -[zbMATH Open](https://www.zbmath.org); - -[1]: *Note: The Mr. DLib service is used for the related articles tab in the entry editor and collects also your language, your browser and operating system (by default*disabled*).*; - -## JabRef Browser Extension - -No personal data (like name, email address, billing address or credit -card) is collected by the Browser Extension itself. But be aware that -the browser Extension uses Zotero services, where [Zotero\'s Privacy -Policy](https://www.zotero.org/support/privacy) applies. - -### Collecting information - -When actively used, the extension has access to the current website and -its content to process citation information. In particular, the -following information is used: - -- the url of the current website you are visiting, -- the content of the current website. - -### Storing information - -No data will be stored by the Browser Extension. - -### Sharing information - -The Browser Extension does not share any data except with the local -instance of the JabRef software application, which stores the citation -data as a new entry in its library. - -## Links to other Websites - -Our Service may contain links to other websites that are not operated by -us. If you click on a third party link, you will be directed to that -third party\'s site. We strongly advise you to review the Privacy Policy -of every site you visit. - -We have no control over and assume no responsibility for the content, -privacy policies or practices of any third party sites or services. - -## Changes to this Privacy Policy - -This privacy policy may be changed eventually. We encourage you to check -this Privacy Policy periodically for any changes. Any material change -will be mentioned in the changelog of the desktop application and in our -[blog](https://blog.jabref.org/). - -This privacy policy is in effect as of the day mentioned as \"last -updated\" above and will remain in effect except with respect to any -changes in its provisions in the future, which will be in effect -immediately after being posted on this page. - -## Contact - -If you get in touch with us, we may aks you to provide us with certain -personal information (e.g. name and email address) to stay in contact -with you. For any questions or concerns regarding the privacy policy, -please send us an email to or write to - -JabRef e.V.\ -Josef-Lanner-Str. 9\ -71069 Sindelfingen\ -Germany diff --git a/buildres/setup-test-oracle.sql b/buildres/setup-test-oracle.sql deleted file mode 100644 index b980a5b08aa..00000000000 --- a/buildres/setup-test-oracle.sql +++ /dev/null @@ -1,6 +0,0 @@ -create pluggable database jabref admin user jabref identified by jabref - file_name_convert=('/opt/oracle/oradata/XE/pdbseed','/opt/oracle/oradata/XE/JABREF'); -alter pluggable database jabref open read write; -alter pluggable database all save state; -ALTER SESSION SET CONTAINER = jabref; -grant all privileges to jabref container=current; diff --git a/buildres/windows/JabRef-post-image.wsf b/buildres/windows/JabRef-post-image.wsf deleted file mode 100644 index 96717d1da55..00000000000 --- a/buildres/windows/JabRef-post-image.wsf +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - diff --git a/docs/code-howtos/faq.md b/docs/code-howtos/faq.md index b5b6ee84fed..fe21ec59cbe 100644 --- a/docs/code-howtos/faq.md +++ b/docs/code-howtos/faq.md @@ -39,14 +39,14 @@ Read more about the background and format of localization in JabRef [here](https ### `org.jabref.logic.citationstyle.CitationStyleCatalogGenerator generateCitationStyleCatalog` ERROR: Could not find any citation style. Tried with /ieee.csl. -Check the directory `src/main/resources/csl-styles`. +Check the directory `jablib/src/main/resources/csl-styles`. If it is missing or empty, run `git submodule update`. Now, check inside if `ieee.csl` exists. If it does not, run `git reset --hard` **inside that directory**. ### `java.lang.IllegalArgumentException`: Unable to load locale en-US ERROR: Could not generate BibEntry citation. The CSL engine could not create a preview for your item. -Check the directory `src/main/resources/csl-locales`. +Check the directory `jablib/src/main/resources/csl-locales`. If it is missing or empty, run `git submodule update`. If still not fixed, run `git reset --hard` **inside that directory**. @@ -111,7 +111,7 @@ For `csl-styles`: ```bash git merge origin/main -git checkout main -- src/main/resources/csl-styles +git checkout main -- jablib/src/main/resources/csl-styles ... git commit ... git push ``` @@ -129,7 +129,7 @@ And similarly for `csl-locales` or `abbrv.jabref.org`. 2. `cd` into the changed submodules directory (lets say `csl-styles` was changed): ```bash - cd src/main/resources/csl-styles + cd jablib/src/main/resources/csl-styles ``` 3. Find the latest submodule commit id from remote (github): diff --git a/docs/code-howtos/testing.md b/docs/code-howtos/testing.md index 9aeb60ba314..b75637fb947 100644 --- a/docs/code-howtos/testing.md +++ b/docs/code-howtos/testing.md @@ -116,7 +116,20 @@ public void getTypeReturnsBibLatexArticleInBibLatexMode() { To test that a preferences migration works successfully, use the mockito method `verify`. See `PreferencesMigrationsTest` for an example. -## Database tests +## Testing different kinds of components + +JabRef is split up in the java library ("jablib"), the CLI ("jabkit"), the HTTP server ("jabsrv"), and the GUI ("jabgui"). +When executing tests in the sub project, the tests of the other sub projects are not executed. +When executing tests in the main project, all tests of the sub projects are executed. + +The exceptions are the (SQL) database and fetcher tests. +They are marked with `@org.jabref.testutils.category.DatabaseTest`. + +### Database tests + +JabRef can [use an external PostgreSQL database to store bibliographic data](https://docs.jabref.org/collaborative-work/sqldatabase). +The tests require such an external database while running. +Therefore, these tests are annotated with `@DatabaseTest` and are not executed by default. ### PostgreSQL @@ -130,17 +143,15 @@ Set the environment variable `DBMS` to `postgres` (or leave it unset) Then, all DBMS Tests (annotated with `@org.jabref.testutils.category.DatabaseTest`) run properly. -### MySQL - -A MySQL DBMS can be started using following command: - -```shell -docker run -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=jabref -p 3800:3307 mysql:8.0 --port=3307 -``` +### Fetchers in tests -Set the environment variable `DBMS` to `mysql`. +[JabRef can connect to external services to fetch bibliographic data](https://docs.jabref.org/collect/import-using-online-bibliographic-database). +Since API keys are required and some providers block requests from unknown IP addresses, these tests are not executed by default. +Detailed information is available at [JabRef's fetcher documentation](fetchers.md). -## Fetchers in tests +Each fetcher test is marked by `@org.jabref.testutils.category.FetcherTest`. +Some of them are also marked with `@org.jabref.support.DisabledOnCIServer`, to indicate that they are not executed on the CI server. +These test are not executed on the CI, because the rate limits of the API providers are too often reached during the build process. Fetcher tests can be run locally by executing the Gradle task `fetcherTest`. This can be done by running the following command in the command line: @@ -150,7 +161,7 @@ Fetcher tests can be run locally by executing the Gradle task `fetcherTest`. Thi Alternatively, if one is using IntelliJ, this can also be done by double-clicking the `fetcherTest` task under the `other` group in the Gradle Tool window (`JabRef > Tasks > other > fetcherTest`). -## "No matching tests found" +### "No matching tests found" In case the output is "No matching tests found", the wrong test category is used. @@ -159,7 +170,7 @@ Check "Run/Debug Configurations" Example ```gradle -:databaseTest --tests "org.jabref.logic.importer.fileformat.pdf.PdfMergeMetadataImporterTest.pdfMetadataExtractedFrom2024SPLCBecker" +:databaseTest --tests ":jablib:org.jabref.logic.importer.fileformat.pdf.PdfMergeMetadataImporterTest.pdfMetadataExtractedFrom2024SPLCBecker" ``` This tells Gradle that `PdfMergeMetadataImporterTest` should be executed as database test. diff --git a/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-11-code-into-ide.md b/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-11-code-into-ide.md index 9e150ae1a74..ac6ede9c529 100644 --- a/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-11-code-into-ide.md +++ b/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-11-code-into-ide.md @@ -52,7 +52,7 @@ Currently, it looks as follows: ![Directory Mappings including sub modules](intellij-directory-mappings-unmodified.png) {% endfigure %} -You need to tell IntelliJ to ignore the submodules `buildres\abbrv.jabref.org`, `src\main\resources\csl-locales`, and `src\main\resources\csl-styles`. +You need to tell IntelliJ to ignore the submodules `buildres\abbrv.jabref.org`, `jablib\src\main\resources\csl-locales`, and `jablib\src\main\resources\csl-styles`. Select all three (holding the Ctrl key). Then press the red minus button on top. @@ -71,7 +71,7 @@ Open the context menu of the file explorer (using the right mouse button), choos Execute following command: ```shell -git update-index --assume-unchanged buildres/abbrv.jabref.org src/main/resources/csl-styles src/main/resources/csl-locales +git update-index --assume-unchanged buildres/abbrv.jabref.org jablib/src/main/resources/csl-styles jablib/src/main/resources/csl-locales ``` {: .tip } diff --git a/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/mise/intellij-settings.png b/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/mise/intellij-settings.png new file mode 100644 index 00000000000..92a10f12333 Binary files /dev/null and b/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/mise/intellij-settings.png differ diff --git a/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/trouble-shooting.md b/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/trouble-shooting.md index a264643f888..2e04caaf25b 100644 --- a/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/trouble-shooting.md +++ b/docs/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/trouble-shooting.md @@ -6,7 +6,7 @@ nav_order: 99 # Trouble shooting -## Changes in `src/main/resources/csl-styles` are shown +## Changes in `jablib/src/main/resources/csl-styles` are shown You need to remove these directories from the "Directory Mappings" in IntelliJ. Look for the setting in preferences. diff --git a/eclipse.gradle b/eclipse.gradle deleted file mode 100644 index 9d61901d09e..00000000000 --- a/eclipse.gradle +++ /dev/null @@ -1,626 +0,0 @@ -apply plugin: "eclipse" - -// ensure that source code is generated, otherwise class `BstLexer` cannot be found -tasks.eclipseClasspath.dependsOn "generateSource" - -// workaround until https://github.com/gradle/gradle/issues/898 is resolved -eclipseJdt.doLast { - File f = file('.settings/org.eclipse.core.resources.prefs') - f.write('eclipse.preferences.version=1\n') - f.append('encoding/=UTF-8') -} -eclipse { - classpath { - file { - whenMerged { - entries.findAll { isModule(it) }.each { //this was already necessary to build modular projects - it.entryAttributes['module'] = 'true' - } - def controlsfx = entries.find { isControlsfx(it) }; - controlsfx.entryAttributes['add-exports'] = 'org.controlsfx.controls/impl.org.controlsfx.skin=org.jabref:org.controlsfx.controls/org.controlsfx.control.textfield=org.jabref:org.controlsfx.controls/impl.org.controlsfx.autocompletion=org.jabref'; - controlsfx.entryAttributes['add-opens'] = 'org.controlsfx.controls/impl.org.controlsfx.skin=org.jabref:org.controlsfx.controls/org.controlsfx.control.textfield=org.jabref:org.controlsfx.controls/impl.org.controlsfx.autocompletion=org.jabref'; - - entries.findAll { isSource(it) && isTestScope(it) }.each { //mark test source folders - it.entryAttributes['test'] = 'true' - } - - def javafxcontrols = entries.find { isJavafxControls(it) }; - javafxcontrols.entryAttributes['add-exports'] = 'javafx.controls/com.sun.javafx.scene.control=org.jabref:javafx.controls/com.sun.javafx.scene.control.behavior=org.jabref:javafx.controls/javafx.scene.control=org.jabref'; - javafxcontrols.entryAttributes['add-opens'] = 'javafx.controls/com.sun.javafx.scene.control=org.jabref:javafx.controls/com.sun.javafx.scene.control.behavior=org.jabref:javafx.controls/javafx.scene.control=org.jabref:javafx.controls/javafx.scene.control.skin=org.controlsfx.controls'; - - def javafxgraphics = entries.find { isJavafxGraphics(it) }; - javafxgraphics.entryAttributes['add-opens'] = 'javafx.graphics/javafx.scene=org.controlsfx.controls'; - - def javafxbase = entries.find { isJavafxBase(it) }; - javafxbase.entryAttributes['add-exports'] = 'javafx.base/com.sun.javafx.event=org.controlsfx.controls:'; - - def javafxfxml = entries.find { isJavafxFXML(it) }; - javafxfxml.entryAttributes['add-opens'] = 'javafx.fxml/javafx.fxml=org.jabref'; - - entries.findAll { isLibrary(it) && isTestScope(it) }.each { //mark test source files - it.entryAttributes['test'] = 'true' - } - } - } - - defaultOutputDir = file('bin/main') - downloadSources = true - downloadJavadoc = true - } -} - -boolean isLibrary(entry) { return entry.properties.kind.equals('lib') } - -boolean isTestScope(entry) { return !entry.entryAttributes.get('gradle_used_by_scope').contains('main') } - -boolean isModule(entry) { - isLibrary(entry) && !isTestScope(entry); -} //a test-scope library should be put on the classpath instead of the modulepath -boolean isSource(entry) { return entry.properties.kind.equals('src'); } - -boolean isControlsfx(entry) { return entry.properties.path.contains('controlsfx'); } - -boolean isJavafxControls(entry) { return entry.properties.path.contains('javafx-controls'); } - -boolean isJavafxGraphics(entry) { return entry.properties.path.contains('javafx-graphics'); } - -boolean isJavafxBase(entry) { return entry.properties.path.contains('javafx-base'); } - -boolean isJavafxFXML(entry) { return entry.properties.path.contains('javafx-fxml'); } - -// add formatter and cleanup settings to Eclipse settings -// see http://stackoverflow.com/a/27461890/873282 - -tasks.cleanEclipse.doLast { - delete("${project.projectDir}/.settings/org.eclipse.core.resources.prefs") - delete("${project.projectDir}/.settings/org.eclipse.jdt.core.prefs") - delete("${project.projectDir}/.settings/org.eclipse.jdt.ui.prefs") -} - -// Currently, the eclipse task is not intelligent enough to replace generated lines: -// It just adds the lines. -// To avoid broken configurations, the existing configuration is deleted completely. -tasks.eclipse.dependsOn(cleanEclipse) - -tasks.eclipse.doFirst { - File jdt_core_prefs = file("${project.projectDir}/.settings/org.eclipse.jdt.core.prefs") - // existence check doesn't work as gradle generates the file on its own - /* following entries are not written as they are generated by gradle: - org.eclipse.jdt.core.compiler.debug.lineNumber=generate - org.eclipse.jdt.core.compiler.debug.localVariable=generate - org.eclipse.jdt.core.compiler.debug.sourceFile=generate - org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled - org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve - org.eclipse.jdt.core.compiler.problem.assertIdentifier=error - org.eclipse.jdt.core.compiler.problem.enumIdentifier=error - */ - jdt_core_prefs.append(''' - org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled - org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore - org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull - org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault - org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable - org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled - org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning - org.eclipse.jdt.core.compiler.problem.autoboxing=ignore - org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning - org.eclipse.jdt.core.compiler.problem.deadCode=warning - org.eclipse.jdt.core.compiler.problem.deprecation=warning - org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled - org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled - org.eclipse.jdt.core.compiler.problem.discouragedReference=warning - org.eclipse.jdt.core.compiler.problem.emptyStatement=warning - org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning - org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore - org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled - org.eclipse.jdt.core.compiler.problem.fieldHiding=warning - org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning - org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning - org.eclipse.jdt.core.compiler.problem.forbiddenReference=error - org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning - org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled - org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning - org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning - org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore - org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning - org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning - org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore - org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning - org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled - org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning - org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning - org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled - org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore - org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore - org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning - org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning - org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore - org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning - org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error - org.eclipse.jdt.core.compiler.problem.nullReference=warning - org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error - org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning - org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning - org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore - org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning - org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore - org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning - org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning - org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning - org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore - org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning - org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore - org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore - org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore - org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled - org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=ignore - org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled - org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled - org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled - org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore - org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning - org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled - org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning - org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning - org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning - org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning - org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore - org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning - org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore - org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning - org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled - org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled - org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled - org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore - org.eclipse.jdt.core.compiler.problem.unusedImport=warning - org.eclipse.jdt.core.compiler.problem.unusedLabel=warning - org.eclipse.jdt.core.compiler.problem.unusedLocal=warning - org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning - org.eclipse.jdt.core.compiler.problem.unusedParameter=warning - org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=disabled - org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled - org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled - org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning - org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning - org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning - org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning - org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert - org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert - org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert - org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert - org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines - org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true - org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert - org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert - org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert - org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines - org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert - org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 - org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert - org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert - org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert - org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines - org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false - org.eclipse.jdt.core.formatter.indentation.size=4 - org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert - org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines - org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert - org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert - org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert - org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert - org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert - org.eclipse.jdt.core.formatter.disabling_tag=@formatter\\:off - org.eclipse.jdt.core.formatter.continuation_indentation=1 - org.eclipse.jdt.core.formatter.alignment_for_enum_constants=48 - org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 - org.eclipse.jdt.core.formatter.blank_lines_after_package=1 - org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert - org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert - org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines - org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=0 - org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert - org.eclipse.jdt.core.formatter.comment.indent_root_tags=true - org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=false - org.eclipse.jdt.core.formatter.enabling_tag=@formatter\\:on - org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert - org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=false - org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert - org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 - org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert - org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false - org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=do not insert - org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert - org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert - org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert - org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 - org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert - org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert - org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert - org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert - org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert - org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 - org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert - org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert - org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert - org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false - org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert - org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert - org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true - org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line - org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert - org.eclipse.jdt.core.formatter.comment.line_length=9999 - org.eclipse.jdt.core.formatter.use_on_off_tags=true - org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert - org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert - org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert - org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert - org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false - org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert - org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line - org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert - org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=18 - org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert - org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 - org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert - org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false - org.eclipse.jdt.core.formatter.alignment_for_binary_expression=18 - org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines - org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert - org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert - org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert - org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert - org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=18 - org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true - org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert - org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert - org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert - org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line - org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line - org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line - org.eclipse.jdt.core.formatter.compact_else_if=true - org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert - org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true - org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=18 - org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 - org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert - org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=18 - org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=18 - org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false - org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert - org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert - org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false - org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert - org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert - org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert - org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=18 - org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true - org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 - org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines - org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert - org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert - org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert - org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert - org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert - org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert - org.eclipse.jdt.core.formatter.comment.format_line_comments=false - org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert - org.eclipse.jdt.core.formatter.align_type_members_on_columns=false - org.eclipse.jdt.core.formatter.alignment_for_assignment=2 - org.eclipse.jdt.core.formatter.alignment_for_module_statements=16 - org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert - org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true - org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert - org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert - org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 - org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=1 - org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=2 - org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert - org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false - org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert - org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert - org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line - org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line - org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert - org.eclipse.jdt.core.formatter.comment.format_header=false - org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=18 - org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert - org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert - org.eclipse.jdt.core.formatter.alignment_for_method_declaration=16 - org.eclipse.jdt.core.formatter.join_wrapped_lines=false - org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert - org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true - org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true - org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert - org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 - org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true - org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line - org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert - org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=26 - org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false - org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines - org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=18 - org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false - org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert - org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert - org.eclipse.jdt.core.formatter.tabulation.size=4 - org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert - org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert - org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert - org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert - org.eclipse.jdt.core.formatter.comment.format_source_code=true - org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert - org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert - org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert - org.eclipse.jdt.core.formatter.blank_lines_before_field=0 - org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert - org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1 - org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert - org.eclipse.jdt.core.formatter.blank_lines_before_method=1 - org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 - org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=0 - org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert - org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false - org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert - org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line - org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert - org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert - org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert - org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert - org.eclipse.jdt.core.formatter.comment.format_html=true - org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert - org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert - org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines - org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 - org.eclipse.jdt.core.formatter.indent_empty_lines=false - org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 - org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert - org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert - org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 - org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert - org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false - org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true - org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert - org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 - org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert - org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true - org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert - org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert - org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 - org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert - org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=18 - org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert - org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert - org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true - org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert - org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert - org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert - org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert - org.eclipse.jdt.core.formatter.comment.format_block_comments=false - org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert - org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert - org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false - org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert - org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=18 - org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert - org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert - org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true - org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 - org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert - org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert - org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line - org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true - org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert - org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert - org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert - org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert - org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert - org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines - org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert - org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true - org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert - org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line - org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line - org.eclipse.jdt.core.formatter.blank_lines_before_package=0 - org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert - org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert - org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 - org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert - org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert - org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true - org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert - org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert - org.eclipse.jdt.core.formatter.join_lines_in_comments=false - org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert - org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true - org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert - org.eclipse.jdt.core.formatter.tabulation.char=space - org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert - org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 - org.eclipse.jdt.core.formatter.lineSplit=9999 - org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert - org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert - org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter - '''.stripIndent()) - - File jdt_ui_prefs = file("${project.projectDir}/.settings/org.eclipse.jdt.ui.prefs") - if (jdt_ui_prefs.exists()) { - logger.warn("UI preferences already exist and will not be overridden. Use task 'cleanEclipse' first.") - } else { - jdt_ui_prefs.append(''' - cleanup.add_default_serial_version_id=true - cleanup.add_generated_serial_version_id=false - cleanup.add_missing_annotations=true - cleanup.add_missing_deprecated_annotations=true - cleanup.add_missing_methods=false - cleanup.add_missing_nls_tags=false - cleanup.add_missing_override_annotations=true - cleanup.add_missing_override_annotations_interface_methods=true - cleanup.add_serial_version_id=false - cleanup.always_use_blocks=true - cleanup.always_use_parentheses_in_expressions=true - cleanup.always_use_this_for_non_static_field_access=false - cleanup.always_use_this_for_non_static_method_access=false - cleanup.convert_functional_interfaces=false - cleanup.convert_to_enhanced_for_loop=false - cleanup.correct_indentation=true - cleanup.format_source_code=true - cleanup.format_source_code_changes_only=false - cleanup.insert_inferred_type_arguments=false - cleanup.make_local_variable_final=false - cleanup.make_parameters_final=false - cleanup.make_private_fields_final=true - cleanup.make_type_abstract_if_missing_method=false - cleanup.make_variable_declarations_final=true - cleanup.never_use_blocks=false - cleanup.never_use_parentheses_in_expressions=false - cleanup.organize_imports=true - cleanup.qualify_static_field_accesses_with_declaring_class=true - cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=false - cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=false - cleanup.qualify_static_member_accesses_with_declaring_class=false - cleanup.qualify_static_method_accesses_with_declaring_class=false - cleanup.remove_private_constructors=true - cleanup.remove_redundant_type_arguments=true - cleanup.remove_trailing_whitespaces=true - cleanup.remove_trailing_whitespaces_all=true - cleanup.remove_trailing_whitespaces_ignore_empty=false - cleanup.remove_unnecessary_casts=true - cleanup.remove_unnecessary_nls_tags=true - cleanup.remove_unused_imports=true - cleanup.remove_unused_local_variables=false - cleanup.remove_unused_private_fields=true - cleanup.remove_unused_private_members=false - cleanup.remove_unused_private_methods=true - cleanup.remove_unused_private_types=true - cleanup.sort_members=false - cleanup.sort_members_all=true - cleanup.use_anonymous_class_creation=false - cleanup.use_blocks=true - cleanup.use_blocks_only_for_return_and_throw=false - cleanup.use_lambda=true - cleanup.use_parentheses_in_expressions=true - cleanup.use_this_for_non_static_field_access=false - cleanup.use_this_for_non_static_field_access_only_if_necessary=false - cleanup.use_this_for_non_static_method_access=false - cleanup.use_this_for_non_static_method_access_only_if_necessary=false - cleanup.use_type_arguments=false - cleanup_profile=_JabRef - cleanup_settings_version=2 - eclipse.preferences.version=1 - editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true - formatter_profile=_JabRef - formatter_settings_version=12 - org.eclipse.jdt.ui.ignorelowercasenames=true - org.eclipse.jdt.ui.importorder=java;javax;javafx;net.sf.jabref;org.jabref;;\\#; - org.eclipse.jdt.ui.ondemandthreshold=99 - org.eclipse.jdt.ui.staticondemandthreshold=99 - sp_cleanup.add_default_serial_version_id=true - sp_cleanup.add_generated_serial_version_id=false - sp_cleanup.add_missing_annotations=true - sp_cleanup.add_missing_deprecated_annotations=true - sp_cleanup.add_missing_methods=false - sp_cleanup.add_missing_nls_tags=false - sp_cleanup.add_missing_override_annotations=true - sp_cleanup.add_missing_override_annotations_interface_methods=true - sp_cleanup.add_serial_version_id=false - sp_cleanup.always_use_blocks=true - sp_cleanup.always_use_parentheses_in_expressions=true - sp_cleanup.always_use_this_for_non_static_field_access=false - sp_cleanup.always_use_this_for_non_static_method_access=false - sp_cleanup.convert_functional_interfaces=false - sp_cleanup.convert_to_enhanced_for_loop=false - sp_cleanup.correct_indentation=false - sp_cleanup.format_source_code=true - sp_cleanup.format_source_code_changes_only=true - sp_cleanup.insert_inferred_type_arguments=false - sp_cleanup.make_local_variable_final=false - sp_cleanup.make_parameters_final=false - sp_cleanup.make_private_fields_final=true - sp_cleanup.make_type_abstract_if_missing_method=false - sp_cleanup.make_variable_declarations_final=true - sp_cleanup.never_use_blocks=false - sp_cleanup.never_use_parentheses_in_expressions=false - sp_cleanup.on_save_use_additional_actions=true - sp_cleanup.organize_imports=false - sp_cleanup.qualify_static_field_accesses_with_declaring_class=true - sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=false - sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=false - sp_cleanup.qualify_static_member_accesses_with_declaring_class=false - sp_cleanup.qualify_static_method_accesses_with_declaring_class=false - sp_cleanup.remove_private_constructors=true - sp_cleanup.remove_redundant_type_arguments=true - sp_cleanup.remove_trailing_whitespaces=true - sp_cleanup.remove_trailing_whitespaces_all=true - sp_cleanup.remove_trailing_whitespaces_ignore_empty=false - sp_cleanup.remove_unnecessary_casts=true - sp_cleanup.remove_unnecessary_nls_tags=true - sp_cleanup.remove_unused_imports=true - sp_cleanup.remove_unused_local_variables=false - sp_cleanup.remove_unused_private_fields=true - sp_cleanup.remove_unused_private_members=false - sp_cleanup.remove_unused_private_methods=true - sp_cleanup.remove_unused_private_types=true - sp_cleanup.sort_members=false - sp_cleanup.sort_members_all=true - sp_cleanup.use_anonymous_class_creation=false - sp_cleanup.use_blocks=true - sp_cleanup.use_blocks_only_for_return_and_throw=false - sp_cleanup.use_lambda=true - sp_cleanup.use_parentheses_in_expressions=true - sp_cleanup.use_this_for_non_static_field_access=false - sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=false - sp_cleanup.use_this_for_non_static_method_access=false - sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=false - sp_cleanup.use_type_arguments=false - '''.stripIndent()) - } -} diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 36e4933e1da..ca025c83a7c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=20f1b1176237254a6fc204d8434196fa11a4cfb387567519c61556e8710aed78 -distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/jabgui/build.gradle.kts b/jabgui/build.gradle.kts new file mode 100644 index 00000000000..65f82138e3c --- /dev/null +++ b/jabgui/build.gradle.kts @@ -0,0 +1,622 @@ +import org.gradle.internal.os.OperatingSystem +import org.javamodularity.moduleplugin.extensions.CompileModuleOptions +import org.javamodularity.moduleplugin.extensions.RunModuleOptions + +plugins { + id("buildlogic.java-common-conventions") + + application + + id("org.openjfx.javafxplugin") version("0.1.0") + + // Do not activate; causes issues with the modularity plugin (no tests found etc) + // id("com.redock.classpathtofile") version "0.1.0" + + id("org.beryx.jlink") version "3.1.1" +} + +group = "org.jabref" +version = project.findProperty("projVersion") ?: "100.0.0" + +val luceneVersion = "10.2.0" +val pdfbox = "3.0.4" + +dependencies { + implementation(project(":jablib")) + + implementation("org.slf4j:slf4j-api:2.0.17") + implementation("org.tinylog:tinylog-api:2.7.0") + implementation("org.tinylog:slf4j-tinylog:2.7.0") + implementation("org.tinylog:tinylog-impl:2.7.0") + // route all requests to java.util.logging to SLF4J (which in turn routes to tinylog) + implementation("org.slf4j:jul-to-slf4j:2.0.17") + // route all requests to log4j to SLF4J + implementation("org.apache.logging.log4j:log4j-to-slf4j:2.24.3") + + implementation("org.jabref:afterburner.fx:2.0.0") { + exclude( group = "org.openjfx") + } + implementation("org.kordamp.ikonli:ikonli-javafx:12.4.0") + implementation("org.kordamp.ikonli:ikonli-materialdesign2-pack:12.4.0") + implementation("com.github.sialcasa.mvvmFX:mvvmfx-validation:f195849ca9") //jitpack + implementation("de.saxsys:mvvmfx:1.8.0") + implementation("org.fxmisc.flowless:flowless:0.7.4") + implementation("org.fxmisc.richtext:richtextfx:0.11.5") + implementation("com.dlsc.gemsfx:gemsfx:2.96.0") { + exclude(module = "javax.inject") // Split package, use only jakarta.inject + exclude(module = "commons-lang3") + exclude(group = "org.apache.commons.validator") + exclude(group = "org.apache.commons.commons-logging") + exclude(module = "kotlin-stdlib-jdk8") + exclude(group = "com.squareup.retrofit2") + exclude(group = "org.openjfx") + exclude(group = "org.apache.logging.log4j") + exclude(group = "tech.units") + } + + // Required by gemsfx + implementation("tech.units:indriya:2.2.2") + // Required by gemsfx and langchain4j + implementation ("com.squareup.retrofit2:retrofit:2.11.0") { + exclude(group = "com.squareup.okhttp3") + } + + implementation("org.controlsfx:controlsfx:11.2.2") + implementation("org.jabref:easybind:2.2.1-SNAPSHOT") { + exclude(group = "org.openjfx") + } + + implementation("org.apache.lucene:lucene-core:${luceneVersion}") + implementation("org.apache.lucene:lucene-queryparser:${luceneVersion}") + implementation("org.apache.lucene:lucene-queries:${luceneVersion}") + implementation("org.apache.lucene:lucene-analysis-common:${luceneVersion}") + implementation("org.apache.lucene:lucene-highlighter:${luceneVersion}") + + implementation("org.jsoup:jsoup:1.19.1") + + // Because of GraalVM quirks, we need to ship that. See https://github.com/jspecify/jspecify/issues/389#issuecomment-1661130973 for details + implementation("org.jspecify:jspecify:1.0.0") + + implementation("com.google.guava:guava:33.4.8-jre") + + implementation("dev.langchain4j:langchain4j:0.36.2") + + implementation("io.github.java-diff-utils:java-diff-utils:4.15") + + implementation("org.jooq:jool:0.9.15") + + implementation("commons-io:commons-io:2.19.0") + + implementation ("org.apache.pdfbox:pdfbox:$pdfbox") { + exclude(group = "commons-logging") + } + + // implementation("net.java.dev.jna:jna:5.16.0") + implementation("net.java.dev.jna:jna-platform:5.16.0") + + implementation("org.eclipse.jgit:org.eclipse.jgit:7.2.0.202503040940-r") + + implementation("com.konghq:unirest-java-core:4.4.5") + + implementation("org.apache.httpcomponents.client5:httpclient5:5.4.3") + + implementation("com.vladsch.flexmark:flexmark-html2md-converter:0.64.8") + + implementation("io.github.adr:e-adr:2.0.0-SNAPSHOT") + + implementation("org.libreoffice:unoloader:24.8.4") + implementation("org.libreoffice:libreoffice:24.8.4") + + implementation("com.github.javakeyring:java-keyring:1.0.4") + + implementation("commons-cli:commons-cli:1.9.0") + + implementation("de.undercouch:citeproc-java:3.2.0") { + exclude(group = "org.antlr") + } + + testImplementation("io.github.classgraph:classgraph:4.8.179") + testImplementation("org.testfx:testfx-core:4.0.16-alpha") + testImplementation("org.testfx:testfx-junit5:4.0.16-alpha") + + testImplementation("org.mockito:mockito-core:5.17.0") + + // recommended by https://github.com/wiremock/wiremock/issues/2149#issuecomment-1835775954 + testImplementation("org.wiremock:wiremock-standalone:3.12.1") + + testImplementation("com.github.javaparser:javaparser-symbol-solver-core:3.26.4") +} + +javafx { + version = "24" + // javafx.swing required by com.dlsc.gemsfx + modules = listOf("javafx.base", "javafx.graphics", "javafx.fxml", "javafx.web", "javafx.swing") +} + +application { + mainClass.set("org.jabref.Launcher") + mainModule.set("org.jabref") + + applicationDefaultJvmArgs = listOf( + // On a change here, also adapt + // 1. "run > moduleOptions" + // 2. "deployment.yml" (macOS part) + // 3. "deployment-arm64.yml" + + // Note that the arguments are cleared for the "run" task to avoid messages like "WARNING: Unknown module: org.jabref.merged.module specified to --add-exports" + + // Fix for https://github.com/JabRef/jabref/issues/11188 + "--add-exports=javafx.base/com.sun.javafx.event=org.jabref.merged.module", + "--add-exports=javafx.controls/com.sun.javafx.scene.control=org.jabref.merged.module", + + // Fix for https://github.com/JabRef/jabref/issues/11198 + "--add-opens=javafx.graphics/javafx.scene=org.jabref.merged.module", + "--add-opens=javafx.controls/javafx.scene.control=org.jabref.merged.module", + "--add-opens=javafx.controls/com.sun.javafx.scene.control=org.jabref.merged.module", + // fix for https://github.com/JabRef/jabref/issues/11426 + "--add-opens=javafx.controls/javafx.scene.control.skin=org.jabref.merged.module", + + // Fix for https://github.com/JabRef/jabref/issues/11225 on linux + "--add-opens=javafx.controls/javafx.scene.control=org.jabref", + "--add-exports=javafx.base/com.sun.javafx.event=org.jabref", + "--add-exports=javafx.controls/com.sun.javafx.scene.control=org.jabref", + "--add-opens=javafx.graphics/javafx.scene=org.jabref", + "--add-opens=javafx.controls/javafx.scene.control=org.jabref", + "--add-opens=javafx.controls/com.sun.javafx.scene.control=org.jabref", + + "--add-opens=javafx.base/javafx.collections=org.jabref", + "--add-opens=javafx.base/javafx.collections.transformation=org.jabref", + + "--enable-native-access=com.sun.jna,javafx.graphics,javafx.media,javafx.web,org.apache.lucene.core" + ) +} + +// Workaround for https://github.com/openjfx/javafx-gradle-plugin/issues/89 +// See also https://github.com/java9-modularity/gradle-modules-plugin/issues/165 +modularity.disableEffectiveArgumentsAdjustment() + +/* +jacoco { + toolVersion = "0.8.13" +} +*/ + +tasks.named("run") { + doFirst { + // Clear the default JVM arguments to avoid warnings + // application.applicationDefaultJvmArgs = emptyList() + application.applicationDefaultJvmArgs = listOf("--enable-native-access=com.sun.jna,javafx.graphics,javafx.media,javafx.web,org.apache.lucene.core") + } + + extensions.configure("moduleOptions") { + // On a change here, also adapt "application > applicationDefaultJvmArgs" + addExports.putAll( + mapOf( + // TODO: Remove access to internal API + "javafx.base/com.sun.javafx.event" to "org.jabref.merged.module", + "javafx.controls/com.sun.javafx.scene.control" to "org.jabref", + + // ControlsFX compatibility + // We need to restate the ControlsFX exports, because we get following error otherwise: + // java.lang.IllegalAccessError: + // class org.controlsfx.control.textfield.AutoCompletionBinding (in module org.controlsfx.controls) + // cannot access class com.sun.javafx.event.EventHandlerManager (in module javafx.base) because + // module javafx.base does not export com.sun.javafx.event to module org.controlsfx.controls + // Taken from here: https://github.com/controlsfx/controlsfx/blob/9.0.0/build.gradle#L1 + "javafx.graphics/com.sun.javafx.scene" to "org.controlsfx.controls", + "javafx.graphics/com.sun.javafx.scene.traversal" to "org.controlsfx.controls", + "javafx.graphics/com.sun.javafx.css" to "org.controlsfx.controls", + "javafx.controls/com.sun.javafx.scene.control" to "org.controlsfx.controls", + "javafx.controls/com.sun.javafx.scene.control.behavior" to "org.controlsfx.controls", + "javafx.controls/com.sun.javafx.scene.control.inputmap" to "org.controlsfx.controls", + "javafx.base/com.sun.javafx.event" to "org.controlsfx.controls", + "javafx.base/com.sun.javafx.collections" to "org.controlsfx.controls", + "javafx.base/com.sun.javafx.runtime" to "org.controlsfx.controls", + "javafx.web/com.sun.webkit" to "org.controlsfx.controls" + ) + ) + + addOpens.putAll( + mapOf( + "javafx.controls/javafx.scene.control" to "org.jabref", + "javafx.controls/com.sun.javafx.scene.control" to "org.jabref", + "org.controlsfx.controls/impl.org.controlsfx.skin" to "org.jabref", + "org.controlsfx.controls/org.controlsfx.control.textfield" to "org.jabref", + "javafx.controls/javafx.scene.control.skin" to "org.controlsfx.controls", + "javafx.graphics/javafx.scene" to "org.controlsfx.controls", + "javafx.base/javafx.collections" to "org.jabref", + "javafx.base/javafx.collections.transformation" to "org.jabref" + ) + ) + + addModules.add("jdk.incubator.vector") + + createCommandLineArgumentFile = true + } +} + +tasks.compileJava { + extensions.configure { + addExports.putAll( + mapOf( + // TODO: Remove access to internal api + "javafx.controls/com.sun.javafx.scene.control" to "org.jabref", + "org.controlsfx.controls/impl.org.controlsfx.skin" to "org.jabref" + ) + ) + } +} + +tasks.named("jpackage") { + dependsOn("deleteInstallerTemp") +} + +tasks.named("jlinkZip") { + dependsOn("jpackage") +} + +tasks.register("deleteInstallerTemp") { + delete(file("$buildDir/installer")) +} + +jlink { + // https://github.com/beryx/badass-jlink-plugin/issues/61#issuecomment-504640018 + addExtraDependencies( + "javafx" + ) + + // We keep debug statements - otherwise "--strip-debug" would be included + addOptions( + "--compress", + "zip-6", + "--no-header-files", + "--no-man-pages" + ) + addOptions( + "--bind-services" + ) + + launcher { + name = + "JabRef" + } + + // TODO: Remove as soon as dependencies are fixed (upstream) + forceMerge( + "controlsfx", + "bcprov", + "jaxb", + "istack", + "stax" + ) + + mergedModule { + requires( + "com.google.gson" + ) + requires( + "com.fasterxml.jackson.annotation" + ) + requires( + "com.fasterxml.jackson.databind" + ) + requires( + "com.fasterxml.jackson.core" + ) + requires( + "com.fasterxml.jackson.datatype.jdk8" + ) + requires( + "jakarta.xml.bind" + ) + requires( + "java.compiler" + ) + requires( + "java.datatransfer" + ) + requires( + "java.desktop" + ) + requires( + "java.logging" + ) + requires( + "java.management" + ) + requires( + "java.naming" + ) + requires( + "java.net.http" + ) + requires( + "java.rmi" + ) + requires( + "java.scripting" + ) + requires( + "java.security.jgss" + ) + requires( + "java.security.sasl" + ) + requires( + "java.sql" + ) + requires( + "java.sql.rowset" + ) + requires( + "java.transaction.xa" + ) + requires( + "java.xml" + ) + requires( + "javafx.base" + ) + requires( + "javafx.controls" + ) + requires( + "javafx.fxml" + ) + requires( + "javafx.graphics" + ) + requires( + "javafx.media" + ) + requires( + "javafx.swing" + ) + requires( + "jdk.jsobject" + ) + requires( + "jdk.security.jgss" + ) + requires( + "jdk.unsupported" + ) + requires( + "jdk.unsupported.desktop" + ) + requires( + "jdk.xml.dom" + ) + requires( + "org.apache.commons.lang3" + ) + requires( + "org.apache.commons.logging" + ) + requires( + "org.apache.commons.text" + ) + requires( + "org.apache.commons.codec" + ) + requires( + "org.apache.commons.io" + ) + requires( + "org.apache.commons.compress" + ) + requires( + "org.freedesktop.dbus" + ) + requires( + "org.jsoup" + ) + requires( + "org.slf4j" + ) + requires( + "org.tukaani.xz" + ); + uses( + "ai.djl.engine.EngineProvider" + ) + uses( + "ai.djl.repository.RepositoryFactory" + ) + uses( + "ai.djl.repository.zoo.ZooProvider" + ) + uses( + "dev.langchain4j.spi.prompt.PromptTemplateFactory" + ) + uses( + "kong.unirest.core.json.JsonEngine" + ) + uses( + "org.eclipse.jgit.lib.Signer" + ) + uses( + "org.eclipse.jgit.transport.SshSessionFactory" + ) + uses( + "org.postgresql.shaded.com.ongres.stringprep.Profile" + ) + + provides( + "java.sql.Driver" + ).with( + "org.postgresql.Driver" + ) + provides( + "java.security.Provider" + ).with( + "org.bouncycastle.jce.provider.BouncyCastleProvider", + "org.bouncycastle.pqc.jcajce.provider.BouncyCastlePQCProvider" + ) + provides( + "kong.unirest.core.json.JsonEngine" + ).with( + "kong.unirest.modules.gson.GsonEngine" + ) + provides( + "ai.djl.repository.zoo.ZooProvider" + ).with( + "ai.djl.engine.rust.zoo.RsZooProvider", + "ai.djl.huggingface.zoo.HfZooProvider", + "ai.djl.pytorch.zoo.PtZooProvider", + "ai.djl.repository.zoo.DefaultZooProvider" + ) + provides( + "ai.djl.engine.EngineProvider" + ).with( + "ai.djl.engine.rust.RsEngineProvider", + "ai.djl.pytorch.engine.PtEngineProvider" + ) + + } + + jpackage { + outputDir = + "distribution" + + if (OperatingSystem.current().isWindows) { + // This requires WiX to be installed: https://github.com/wixtoolset/wix3/releases + installerType = + "msi" + + imageOptions.addAll( + listOf( + "--icon", + "${projectDir}/src/main/resources/icons/jabref.ico" + ) + ) + + installerOptions.addAll( + listOf( + "--vendor", + "JabRef", + "--app-version", + "$version", + "--verbose", + "--win-upgrade-uuid", + "d636b4ee-6f10-451e-bf57-c89656780e36", + "--win-dir-chooser", + "--win-shortcut", + "--win-menu", + "--win-menu-group", + "JabRef", + "--temp", + "$buildDir/installer", + "--resource-dir", + "$projectDir/buildres/windows", + "--license-file", + "$projectDir/buildres/LICENSE_with_Privacy.md", + "--file-associations", + "$projectDir/buildres/windows/bibtexAssociations.properties" + ) + ) + } else if (OperatingSystem.current().isLinux) { + imageOptions.addAll( + listOf( + "--icon", + "$projectDir/src/main/resources/icons/JabRef-linux-icon-64.png", + "--app-version", + "$version" + ) + ) + + installerOptions.addAll( + listOf( + "--verbose", + "--vendor", + "JabRef", + "--app-version", + "$version", + // "--temp", "$buildDir/installer", + "--resource-dir", + "$projectDir/buildres/linux", + "--linux-menu-group", + "Office;", + "--linux-rpm-license-type", + "MIT", + // "--license-file", "$projectDir/LICENSE.md", + "--description", + "JabRef is an open source bibliography reference manager. The native file format used by JabRef is BibTeX, the standard LaTeX bibliography format.", + "--linux-shortcut", + "--file-associations", + "$projectDir/buildres/linux/bibtexAssociations.properties" + ) + ) + } else if (OperatingSystem.current().isMacOsX) { + imageOptions.addAll( + listOf( + "--icon", + "$projectDir/src/main/resources/icons/jabref.icns", + "--resource-dir", + "$projectDir/buildres/mac" + ) + ) + + skipInstaller = + true + + installerOptions.addAll( + listOf( + "--verbose", + "--vendor", + "JabRef", + "--mac-package-identifier", + "JabRef", + "--mac-package-name", + "JabRef", + "--app-version", + "$version", + "--file-associations", + "$projectDir/buildres/mac/bibtexAssociations.properties", + "--resource-dir", + "$projectDir/buildres/mac" + ) + ) + } + } +} + +if (OperatingSystem.current().isWindows) { + tasks.named("jpackageImage").configure { + doLast { + copy { + from(file("$projectDir/buildres/windows")) { + include( + "jabref-firefox.json", + "jabref-chrome.json", + "JabRefHost.bat", + "JabRefHost.ps1" + ) + } + into(file("$buildDir/distribution/JabRef")) + } + } + } +} else if (OperatingSystem.current().isLinux) { + tasks.named("jpackageImage").configure { + doLast { + copy { + from(file("$projectDir/buildres/linux")) { + include("native-messaging-host/**", "jabrefHost.py") + } + into(file("$buildDir/distribution/JabRef/lib")) + } + } + } +} else if (OperatingSystem.current().isMacOsX) { + tasks.named("jpackageImage").configure { + doLast { + copy { + from(file("$projectDir/buildres/mac")) { + include("native-messaging-host/**", "jabrefHost.py") + } + into(file("$buildDir/distribution/JabRef.app/Contents/Resources")) + } + } + } +} diff --git a/buildres/JabRef.VisualElementsManifest.xml b/jabgui/buildres/JabRef.VisualElementsManifest.xml similarity index 100% rename from buildres/JabRef.VisualElementsManifest.xml rename to jabgui/buildres/JabRef.VisualElementsManifest.xml diff --git a/jabgui/buildres/LICENSE_with_Privacy.md b/jabgui/buildres/LICENSE_with_Privacy.md new file mode 100644 index 00000000000..cb14445fbdf --- /dev/null +++ b/jabgui/buildres/LICENSE_with_Privacy.md @@ -0,0 +1,150 @@ +MIT License + +Copyright © 2003-2025 JabRef Authors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +--- Privacy Policy ---- + +# Privacy Policy + +Last updated: 2024-08-06 + +Your privacy is a fundamental right JabRef e.V. respects and supports. +By using JabRef and its related online services, you choose to share some of your personal information. +In this Privacy Policy we explain how we collect, use, and share information about you, along with the choices you have. + +The term 'Personal information' in this policy means any information that either directly identifies you or can be somehow linked to you. 'JabRef' refers to the desktop application that is provided by JabRef e.V. + +Please remember that no method of transmission over the Internet, or method of electronic storage is absolute secure. +While we strive to use commercially acceptable means to protect your Personal Data, we cannot guarantee its absolute security. +Also, whenever you communicate through the internet, your IP-Address will always be transmitted and retained by third parties for technical and in some cases for legal reasons. + +## JabRef Desktop Application + +### Collecting information + +JabRef does not collect any personal information directly linked to you. +However, on certain occasions JabRef will send some information to the online services of JabRef e.V.: + +- On application start, JabRef will check for the latest version online (by default *enabled*). +- Information about a journal you are citing when looking for more information about this journal, using our journal database (by default *enabled*). +- A pdf document you automatically want to extract citation information from, using our GROBID service (by default *disabled*). +- Anonymized statistical data on the use of the graphical user interface for internal analysis purposes (by default *disabled*). + +### Storing information + +JabRef only stores the following personal information locally on your computer: + +- Your proxy username and password, if you decide to store them (by default *disabled*). +- Any personal API key you use to access third party online services (by default *disabled*). + +### Sharing information + +Certain operations you perform in JabRef may trigger requests to public third-party services such as Zotero, Crossref or the Library of Congress for metadata retrieval. +These third parties may log additional information besides your IP address and the search terms (e.g., DOI, ISBN or the current URL) according to their privacy policies. + +These third-party services are the following: + +| Service | Privacy Policy | +|------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------| +| [ACM](https://www.acm.org/) | | +| [ACS Publications](https://pubs.acs.org/) | | +| [APS Advancing Physics](https://harvest.aps.org/) | | +| [arXiv.org](https://arxiv.org/) | | +| [Bibliotheksverbund Bayern](https://www.bib-bvb.de/) | | +| [Biodiversity Heritage Library](https://www.biodiversitylibrary.org/) | | +| [Collection of Computer Science Bibliographies](https://en.wikipedia.org/wiki/Collection_of_Computer_Science_Bibliographies) | **currently unavailable**, offline | +| [CrossRef](https://www.crossref.org/) | | +| [dblp](https://dblp.uni-trier.de/) | | +| [DJL (Deep Java Library)](https://djl.ai/) | | +| [Directory of Open Access Books](https://www.doabooks.org/) | | +| [Digitala Vetenskapliga Arkivet](https://www.diva-portal.org/) | | +| [DOI Foundation](https://www.doi.org/) | | +| [Elsevier](https://www.elsevier.com/) | | +| [Google Gemini](https://ai.google.dev/gemini-api) | | +| [Google Scholar](https://scholar.google.com/) | | +| [Gemeinsamer Verbundkatalog](https://www.gbv.de/) | | +| [Hugging Face](https://huggingface.co/) | | +| [IACR](https://www.iacr.org/) | | +| [IEEEXplore](https://ieeexplore.ieee.org/Xplore/home.jsp) | | +| [INSPIRE](https://inspirehep.net/) | | +| [ISIDORE](https://isidore.science/) | | +| [JSTOR](https://www.jstor.org/) | | +| [Library of Congress](https://lccn.loc.gov/) | | +| [Mistral AI](https://mistral.ai/) | | +| [National Library of Medicine](https://www.ncbi.nlm.nih.gov/) | | +| [MathSciNet](http://www.ams.org/mathscinet) | | +| [mEDRA](https://www.medra.org/) | | +| [Mr. DLib](https://mr-dlib.org/) [1] | | +| [OpenAI](https://openai.com/) | | +| [Openlibrary](https://openlibrary.org) | | +| [ResearchGate](https://www.researchgate.net/) | | +| [IETF Datatracker](https://datatracker.ietf.org/) | | +| [Semantic Scholar](https://www.semanticscholar.org/), powered by [Allen Institute for AI](https://allenai.org/) | | +| [Springer Nature](https://dev.springernature.com/) | | +| [The SAO/NASA Astrophysics Data System](https://ui.adsabs.harvard.edu/) | | +| [Unpaywall](https://unpaywall.org/) | | +| [zbMATH Open](https://www.zbmath.org) | | + +[1]: *Note: The Mr. DLib service is used for the related articles tab in the entry editor and collects also your language, your browser and operating system (*disabled* by default).* + +## JabRef Browser Extension + +No personal data (like name, email address, billing address or credit card) is collected by the Browser Extension itself. +But be aware that the browser Extension uses Zotero services, where [Zotero's Privacy Policy](https://www.zotero.org/support/privacy) applies. + +### Collecting information + +When actively used, the extension has access to the current website and its content to process citation information. In particular, the following information is used: + +- the url of the current website you are visiting, +- the content of the current website. + +### Storing information + +No data will be stored by the Browser Extension. + +### Sharing information + +The Browser Extension does not share any data except with the local instance of the JabRef software application, which stores the citation data as a new entry in its library. + +## Links to other Websites + +Our Service may contain links to other websites that are not operated by us. If you click on a third party link, you will be directed to that third party's site. We strongly advise you to review the Privacy Policy of every site you visit. + +We have no control over and assume no responsibility for the content, privacy policies or practices of any third party sites or services. + +## Changes to this Privacy Policy + +This privacy policy may be changed eventually. +We encourage you to check this Privacy Policy periodically for any changes. +Any material change will be mentioned in the changelog of the desktop application and in our [blog](https://blog.jabref.org/). + +This privacy policy is in effect as of the day mentioned as "last updated" above and will remain in effect except with respect to any changes in its provisions in the future, which will be in effect immediately after being posted on this page. + +## Contact + +If you get in touch with us, we may ask you to provide us with certain personal information (e.g. name and email address) to stay in contact with you. +For any questions or concerns regarding the privacy policy, please send us an email to or write to + +JabRef e.V. +Josef-Lanner-Str. 9 +71069 Sindelfingen +Germany diff --git a/buildres/linux/JabRef.desktop b/jabgui/buildres/linux/JabRef.desktop similarity index 100% rename from buildres/linux/JabRef.desktop rename to jabgui/buildres/linux/JabRef.desktop diff --git a/buildres/linux/JabRef.png b/jabgui/buildres/linux/JabRef.png similarity index 100% rename from buildres/linux/JabRef.png rename to jabgui/buildres/linux/JabRef.png diff --git a/buildres/linux/bibtexAssociations.properties b/jabgui/buildres/linux/bibtexAssociations.properties similarity index 100% rename from buildres/linux/bibtexAssociations.properties rename to jabgui/buildres/linux/bibtexAssociations.properties diff --git a/buildres/linux/copyright b/jabgui/buildres/linux/copyright similarity index 100% rename from buildres/linux/copyright rename to jabgui/buildres/linux/copyright diff --git a/buildres/linux/jabref.spec b/jabgui/buildres/linux/jabref.spec similarity index 100% rename from buildres/linux/jabref.spec rename to jabgui/buildres/linux/jabref.spec diff --git a/buildres/linux/jabrefHost.py b/jabgui/buildres/linux/jabrefHost.py old mode 100755 new mode 100644 similarity index 100% rename from buildres/linux/jabrefHost.py rename to jabgui/buildres/linux/jabrefHost.py diff --git a/buildres/linux/native-messaging-host/chromium/bifehkofibaamoeaopjglfkddgkijdlh.json b/jabgui/buildres/linux/native-messaging-host/chromium/bifehkofibaamoeaopjglfkddgkijdlh.json similarity index 100% rename from buildres/linux/native-messaging-host/chromium/bifehkofibaamoeaopjglfkddgkijdlh.json rename to jabgui/buildres/linux/native-messaging-host/chromium/bifehkofibaamoeaopjglfkddgkijdlh.json diff --git a/buildres/linux/native-messaging-host/chromium/org.jabref.jabref.json b/jabgui/buildres/linux/native-messaging-host/chromium/org.jabref.jabref.json similarity index 100% rename from buildres/linux/native-messaging-host/chromium/org.jabref.jabref.json rename to jabgui/buildres/linux/native-messaging-host/chromium/org.jabref.jabref.json diff --git a/buildres/linux/native-messaging-host/firefox/org.jabref.jabref.json b/jabgui/buildres/linux/native-messaging-host/firefox/org.jabref.jabref.json similarity index 100% rename from buildres/linux/native-messaging-host/firefox/org.jabref.jabref.json rename to jabgui/buildres/linux/native-messaging-host/firefox/org.jabref.jabref.json diff --git a/buildres/linux/postinst b/jabgui/buildres/linux/postinst similarity index 100% rename from buildres/linux/postinst rename to jabgui/buildres/linux/postinst diff --git a/buildres/linux/postrm b/jabgui/buildres/linux/postrm similarity index 100% rename from buildres/linux/postrm rename to jabgui/buildres/linux/postrm diff --git a/buildres/mac/Info-lite.plist.template b/jabgui/buildres/mac/Info-lite.plist.template similarity index 100% rename from buildres/mac/Info-lite.plist.template rename to jabgui/buildres/mac/Info-lite.plist.template diff --git a/buildres/mac/Info.plist b/jabgui/buildres/mac/Info.plist similarity index 100% rename from buildres/mac/Info.plist rename to jabgui/buildres/mac/Info.plist diff --git a/buildres/mac/Info.plist.template b/jabgui/buildres/mac/Info.plist.template similarity index 100% rename from buildres/mac/Info.plist.template rename to jabgui/buildres/mac/Info.plist.template diff --git a/buildres/mac/JabRef-background-darkAqua.png b/jabgui/buildres/mac/JabRef-background-darkAqua.png similarity index 100% rename from buildres/mac/JabRef-background-darkAqua.png rename to jabgui/buildres/mac/JabRef-background-darkAqua.png diff --git a/buildres/mac/JabRef-background.png b/jabgui/buildres/mac/JabRef-background.png similarity index 100% rename from buildres/mac/JabRef-background.png rename to jabgui/buildres/mac/JabRef-background.png diff --git a/buildres/mac/JabRef-background.tiff b/jabgui/buildres/mac/JabRef-background.tiff similarity index 100% rename from buildres/mac/JabRef-background.tiff rename to jabgui/buildres/mac/JabRef-background.tiff diff --git a/buildres/mac/JabRef-dmg-setup.scpt b/jabgui/buildres/mac/JabRef-dmg-setup.scpt similarity index 100% rename from buildres/mac/JabRef-dmg-setup.scpt rename to jabgui/buildres/mac/JabRef-dmg-setup.scpt diff --git a/buildres/mac/Jabref-volume.icns b/jabgui/buildres/mac/Jabref-volume.icns similarity index 100% rename from buildres/mac/Jabref-volume.icns rename to jabgui/buildres/mac/Jabref-volume.icns diff --git a/buildres/mac/README.md b/jabgui/buildres/mac/README.md similarity index 100% rename from buildres/mac/README.md rename to jabgui/buildres/mac/README.md diff --git a/buildres/mac/Runtime-Info.plist b/jabgui/buildres/mac/Runtime-Info.plist similarity index 100% rename from buildres/mac/Runtime-Info.plist rename to jabgui/buildres/mac/Runtime-Info.plist diff --git a/buildres/mac/Runtime-Info.plist.template b/jabgui/buildres/mac/Runtime-Info.plist.template similarity index 100% rename from buildres/mac/Runtime-Info.plist.template rename to jabgui/buildres/mac/Runtime-Info.plist.template diff --git a/buildres/mac/bibtexAssociations.properties b/jabgui/buildres/mac/bibtexAssociations.properties similarity index 100% rename from buildres/mac/bibtexAssociations.properties rename to jabgui/buildres/mac/bibtexAssociations.properties diff --git a/buildres/mac/info-lite.plist b/jabgui/buildres/mac/info-lite.plist similarity index 100% rename from buildres/mac/info-lite.plist rename to jabgui/buildres/mac/info-lite.plist diff --git a/buildres/mac/jabref.entitlements b/jabgui/buildres/mac/jabref.entitlements similarity index 100% rename from buildres/mac/jabref.entitlements rename to jabgui/buildres/mac/jabref.entitlements diff --git a/buildres/mac/jabrefHost.py b/jabgui/buildres/mac/jabrefHost.py old mode 100755 new mode 100644 similarity index 100% rename from buildres/mac/jabrefHost.py rename to jabgui/buildres/mac/jabrefHost.py diff --git a/buildres/mac/launcher.icns b/jabgui/buildres/mac/launcher.icns similarity index 100% rename from buildres/mac/launcher.icns rename to jabgui/buildres/mac/launcher.icns diff --git a/buildres/mac/native-messaging-host/chromium/bifehkofibaamoeaopjglfkddgkijdlh.json b/jabgui/buildres/mac/native-messaging-host/chromium/bifehkofibaamoeaopjglfkddgkijdlh.json similarity index 100% rename from buildres/mac/native-messaging-host/chromium/bifehkofibaamoeaopjglfkddgkijdlh.json rename to jabgui/buildres/mac/native-messaging-host/chromium/bifehkofibaamoeaopjglfkddgkijdlh.json diff --git a/buildres/mac/native-messaging-host/chromium/org.jabref.jabref.json b/jabgui/buildres/mac/native-messaging-host/chromium/org.jabref.jabref.json similarity index 100% rename from buildres/mac/native-messaging-host/chromium/org.jabref.jabref.json rename to jabgui/buildres/mac/native-messaging-host/chromium/org.jabref.jabref.json diff --git a/buildres/mac/native-messaging-host/firefox/org.jabref.jabref.json b/jabgui/buildres/mac/native-messaging-host/firefox/org.jabref.jabref.json similarity index 100% rename from buildres/mac/native-messaging-host/firefox/org.jabref.jabref.json rename to jabgui/buildres/mac/native-messaging-host/firefox/org.jabref.jabref.json diff --git a/buildres/mac/postinstall b/jabgui/buildres/mac/postinstall old mode 100755 new mode 100644 similarity index 100% rename from buildres/mac/postinstall rename to jabgui/buildres/mac/postinstall diff --git a/buildres/windows/JabRefHost.bat b/jabgui/buildres/windows/JabRefHost.bat similarity index 100% rename from buildres/windows/JabRefHost.bat rename to jabgui/buildres/windows/JabRefHost.bat diff --git a/buildres/windows/JabRefHost.ps1 b/jabgui/buildres/windows/JabRefHost.ps1 similarity index 100% rename from buildres/windows/JabRefHost.ps1 rename to jabgui/buildres/windows/JabRefHost.ps1 diff --git a/buildres/windows/JabRefTopBanner.bmp b/jabgui/buildres/windows/JabRefTopBanner.bmp similarity index 100% rename from buildres/windows/JabRefTopBanner.bmp rename to jabgui/buildres/windows/JabRefTopBanner.bmp diff --git a/buildres/windows/bibtexAssociations.properties b/jabgui/buildres/windows/bibtexAssociations.properties similarity index 100% rename from buildres/windows/bibtexAssociations.properties rename to jabgui/buildres/windows/bibtexAssociations.properties diff --git a/buildres/windows/jabref-chrome.json b/jabgui/buildres/windows/jabref-chrome.json similarity index 100% rename from buildres/windows/jabref-chrome.json rename to jabgui/buildres/windows/jabref-chrome.json diff --git a/buildres/windows/jabref-firefox.json b/jabgui/buildres/windows/jabref-firefox.json similarity index 100% rename from buildres/windows/jabref-firefox.json rename to jabgui/buildres/windows/jabref-firefox.json diff --git a/jabgui/buildres/windows/main.wxs b/jabgui/buildres/windows/main.wxs new file mode 100644 index 00000000000..5c830545e1f --- /dev/null +++ b/jabgui/buildres/windows/main.wxs @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Not Installed + Not Installed + Not Installed + Not Installed + + Not Installed + + + Not Installed + + + Not Installed + + + + JP_UPGRADABLE_FOUND + + + JP_DOWNGRADABLE_FOUND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/module-info.java b/jabgui/src/main/java/module-info.java similarity index 61% rename from src/main/java/module-info.java rename to jabgui/src/main/java/module-info.java index ccb2f386829..ffd67edffa0 100644 --- a/src/main/java/module-info.java +++ b/jabgui/src/main/java/module-info.java @@ -1,4 +1,6 @@ open module org.jabref { + requires org.jabref.jablib; + // Swing requires java.desktop; @@ -12,6 +14,7 @@ requires javafx.controls; requires javafx.web; requires javafx.fxml; + requires com.tobiasdiez.easybind; requires afterburner.fx; provides com.airhacks.afterburner.views.ResourceLocator @@ -22,8 +25,6 @@ // Provides number input fields for parameters in AI expert settings requires com.dlsc.unitfx; - requires com.tobiasdiez.easybind; - requires de.saxsys.mvvmfx; requires de.saxsys.mvvmfx.validation; @@ -59,108 +60,103 @@ // Preferences and XML requires java.prefs; - requires com.fasterxml.aalto; + // requires com.fasterxml.aalto; // YAML - requires org.yaml.snakeyaml; + // requires org.yaml.snakeyaml; // region: Annotations (@PostConstruct) - requires jakarta.annotation; + // requires jakarta.annotation; requires jakarta.inject; // endregion // region: http server and client exchange - requires java.net.http; - requires jakarta.ws.rs; - requires org.glassfish.grizzly; + // requires jakarta.ws.rs; // endregion // region: data mapping - requires jakarta.xml.bind; + // requires jakarta.xml.bind; requires jdk.xml.dom; - requires com.google.gson; - requires com.fasterxml.jackson.databind; - requires com.fasterxml.jackson.dataformat.yaml; - requires com.fasterxml.jackson.datatype.jsr310; + // requires com.google.gson; + // requires com.fasterxml.jackson.databind; + // requires com.fasterxml.jackson.dataformat.yaml; + // requires com.fasterxml.jackson.datatype.jsr310; // needs to be loaded here as it's otherwise not found at runtime - requires org.glassfish.jaxb.runtime; + // requires org.glassfish.jaxb.runtime; // endregion // dependency injection using HK2 - requires org.glassfish.hk2.api; + // requires org.glassfish.hk2.api; // region HTTP clients requires org.apache.httpcomponents.core5.httpcore5; requires org.jsoup; requires unirest.java.core; - requires unirest.modules.gson; + // requires unirest.modules.gson; // endregion // region: SQL databases - requires embedded.postgres; - requires org.tukaani.xz; - requires ojdbc10; - requires org.postgresql.jdbc; - requires org.mariadb.jdbc; - uses org.mariadb.jdbc.credential.CredentialPlugin; + // requires embedded.postgres; + // requires org.tukaani.xz; + // requires org.postgresql.jdbc; // endregion // region: Apache Commons and other (similar) helper libraries requires com.google.common; requires io.github.javadiffutils; - requires java.string.similarity; + // requires java.string.similarity; requires org.apache.commons.cli; - requires org.apache.commons.compress; - requires org.apache.commons.csv; + // requires org.apache.commons.compress; + // requires org.apache.commons.csv; requires org.apache.commons.io; - requires org.apache.commons.lang3; - requires org.apache.commons.text; - requires org.apache.commons.logging; + // requires org.apache.commons.lang3; + // requires org.apache.commons.text; + // requires org.apache.commons.logging; // endregion // region: latex2unicode - requires com.github.tomtung.latex2unicode; - requires fastparse; - requires scala.library; + // requires com.github.tomtung.latex2unicode; + // requires fastparse; + // requires scala.library; // endregion - requires jbibtex; - requires citeproc.java; + // requires jbibtex; + // requires citeproc.java; - requires snuggletex.core; + // requires snuggletex.core; requires org.apache.pdfbox; - requires org.apache.xmpbox; - requires com.ibm.icu; + // requires org.apache.xmpbox; + // requires com.ibm.icu; - requires flexmark; + // requires flexmark; requires flexmark.html2md.converter; - requires flexmark.util.ast; - requires flexmark.util.data; + // requires flexmark.util.ast; + // requires flexmark.util.data; - requires com.h2database.mvstore; + // requires com.h2database.mvstore; requires java.keyring; - requires org.freedesktop.dbus; + // requires org.freedesktop.dbus; requires org.jooq.jool; // region AI - requires ai.djl.api; - requires ai.djl.pytorch_model_zoo; - requires ai.djl.tokenizers; - requires jvm.openai; - requires langchain4j; + // requires ai.djl.api; + // requires ai.djl.pytorch_model_zoo; + // requires ai.djl.tokenizers; + // requires jvm.openai; + // requires langchain4j; requires langchain4j.core; - requires langchain4j.google.ai.gemini; - requires langchain4j.hugging.face; - requires langchain4j.mistral.ai; - requires langchain4j.open.ai; - uses ai.djl.engine.EngineProvider; - uses ai.djl.repository.RepositoryFactory; - uses ai.djl.repository.zoo.ZooProvider; - uses dev.langchain4j.spi.prompt.PromptTemplateFactory; - requires velocity.engine.core; + // requires langchain4j.google.ai.gemini; + // requires langchain4j.hugging.face; + // requires langchain4j.mistral.ai; + // requires langchain4j.open.ai; + // uses ai.djl.engine.EngineProvider; + // uses ai.djl.repository.RepositoryFactory; + // uses ai.djl.repository.zoo.ZooProvider; + // uses dev.langchain4j.spi.prompt.PromptTemplateFactory; + // requires velocity.engine.core; // endregion // region: Lucene @@ -174,23 +170,23 @@ requires org.apache.lucene.queryparser; // endregion - requires net.harawata.appdirs; - requires com.sun.jna; + // requires net.harawata.appdirs; + // requires com.sun.jna; requires com.sun.jna.platform; requires org.eclipse.jgit; - uses org.eclipse.jgit.transport.SshSessionFactory; - uses org.eclipse.jgit.lib.Signer; + // uses org.eclipse.jgit.transport.SshSessionFactory; + // uses org.eclipse.jgit.lib.Signer; requires transitive org.jspecify; // region: other libraries (alphabetically) - requires cuid; - requires dd.plist; + // requires cuid; + // requires dd.plist; requires io.github.adr; // required by okhttp and some AI library - requires kotlin.stdlib; - requires mslinks; + // requires kotlin.stdlib; + // requires mslinks; requires org.antlr.antlr4.runtime; requires org.libreoffice.uno; // endregion diff --git a/src/main/java/org/jabref/Launcher.java b/jabgui/src/main/java/org/jabref/Launcher.java similarity index 89% rename from src/main/java/org/jabref/Launcher.java rename to jabgui/src/main/java/org/jabref/Launcher.java index a8f27cb7da7..97c7d530bfc 100644 --- a/src/main/java/org/jabref/Launcher.java +++ b/jabgui/src/main/java/org/jabref/Launcher.java @@ -2,7 +2,7 @@ import java.util.List; -import org.jabref.cli.JabKit; +import org.jabref.cli.TempGuiArgsProcessing; import org.jabref.gui.JabRefGUI; import org.jabref.gui.preferences.GuiPreferences; import org.jabref.gui.preferences.JabRefGuiPreferences; @@ -25,7 +25,7 @@ public class Launcher { public static void main(String[] args) { - JabKit.initLogging(args); + TempGuiArgsProcessing.initLogging(args); // Initialize preferences final JabRefGuiPreferences preferences = JabRefGuiPreferences.getInstance(); @@ -35,7 +35,7 @@ public static void main(String[] args) { DefaultFileUpdateMonitor fileUpdateMonitor = new DefaultFileUpdateMonitor(); HeadlessExecutorService.INSTANCE.executeInterruptableTask(fileUpdateMonitor, "FileUpdateMonitor"); - List uiCommands = JabKit.processArguments(args, preferences, fileUpdateMonitor); + List uiCommands = TempGuiArgsProcessing.processArguments(args, preferences, fileUpdateMonitor); // The method `processArguments` quits the whole JVM if no GUI is needed. PreferencesMigrations.runMigrations(preferences); diff --git a/src/main/java/org/jabref/cli/ArgumentProcessor.java b/jabgui/src/main/java/org/jabref/cli/ArgumentProcessor.java similarity index 99% rename from src/main/java/org/jabref/cli/ArgumentProcessor.java rename to jabgui/src/main/java/org/jabref/cli/ArgumentProcessor.java index a21811cfe96..1505ef6349a 100644 --- a/src/main/java/org/jabref/cli/ArgumentProcessor.java +++ b/jabgui/src/main/java/org/jabref/cli/ArgumentProcessor.java @@ -8,7 +8,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.Optional; @@ -49,6 +48,7 @@ import org.jabref.logic.quality.consistency.BibliographyConsistencyCheckResultTxtWriter; import org.jabref.logic.quality.consistency.BibliographyConsistencyCheckResultWriter; import org.jabref.logic.search.DatabaseSearcher; +import org.jabref.logic.search.PostgreServer; import org.jabref.logic.search.SearchPreferences; import org.jabref.logic.shared.prefs.SharedDatabasePreferences; import org.jabref.logic.util.CurrentThreadTaskExecutor; @@ -69,6 +69,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +/// TODO: This is a clone of {@link org.jabref.cli.ArgumentProcessor} in jabkit - should be unified public class ArgumentProcessor { private static final Logger LOGGER = LoggerFactory.getLogger(ArgumentProcessor.class); @@ -88,8 +89,6 @@ public enum Mode { INITIAL_START, REMOTE_START } /** * First call the constructor, then call {@link #processArguments()}. * Afterward, you can access the {@link #getUiCommands()}. - * - * @implNote both cli and gui preferences are passed to make the dependency to GUI parts explicit */ public ArgumentProcessor(String[] args, Mode startupMode, @@ -528,7 +527,7 @@ private boolean exportMatches(List loaded) { List matches; try { // extract current thread task executor from indexManager - matches = new DatabaseSearcher(query, databaseContext, new CurrentThreadTaskExecutor(), cliPreferences).getMatches(); + matches = new DatabaseSearcher(query, databaseContext, new CurrentThreadTaskExecutor(), cliPreferences, Injector.instantiateModelOrService(PostgreServer.class)).getMatches(); } catch (IOException e) { LOGGER.error("Error occurred when searching", e); return false; @@ -571,7 +570,7 @@ private boolean exportMatches(List loaded) { databaseContext, Path.of(data[1]), matches, - Collections.emptyList(), + List.of(), Injector.instantiateModelOrService(JournalAbbreviationRepository.class)); } catch (Exception ex) { System.err.println(Localization.lang("Could not export file '%0' (reason: %1)", data[1], Throwables.getStackTraceAsString(ex))); diff --git a/src/main/java/org/jabref/cli/AuxCommandLine.java b/jabgui/src/main/java/org/jabref/cli/AuxCommandLine.java similarity index 100% rename from src/main/java/org/jabref/cli/AuxCommandLine.java rename to jabgui/src/main/java/org/jabref/cli/AuxCommandLine.java diff --git a/src/main/java/org/jabref/cli/CliOptions.java b/jabgui/src/main/java/org/jabref/cli/CliOptions.java similarity index 100% rename from src/main/java/org/jabref/cli/CliOptions.java rename to jabgui/src/main/java/org/jabref/cli/CliOptions.java diff --git a/jabgui/src/main/java/org/jabref/cli/TempGuiArgsProcessing.java b/jabgui/src/main/java/org/jabref/cli/TempGuiArgsProcessing.java new file mode 100644 index 00000000000..9ec0c3f1c20 --- /dev/null +++ b/jabgui/src/main/java/org/jabref/cli/TempGuiArgsProcessing.java @@ -0,0 +1,230 @@ +package org.jabref.cli; + +import java.io.File; +import java.io.IOException; +import java.net.Authenticator; +import java.nio.file.DirectoryStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.Map; + +import org.jabref.logic.UiCommand; +import org.jabref.logic.journals.JournalAbbreviationLoader; +import org.jabref.logic.journals.JournalAbbreviationRepository; +import org.jabref.logic.net.ProxyAuthenticator; +import org.jabref.logic.net.ProxyPreferences; +import org.jabref.logic.net.ProxyRegisterer; +import org.jabref.logic.net.ssl.SSLPreferences; +import org.jabref.logic.net.ssl.TrustStoreManager; +import org.jabref.logic.preferences.CliPreferences; +import org.jabref.logic.preferences.JabRefCliPreferences; +import org.jabref.logic.protectedterms.ProtectedTermsLoader; +import org.jabref.logic.remote.RemotePreferences; +import org.jabref.logic.remote.client.RemoteClient; +import org.jabref.logic.util.BuildInfo; +import org.jabref.logic.util.Directories; +import org.jabref.model.entry.BibEntryTypesManager; +import org.jabref.model.util.DummyFileUpdateMonitor; +import org.jabref.model.util.FileUpdateMonitor; + +import com.airhacks.afterburner.injection.Injector; +import org.apache.commons.cli.ParseException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.slf4j.bridge.SLF4JBridgeHandler; +import org.tinylog.configuration.Configuration; + +public class TempGuiArgsProcessing { + private static Logger LOGGER; + + public static void main(String[] args) { + initLogging(args); + + final JabRefCliPreferences preferences = JabRefCliPreferences.getInstance(); + Injector.setModelOrService(CliPreferences.class, preferences); + + FileUpdateMonitor fileUpdateMonitor = new DummyFileUpdateMonitor(); + + List uiCommands = processArguments(args, preferences, fileUpdateMonitor); + if (!uiCommands.isEmpty()) { + LOGGER.error("No GUI needed, but UI commands were returned. Exiting."); + } + } + + private static void systemExit() { + LOGGER.debug("JabRef shut down after processing command line arguments"); + // A clean shutdown takes 60s time + // We don't need the clean shutdown here + System.exit(0); + } + + public static List processArguments(String[] args, JabRefCliPreferences preferences, FileUpdateMonitor fileUpdateMonitor) { + try { + Injector.setModelOrService(BuildInfo.class, new BuildInfo()); + + // Early exit in case another instance is already running + if (!handleMultipleAppInstances(args, preferences.getRemotePreferences())) { + systemExit(); + } + + BibEntryTypesManager entryTypesManager = preferences.getCustomEntryTypesRepository(); + Injector.setModelOrService(BibEntryTypesManager.class, entryTypesManager); + + Injector.setModelOrService(JournalAbbreviationRepository.class, JournalAbbreviationLoader.loadRepository(preferences.getJournalAbbreviationPreferences())); + Injector.setModelOrService(ProtectedTermsLoader.class, new ProtectedTermsLoader(preferences.getProtectedTermsPreferences())); + + configureProxy(preferences.getProxyPreferences()); + configureSSL(preferences.getSSLPreferences()); + + clearOldSearchIndices(); + + try { + Injector.setModelOrService(FileUpdateMonitor.class, fileUpdateMonitor); + + // Process arguments + ArgumentProcessor argumentProcessor = new ArgumentProcessor( + args, + ArgumentProcessor.Mode.INITIAL_START, + preferences, + fileUpdateMonitor, + entryTypesManager); + argumentProcessor.processArguments(); + if (argumentProcessor.shouldShutDown()) { + LOGGER.debug("JabRef shut down after processing command line arguments"); + systemExit(); + return null; + } + + return new ArrayList<>(argumentProcessor.getUiCommands()); + } catch (ParseException e) { + LOGGER.error("Problem parsing arguments", e); + CliOptions.printUsage(preferences); + systemExit(); + return null; + } + } catch (Exception ex) { + LOGGER.error("Unexpected exception", ex); + systemExit(); + return null; + } + } + + /** + * This needs to be called as early as possible. After the first log write, it + * is not possible to alter the log configuration programmatically anymore. + */ + public static void initLogging(String[] args) { + // routeLoggingToSlf4J + SLF4JBridgeHandler.removeHandlersForRootLogger(); + SLF4JBridgeHandler.install(); + + // We must configure logging as soon as possible, which is why we cannot wait for the usual + // argument parsing workflow to parse logging options .e.g. --debug + boolean isDebugEnabled; + try { + CliOptions cliOptions = new CliOptions(args); + isDebugEnabled = cliOptions.isDebugLogging(); + } catch (ParseException e) { + isDebugEnabled = false; + } + + // addLogToDisk + // We cannot use `Injector.instantiateModelOrService(BuildInfo.class).version` here, because this initializes logging + Path directory = Directories.getLogDirectory(new BuildInfo().version); + try { + Files.createDirectories(directory); + } catch (IOException e) { + LOGGER = LoggerFactory.getLogger(TempGuiArgsProcessing.class); + LOGGER.error("Could not create log directory {}", directory, e); + return; + } + + // The "Shared File Writer" is explained at + // https://tinylog.org/v2/configuration/#shared-file-writer + Map configuration = Map.of( + "level", isDebugEnabled ? "debug" : "info", + "writerFile", "rolling file", + "writerFile.level", isDebugEnabled ? "debug" : "info", + // We need to manually join the path, because ".resolve" does not work on Windows, because ":" is not allowed in file names on Windows + "writerFile.file", directory + File.separator + "log_{date:yyyy-MM-dd_HH-mm-ss}.txt", + "writerFile.charset", "UTF-8", + "writerFile.policies", "startup", + "writerFile.backups", "30"); + configuration.forEach(Configuration::set); + + LOGGER = LoggerFactory.getLogger(TempGuiArgsProcessing.class); + } + + /** + * @return true if JabRef should continue starting up, false if it should quit. + */ + private static boolean handleMultipleAppInstances(String[] args, RemotePreferences remotePreferences) throws InterruptedException { + LOGGER.trace("Checking for remote handling..."); + if (remotePreferences.useRemoteServer()) { + // Try to contact already running JabRef + RemoteClient remoteClient = new RemoteClient(remotePreferences.getPort()); + if (remoteClient.ping()) { + LOGGER.debug("Pinging other instance succeeded."); + if (args.length == 0) { + // There is already a server out there, avoid showing log "Passing arguments" while no arguments are provided. + LOGGER.warn("This JabRef instance is already running. Please switch to that instance."); + } else { + // We are not alone, there is already a server out there, send command line arguments to other instance + LOGGER.debug("Passing arguments passed on to running JabRef..."); + if (remoteClient.sendCommandLineArguments(args)) { + // So we assume it's all taken care of, and quit. + // Output to both to the log and the screen. Therefore, we do not have an additional System.out.println. + LOGGER.info("Arguments passed on to running JabRef instance. Shutting down."); + } else { + LOGGER.warn("Could not communicate with other running JabRef instance."); + } + } + // We do not launch a new instance in presence if there is another instance running + return false; + } else { + LOGGER.debug("Could not ping JabRef instance."); + } + } + return true; + } + + private static void configureProxy(ProxyPreferences proxyPreferences) { + ProxyRegisterer.register(proxyPreferences); + if (proxyPreferences.shouldUseProxy() && proxyPreferences.shouldUseAuthentication()) { + Authenticator.setDefault(new ProxyAuthenticator()); + } + } + + private static void configureSSL(SSLPreferences sslPreferences) { + TrustStoreManager.createTruststoreFileIfNotExist(Path.of(sslPreferences.getTruststorePath())); + } + + private static void clearOldSearchIndices() { + Path currentIndexPath = Directories.getFulltextIndexBaseDirectory(); + Path appData = currentIndexPath.getParent(); + + try { + Files.createDirectories(currentIndexPath); + } catch (IOException e) { + LOGGER.error("Could not create index directory {}", appData, e); + } + + try (DirectoryStream stream = Files.newDirectoryStream(appData)) { + for (Path path : stream) { + if (Files.isDirectory(path) && !path.toString().endsWith("ssl") && path.toString().contains("lucene") + && !path.equals(currentIndexPath)) { + LOGGER.info("Deleting out-of-date fulltext search index at {}.", path); + Files.walk(path) + .sorted(Comparator.reverseOrder()) + .map(Path::toFile) + .forEach(File::delete); + } + } + } catch (IOException e) { + LOGGER.error("Could not access app-directory at {}", appData, e); + } + } +} diff --git a/jabgui/src/main/java/org/jabref/cli/package-info.java b/jabgui/src/main/java/org/jabref/cli/package-info.java new file mode 100644 index 00000000000..7e308a75696 --- /dev/null +++ b/jabgui/src/main/java/org/jabref/cli/package-info.java @@ -0,0 +1,4 @@ +/** + * TODO: This is code duplication from jabkit. Should be updated to process GUI commands only + */ +package org.jabref.cli; diff --git a/src/main/java/org/jabref/gui/AbstractViewModel.java b/jabgui/src/main/java/org/jabref/gui/AbstractViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/AbstractViewModel.java rename to jabgui/src/main/java/org/jabref/gui/AbstractViewModel.java diff --git a/src/main/java/org/jabref/gui/ClipBoardManager.java b/jabgui/src/main/java/org/jabref/gui/ClipBoardManager.java similarity index 100% rename from src/main/java/org/jabref/gui/ClipBoardManager.java rename to jabgui/src/main/java/org/jabref/gui/ClipBoardManager.java diff --git a/src/main/java/org/jabref/gui/CoreGuiPreferences.java b/jabgui/src/main/java/org/jabref/gui/CoreGuiPreferences.java similarity index 100% rename from src/main/java/org/jabref/gui/CoreGuiPreferences.java rename to jabgui/src/main/java/org/jabref/gui/CoreGuiPreferences.java diff --git a/src/main/java/org/jabref/gui/DialogService.java b/jabgui/src/main/java/org/jabref/gui/DialogService.java similarity index 100% rename from src/main/java/org/jabref/gui/DialogService.java rename to jabgui/src/main/java/org/jabref/gui/DialogService.java diff --git a/src/main/java/org/jabref/gui/DragAndDropDataFormats.java b/jabgui/src/main/java/org/jabref/gui/DragAndDropDataFormats.java similarity index 100% rename from src/main/java/org/jabref/gui/DragAndDropDataFormats.java rename to jabgui/src/main/java/org/jabref/gui/DragAndDropDataFormats.java diff --git a/src/main/java/org/jabref/gui/FXDialog.java b/jabgui/src/main/java/org/jabref/gui/FXDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/FXDialog.java rename to jabgui/src/main/java/org/jabref/gui/FXDialog.java diff --git a/src/main/java/org/jabref/gui/JabRefDialogService.java b/jabgui/src/main/java/org/jabref/gui/JabRefDialogService.java similarity index 99% rename from src/main/java/org/jabref/gui/JabRefDialogService.java rename to jabgui/src/main/java/org/jabref/gui/JabRefDialogService.java index fd65702122a..6671ba4ce27 100644 --- a/src/main/java/org/jabref/gui/JabRefDialogService.java +++ b/jabgui/src/main/java/org/jabref/gui/JabRefDialogService.java @@ -46,11 +46,11 @@ import org.jabref.gui.util.FileDialogConfiguration; import org.jabref.gui.util.UiTaskExecutor; import org.jabref.gui.util.ZipFileChooser; -import org.jabref.http.dto.SimpleHttpResponse; import org.jabref.logic.importer.FetcherClientException; import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.FetcherServerException; import org.jabref.logic.l10n.Localization; +import org.jabref.model.http.SimpleHttpResponse; import com.tobiasdiez.easybind.EasyBind; import org.controlsfx.control.Notifications; diff --git a/src/main/java/org/jabref/gui/JabRefGUI.java b/jabgui/src/main/java/org/jabref/gui/JabRefGUI.java similarity index 99% rename from src/main/java/org/jabref/gui/JabRefGUI.java rename to jabgui/src/main/java/org/jabref/gui/JabRefGUI.java index 795ea3affaf..8e543e23dc7 100644 --- a/src/main/java/org/jabref/gui/JabRefGUI.java +++ b/jabgui/src/main/java/org/jabref/gui/JabRefGUI.java @@ -26,6 +26,7 @@ import org.jabref.gui.undo.CountingUndoManager; import org.jabref.gui.util.DirectoryMonitor; import org.jabref.gui.util.UiTaskExecutor; +import org.jabref.gui.util.WebViewStore; import org.jabref.logic.UiCommand; import org.jabref.logic.ai.AiService; import org.jabref.logic.l10n.Localization; @@ -38,7 +39,6 @@ import org.jabref.logic.util.FallbackExceptionHandler; import org.jabref.logic.util.HeadlessExecutorService; import org.jabref.logic.util.TaskExecutor; -import org.jabref.logic.util.WebViewStore; import org.jabref.model.entry.BibEntryTypesManager; import org.jabref.model.strings.StringUtil; import org.jabref.model.util.FileUpdateMonitor; @@ -349,7 +349,7 @@ private boolean lowerLeftIsInBounds(CoreGuiPreferences coreGuiPreferences) { double bottomY = coreGuiPreferences.getPositionY() + coreGuiPreferences.getSizeY(); LOGGER.debug("left x: {}, bottom y: {}", leftX, bottomY); - boolean inBounds = Screen.getScreens().stream().anyMatch((screen -> screen.getBounds().contains(leftX, bottomY))); + boolean inBounds = Screen.getScreens().stream().anyMatch(screen -> screen.getBounds().contains(leftX, bottomY)); LOGGER.debug("lower left corner is in bounds: {}", inBounds); return inBounds; } @@ -361,7 +361,7 @@ private boolean upperRightIsInBounds(CoreGuiPreferences coreGuiPreferences) { double topY = coreGuiPreferences.getPositionY(); LOGGER.debug("right x: {}, top y: {}", rightX, topY); - boolean inBounds = Screen.getScreens().stream().anyMatch((screen -> screen.getBounds().contains(rightX, topY))); + boolean inBounds = Screen.getScreens().stream().anyMatch(screen -> screen.getBounds().contains(rightX, topY)); LOGGER.debug("upper right corner is in bounds: {}", inBounds); return inBounds; } diff --git a/src/main/java/org/jabref/gui/LibraryTab.java b/jabgui/src/main/java/org/jabref/gui/LibraryTab.java similarity index 99% rename from src/main/java/org/jabref/gui/LibraryTab.java rename to jabgui/src/main/java/org/jabref/gui/LibraryTab.java index 73b05ab0106..09e88138d17 100644 --- a/src/main/java/org/jabref/gui/LibraryTab.java +++ b/jabgui/src/main/java/org/jabref/gui/LibraryTab.java @@ -2,7 +2,6 @@ import java.io.IOException; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -69,6 +68,7 @@ import org.jabref.logic.l10n.Localization; import org.jabref.logic.pdf.FileAnnotationCache; import org.jabref.logic.search.IndexManager; +import org.jabref.logic.search.PostgreServer; import org.jabref.logic.shared.DatabaseLocation; import org.jabref.logic.util.BackgroundTask; import org.jabref.logic.util.TaskExecutor; @@ -290,7 +290,7 @@ private void onDatabaseLoadingSucceed(ParserResult result) { } public void createIndexManager() { - indexManager = new IndexManager(bibDatabaseContext, taskExecutor, preferences); + indexManager = new IndexManager(bibDatabaseContext, taskExecutor, preferences, Injector.instantiateModelOrService(PostgreServer.class)); stateManager.setIndexManager(bibDatabaseContext, indexManager); } @@ -866,7 +866,7 @@ public void deleteEntry() { } public void deleteEntry(BibEntry entry) { - doDeleteEntry(StandardActions.DELETE_ENTRY, Collections.singletonList(entry)); + doDeleteEntry(StandardActions.DELETE_ENTRY, List.of(entry)); } /** diff --git a/src/main/java/org/jabref/gui/LibraryTabContainer.java b/jabgui/src/main/java/org/jabref/gui/LibraryTabContainer.java similarity index 100% rename from src/main/java/org/jabref/gui/LibraryTabContainer.java rename to jabgui/src/main/java/org/jabref/gui/LibraryTabContainer.java diff --git a/src/main/java/org/jabref/gui/StateManager.java b/jabgui/src/main/java/org/jabref/gui/StateManager.java similarity index 100% rename from src/main/java/org/jabref/gui/StateManager.java rename to jabgui/src/main/java/org/jabref/gui/StateManager.java diff --git a/src/main/java/org/jabref/gui/UpdateTimestampListener.java b/jabgui/src/main/java/org/jabref/gui/UpdateTimestampListener.java similarity index 100% rename from src/main/java/org/jabref/gui/UpdateTimestampListener.java rename to jabgui/src/main/java/org/jabref/gui/UpdateTimestampListener.java diff --git a/src/main/java/org/jabref/gui/WelcomeTab.java b/jabgui/src/main/java/org/jabref/gui/WelcomeTab.java similarity index 100% rename from src/main/java/org/jabref/gui/WelcomeTab.java rename to jabgui/src/main/java/org/jabref/gui/WelcomeTab.java diff --git a/src/main/java/org/jabref/gui/WorkspacePreferences.java b/jabgui/src/main/java/org/jabref/gui/WorkspacePreferences.java similarity index 100% rename from src/main/java/org/jabref/gui/WorkspacePreferences.java rename to jabgui/src/main/java/org/jabref/gui/WorkspacePreferences.java diff --git a/src/main/java/org/jabref/gui/actions/Action.java b/jabgui/src/main/java/org/jabref/gui/actions/Action.java similarity index 100% rename from src/main/java/org/jabref/gui/actions/Action.java rename to jabgui/src/main/java/org/jabref/gui/actions/Action.java diff --git a/src/main/java/org/jabref/gui/actions/ActionFactory.java b/jabgui/src/main/java/org/jabref/gui/actions/ActionFactory.java similarity index 100% rename from src/main/java/org/jabref/gui/actions/ActionFactory.java rename to jabgui/src/main/java/org/jabref/gui/actions/ActionFactory.java diff --git a/src/main/java/org/jabref/gui/actions/ActionHelper.java b/jabgui/src/main/java/org/jabref/gui/actions/ActionHelper.java similarity index 97% rename from src/main/java/org/jabref/gui/actions/ActionHelper.java rename to jabgui/src/main/java/org/jabref/gui/actions/ActionHelper.java index b9d10c351e1..f862ec08069 100644 --- a/src/main/java/org/jabref/gui/actions/ActionHelper.java +++ b/jabgui/src/main/java/org/jabref/gui/actions/ActionHelper.java @@ -1,7 +1,6 @@ package org.jabref.gui.actions; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.Optional; @@ -58,7 +57,7 @@ public static BooleanExpression needsEntriesSelected(int numberOfEntries, StateM } public static BooleanExpression isFieldSetForSelectedEntry(Field field, StateManager stateManager) { - return isAnyFieldSetForSelectedEntry(Collections.singletonList(field), stateManager); + return isAnyFieldSetForSelectedEntry(List.of(field), stateManager); } public static BooleanExpression isAnyFieldSetForSelectedEntry(List fields, StateManager stateManager) { diff --git a/src/main/java/org/jabref/gui/actions/JabRefAction.java b/jabgui/src/main/java/org/jabref/gui/actions/JabRefAction.java similarity index 100% rename from src/main/java/org/jabref/gui/actions/JabRefAction.java rename to jabgui/src/main/java/org/jabref/gui/actions/JabRefAction.java diff --git a/src/main/java/org/jabref/gui/actions/SimpleCommand.java b/jabgui/src/main/java/org/jabref/gui/actions/SimpleCommand.java similarity index 100% rename from src/main/java/org/jabref/gui/actions/SimpleCommand.java rename to jabgui/src/main/java/org/jabref/gui/actions/SimpleCommand.java diff --git a/src/main/java/org/jabref/gui/actions/StandardActions.java b/jabgui/src/main/java/org/jabref/gui/actions/StandardActions.java similarity index 100% rename from src/main/java/org/jabref/gui/actions/StandardActions.java rename to jabgui/src/main/java/org/jabref/gui/actions/StandardActions.java diff --git a/src/main/java/org/jabref/gui/ai/ClearEmbeddingsAction.java b/jabgui/src/main/java/org/jabref/gui/ai/ClearEmbeddingsAction.java similarity index 100% rename from src/main/java/org/jabref/gui/ai/ClearEmbeddingsAction.java rename to jabgui/src/main/java/org/jabref/gui/ai/ClearEmbeddingsAction.java diff --git a/src/main/java/org/jabref/gui/ai/components/aichat/AiChatComponent.java b/jabgui/src/main/java/org/jabref/gui/ai/components/aichat/AiChatComponent.java similarity index 100% rename from src/main/java/org/jabref/gui/ai/components/aichat/AiChatComponent.java rename to jabgui/src/main/java/org/jabref/gui/ai/components/aichat/AiChatComponent.java diff --git a/src/main/java/org/jabref/gui/ai/components/aichat/AiChatGuardedComponent.java b/jabgui/src/main/java/org/jabref/gui/ai/components/aichat/AiChatGuardedComponent.java similarity index 100% rename from src/main/java/org/jabref/gui/ai/components/aichat/AiChatGuardedComponent.java rename to jabgui/src/main/java/org/jabref/gui/ai/components/aichat/AiChatGuardedComponent.java diff --git a/src/main/java/org/jabref/gui/ai/components/aichat/AiChatWindow.java b/jabgui/src/main/java/org/jabref/gui/ai/components/aichat/AiChatWindow.java similarity index 100% rename from src/main/java/org/jabref/gui/ai/components/aichat/AiChatWindow.java rename to jabgui/src/main/java/org/jabref/gui/ai/components/aichat/AiChatWindow.java diff --git a/src/main/java/org/jabref/gui/ai/components/aichat/chathistory/ChatHistoryComponent.java b/jabgui/src/main/java/org/jabref/gui/ai/components/aichat/chathistory/ChatHistoryComponent.java similarity index 100% rename from src/main/java/org/jabref/gui/ai/components/aichat/chathistory/ChatHistoryComponent.java rename to jabgui/src/main/java/org/jabref/gui/ai/components/aichat/chathistory/ChatHistoryComponent.java diff --git a/src/main/java/org/jabref/gui/ai/components/aichat/chatmessage/ChatMessageComponent.java b/jabgui/src/main/java/org/jabref/gui/ai/components/aichat/chatmessage/ChatMessageComponent.java similarity index 100% rename from src/main/java/org/jabref/gui/ai/components/aichat/chatmessage/ChatMessageComponent.java rename to jabgui/src/main/java/org/jabref/gui/ai/components/aichat/chatmessage/ChatMessageComponent.java diff --git a/src/main/java/org/jabref/gui/ai/components/aichat/chatprompt/ChatPromptComponent.java b/jabgui/src/main/java/org/jabref/gui/ai/components/aichat/chatprompt/ChatPromptComponent.java similarity index 100% rename from src/main/java/org/jabref/gui/ai/components/aichat/chatprompt/ChatPromptComponent.java rename to jabgui/src/main/java/org/jabref/gui/ai/components/aichat/chatprompt/ChatPromptComponent.java diff --git a/src/main/java/org/jabref/gui/ai/components/privacynotice/AiPrivacyNoticeGuardedComponent.java b/jabgui/src/main/java/org/jabref/gui/ai/components/privacynotice/AiPrivacyNoticeGuardedComponent.java similarity index 100% rename from src/main/java/org/jabref/gui/ai/components/privacynotice/AiPrivacyNoticeGuardedComponent.java rename to jabgui/src/main/java/org/jabref/gui/ai/components/privacynotice/AiPrivacyNoticeGuardedComponent.java diff --git a/src/main/java/org/jabref/gui/ai/components/privacynotice/PrivacyNoticeComponent.java b/jabgui/src/main/java/org/jabref/gui/ai/components/privacynotice/PrivacyNoticeComponent.java similarity index 100% rename from src/main/java/org/jabref/gui/ai/components/privacynotice/PrivacyNoticeComponent.java rename to jabgui/src/main/java/org/jabref/gui/ai/components/privacynotice/PrivacyNoticeComponent.java diff --git a/src/main/java/org/jabref/gui/ai/components/summary/SummaryComponent.java b/jabgui/src/main/java/org/jabref/gui/ai/components/summary/SummaryComponent.java similarity index 100% rename from src/main/java/org/jabref/gui/ai/components/summary/SummaryComponent.java rename to jabgui/src/main/java/org/jabref/gui/ai/components/summary/SummaryComponent.java diff --git a/src/main/java/org/jabref/gui/ai/components/summary/SummaryShowingComponent.java b/jabgui/src/main/java/org/jabref/gui/ai/components/summary/SummaryShowingComponent.java similarity index 98% rename from src/main/java/org/jabref/gui/ai/components/summary/SummaryShowingComponent.java rename to jabgui/src/main/java/org/jabref/gui/ai/components/summary/SummaryShowingComponent.java index b733ac6b4e5..74386d50cd1 100644 --- a/src/main/java/org/jabref/gui/ai/components/summary/SummaryShowingComponent.java +++ b/jabgui/src/main/java/org/jabref/gui/ai/components/summary/SummaryShowingComponent.java @@ -12,9 +12,9 @@ import javafx.scene.text.Text; import javafx.scene.web.WebView; +import org.jabref.gui.util.WebViewStore; import org.jabref.logic.ai.summarization.Summary; import org.jabref.logic.layout.format.MarkdownFormatter; -import org.jabref.logic.util.WebViewStore; import com.airhacks.afterburner.views.ViewLoader; diff --git a/src/main/java/org/jabref/gui/ai/components/util/EmbeddingModelGuardedComponent.java b/jabgui/src/main/java/org/jabref/gui/ai/components/util/EmbeddingModelGuardedComponent.java similarity index 100% rename from src/main/java/org/jabref/gui/ai/components/util/EmbeddingModelGuardedComponent.java rename to jabgui/src/main/java/org/jabref/gui/ai/components/util/EmbeddingModelGuardedComponent.java diff --git a/src/main/java/org/jabref/gui/ai/components/util/Loadable.java b/jabgui/src/main/java/org/jabref/gui/ai/components/util/Loadable.java similarity index 100% rename from src/main/java/org/jabref/gui/ai/components/util/Loadable.java rename to jabgui/src/main/java/org/jabref/gui/ai/components/util/Loadable.java diff --git a/src/main/java/org/jabref/gui/ai/components/util/errorstate/ErrorStateComponent.java b/jabgui/src/main/java/org/jabref/gui/ai/components/util/errorstate/ErrorStateComponent.java similarity index 100% rename from src/main/java/org/jabref/gui/ai/components/util/errorstate/ErrorStateComponent.java rename to jabgui/src/main/java/org/jabref/gui/ai/components/util/errorstate/ErrorStateComponent.java diff --git a/src/main/java/org/jabref/gui/ai/components/util/notifications/Notification.java b/jabgui/src/main/java/org/jabref/gui/ai/components/util/notifications/Notification.java similarity index 100% rename from src/main/java/org/jabref/gui/ai/components/util/notifications/Notification.java rename to jabgui/src/main/java/org/jabref/gui/ai/components/util/notifications/Notification.java diff --git a/src/main/java/org/jabref/gui/ai/components/util/notifications/NotificationComponent.java b/jabgui/src/main/java/org/jabref/gui/ai/components/util/notifications/NotificationComponent.java similarity index 100% rename from src/main/java/org/jabref/gui/ai/components/util/notifications/NotificationComponent.java rename to jabgui/src/main/java/org/jabref/gui/ai/components/util/notifications/NotificationComponent.java diff --git a/src/main/java/org/jabref/gui/ai/components/util/notifications/NotificationsComponent.java b/jabgui/src/main/java/org/jabref/gui/ai/components/util/notifications/NotificationsComponent.java similarity index 100% rename from src/main/java/org/jabref/gui/ai/components/util/notifications/NotificationsComponent.java rename to jabgui/src/main/java/org/jabref/gui/ai/components/util/notifications/NotificationsComponent.java diff --git a/src/main/java/org/jabref/gui/autocompleter/AppendPersonNamesStrategy.java b/jabgui/src/main/java/org/jabref/gui/autocompleter/AppendPersonNamesStrategy.java similarity index 100% rename from src/main/java/org/jabref/gui/autocompleter/AppendPersonNamesStrategy.java rename to jabgui/src/main/java/org/jabref/gui/autocompleter/AppendPersonNamesStrategy.java diff --git a/src/main/java/org/jabref/gui/autocompleter/AppendWordsStrategy.java b/jabgui/src/main/java/org/jabref/gui/autocompleter/AppendWordsStrategy.java similarity index 100% rename from src/main/java/org/jabref/gui/autocompleter/AppendWordsStrategy.java rename to jabgui/src/main/java/org/jabref/gui/autocompleter/AppendWordsStrategy.java diff --git a/src/main/java/org/jabref/gui/autocompleter/AutoCompletePreferences.java b/jabgui/src/main/java/org/jabref/gui/autocompleter/AutoCompletePreferences.java similarity index 100% rename from src/main/java/org/jabref/gui/autocompleter/AutoCompletePreferences.java rename to jabgui/src/main/java/org/jabref/gui/autocompleter/AutoCompletePreferences.java diff --git a/src/main/java/org/jabref/gui/autocompleter/AutoCompletionInput.java b/jabgui/src/main/java/org/jabref/gui/autocompleter/AutoCompletionInput.java similarity index 100% rename from src/main/java/org/jabref/gui/autocompleter/AutoCompletionInput.java rename to jabgui/src/main/java/org/jabref/gui/autocompleter/AutoCompletionInput.java diff --git a/src/main/java/org/jabref/gui/autocompleter/AutoCompletionStrategy.java b/jabgui/src/main/java/org/jabref/gui/autocompleter/AutoCompletionStrategy.java similarity index 100% rename from src/main/java/org/jabref/gui/autocompleter/AutoCompletionStrategy.java rename to jabgui/src/main/java/org/jabref/gui/autocompleter/AutoCompletionStrategy.java diff --git a/src/main/java/org/jabref/gui/autocompleter/AutoCompletionTextInputBinding.java b/jabgui/src/main/java/org/jabref/gui/autocompleter/AutoCompletionTextInputBinding.java similarity index 100% rename from src/main/java/org/jabref/gui/autocompleter/AutoCompletionTextInputBinding.java rename to jabgui/src/main/java/org/jabref/gui/autocompleter/AutoCompletionTextInputBinding.java diff --git a/src/main/java/org/jabref/gui/autocompleter/BibEntrySuggestionProvider.java b/jabgui/src/main/java/org/jabref/gui/autocompleter/BibEntrySuggestionProvider.java similarity index 100% rename from src/main/java/org/jabref/gui/autocompleter/BibEntrySuggestionProvider.java rename to jabgui/src/main/java/org/jabref/gui/autocompleter/BibEntrySuggestionProvider.java diff --git a/src/main/java/org/jabref/gui/autocompleter/ContentSelectorSuggestionProvider.java b/jabgui/src/main/java/org/jabref/gui/autocompleter/ContentSelectorSuggestionProvider.java similarity index 100% rename from src/main/java/org/jabref/gui/autocompleter/ContentSelectorSuggestionProvider.java rename to jabgui/src/main/java/org/jabref/gui/autocompleter/ContentSelectorSuggestionProvider.java diff --git a/src/main/java/org/jabref/gui/autocompleter/EmptySuggestionProvider.java b/jabgui/src/main/java/org/jabref/gui/autocompleter/EmptySuggestionProvider.java similarity index 100% rename from src/main/java/org/jabref/gui/autocompleter/EmptySuggestionProvider.java rename to jabgui/src/main/java/org/jabref/gui/autocompleter/EmptySuggestionProvider.java diff --git a/src/main/java/org/jabref/gui/autocompleter/FieldValueSuggestionProvider.java b/jabgui/src/main/java/org/jabref/gui/autocompleter/FieldValueSuggestionProvider.java similarity index 100% rename from src/main/java/org/jabref/gui/autocompleter/FieldValueSuggestionProvider.java rename to jabgui/src/main/java/org/jabref/gui/autocompleter/FieldValueSuggestionProvider.java diff --git a/src/main/java/org/jabref/gui/autocompleter/JournalsSuggestionProvider.java b/jabgui/src/main/java/org/jabref/gui/autocompleter/JournalsSuggestionProvider.java similarity index 100% rename from src/main/java/org/jabref/gui/autocompleter/JournalsSuggestionProvider.java rename to jabgui/src/main/java/org/jabref/gui/autocompleter/JournalsSuggestionProvider.java diff --git a/src/main/java/org/jabref/gui/autocompleter/PersonNameStringConverter.java b/jabgui/src/main/java/org/jabref/gui/autocompleter/PersonNameStringConverter.java similarity index 100% rename from src/main/java/org/jabref/gui/autocompleter/PersonNameStringConverter.java rename to jabgui/src/main/java/org/jabref/gui/autocompleter/PersonNameStringConverter.java diff --git a/src/main/java/org/jabref/gui/autocompleter/PersonNameSuggestionProvider.java b/jabgui/src/main/java/org/jabref/gui/autocompleter/PersonNameSuggestionProvider.java similarity index 95% rename from src/main/java/org/jabref/gui/autocompleter/PersonNameSuggestionProvider.java rename to jabgui/src/main/java/org/jabref/gui/autocompleter/PersonNameSuggestionProvider.java index 8457ea5dbd5..bb8a49159e1 100644 --- a/src/main/java/org/jabref/gui/autocompleter/PersonNameSuggestionProvider.java +++ b/jabgui/src/main/java/org/jabref/gui/autocompleter/PersonNameSuggestionProvider.java @@ -1,8 +1,8 @@ package org.jabref.gui.autocompleter; import java.util.Collection; -import java.util.Collections; import java.util.Comparator; +import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.Stream; @@ -26,7 +26,7 @@ public class PersonNameSuggestionProvider extends SuggestionProvider { private final BibDatabase database; PersonNameSuggestionProvider(Field field, BibDatabase database) { - this(Collections.singletonList(Objects.requireNonNull(field)), database); + this(List.of(Objects.requireNonNull(field)), database); } public PersonNameSuggestionProvider(Collection fields, BibDatabase database) { diff --git a/src/main/java/org/jabref/gui/autocompleter/ReplaceStrategy.java b/jabgui/src/main/java/org/jabref/gui/autocompleter/ReplaceStrategy.java similarity index 100% rename from src/main/java/org/jabref/gui/autocompleter/ReplaceStrategy.java rename to jabgui/src/main/java/org/jabref/gui/autocompleter/ReplaceStrategy.java diff --git a/src/main/java/org/jabref/gui/autocompleter/StringSuggestionProvider.java b/jabgui/src/main/java/org/jabref/gui/autocompleter/StringSuggestionProvider.java similarity index 100% rename from src/main/java/org/jabref/gui/autocompleter/StringSuggestionProvider.java rename to jabgui/src/main/java/org/jabref/gui/autocompleter/StringSuggestionProvider.java diff --git a/src/main/java/org/jabref/gui/autocompleter/SuggestionProvider.java b/jabgui/src/main/java/org/jabref/gui/autocompleter/SuggestionProvider.java similarity index 98% rename from src/main/java/org/jabref/gui/autocompleter/SuggestionProvider.java rename to jabgui/src/main/java/org/jabref/gui/autocompleter/SuggestionProvider.java index fb64bb372b7..14755e3a9db 100644 --- a/src/main/java/org/jabref/gui/autocompleter/SuggestionProvider.java +++ b/jabgui/src/main/java/org/jabref/gui/autocompleter/SuggestionProvider.java @@ -27,7 +27,6 @@ package org.jabref.gui.autocompleter; import java.util.Collection; -import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @@ -55,7 +54,7 @@ public final Collection provideSuggestions(ISuggestionRequest request) { .sorted(comparator) .collect(Collectors.toList()); } else { - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/gui/autocompleter/SuggestionProviders.java b/jabgui/src/main/java/org/jabref/gui/autocompleter/SuggestionProviders.java similarity index 100% rename from src/main/java/org/jabref/gui/autocompleter/SuggestionProviders.java rename to jabgui/src/main/java/org/jabref/gui/autocompleter/SuggestionProviders.java diff --git a/src/main/java/org/jabref/gui/autocompleter/WordSuggestionProvider.java b/jabgui/src/main/java/org/jabref/gui/autocompleter/WordSuggestionProvider.java similarity index 100% rename from src/main/java/org/jabref/gui/autocompleter/WordSuggestionProvider.java rename to jabgui/src/main/java/org/jabref/gui/autocompleter/WordSuggestionProvider.java diff --git a/src/main/java/org/jabref/gui/autosaveandbackup/AutosaveManager.java b/jabgui/src/main/java/org/jabref/gui/autosaveandbackup/AutosaveManager.java similarity index 100% rename from src/main/java/org/jabref/gui/autosaveandbackup/AutosaveManager.java rename to jabgui/src/main/java/org/jabref/gui/autosaveandbackup/AutosaveManager.java diff --git a/src/main/java/org/jabref/gui/autosaveandbackup/BackupManager.java b/jabgui/src/main/java/org/jabref/gui/autosaveandbackup/BackupManager.java similarity index 100% rename from src/main/java/org/jabref/gui/autosaveandbackup/BackupManager.java rename to jabgui/src/main/java/org/jabref/gui/autosaveandbackup/BackupManager.java diff --git a/src/main/java/org/jabref/gui/auximport/FromAuxDialog.java b/jabgui/src/main/java/org/jabref/gui/auximport/FromAuxDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/auximport/FromAuxDialog.java rename to jabgui/src/main/java/org/jabref/gui/auximport/FromAuxDialog.java diff --git a/src/main/java/org/jabref/gui/auximport/FromAuxDialogViewModel.java b/jabgui/src/main/java/org/jabref/gui/auximport/FromAuxDialogViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/auximport/FromAuxDialogViewModel.java rename to jabgui/src/main/java/org/jabref/gui/auximport/FromAuxDialogViewModel.java diff --git a/src/main/java/org/jabref/gui/auximport/NewSubLibraryAction.java b/jabgui/src/main/java/org/jabref/gui/auximport/NewSubLibraryAction.java similarity index 100% rename from src/main/java/org/jabref/gui/auximport/NewSubLibraryAction.java rename to jabgui/src/main/java/org/jabref/gui/auximport/NewSubLibraryAction.java diff --git a/src/main/java/org/jabref/gui/backup/BackupResolverDialog.java b/jabgui/src/main/java/org/jabref/gui/backup/BackupResolverDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/backup/BackupResolverDialog.java rename to jabgui/src/main/java/org/jabref/gui/backup/BackupResolverDialog.java diff --git a/src/main/java/org/jabref/gui/citationkeypattern/GenerateCitationKeyAction.java b/jabgui/src/main/java/org/jabref/gui/citationkeypattern/GenerateCitationKeyAction.java similarity index 98% rename from src/main/java/org/jabref/gui/citationkeypattern/GenerateCitationKeyAction.java rename to jabgui/src/main/java/org/jabref/gui/citationkeypattern/GenerateCitationKeyAction.java index ce661fdff53..c204060d7d2 100644 --- a/src/main/java/org/jabref/gui/citationkeypattern/GenerateCitationKeyAction.java +++ b/jabgui/src/main/java/org/jabref/gui/citationkeypattern/GenerateCitationKeyAction.java @@ -153,6 +153,6 @@ public BackgroundTask onSuccess(Consumer onSuccess) { private String formatOutputMessage(String start, int count) { return "%s %d %s.".formatted(start, count, - (count > 1 ? Localization.lang("entries") : Localization.lang("entry"))); + count > 1 ? Localization.lang("entries") : Localization.lang("entry")); } } diff --git a/src/main/java/org/jabref/gui/citationkeypattern/GenerateCitationKeySingleAction.java b/jabgui/src/main/java/org/jabref/gui/citationkeypattern/GenerateCitationKeySingleAction.java similarity index 100% rename from src/main/java/org/jabref/gui/citationkeypattern/GenerateCitationKeySingleAction.java rename to jabgui/src/main/java/org/jabref/gui/citationkeypattern/GenerateCitationKeySingleAction.java diff --git a/src/main/java/org/jabref/gui/cleanup/CleanupAction.java b/jabgui/src/main/java/org/jabref/gui/cleanup/CleanupAction.java similarity index 100% rename from src/main/java/org/jabref/gui/cleanup/CleanupAction.java rename to jabgui/src/main/java/org/jabref/gui/cleanup/CleanupAction.java diff --git a/src/main/java/org/jabref/gui/cleanup/CleanupDialog.java b/jabgui/src/main/java/org/jabref/gui/cleanup/CleanupDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/cleanup/CleanupDialog.java rename to jabgui/src/main/java/org/jabref/gui/cleanup/CleanupDialog.java diff --git a/src/main/java/org/jabref/gui/cleanup/CleanupPresetPanel.java b/jabgui/src/main/java/org/jabref/gui/cleanup/CleanupPresetPanel.java similarity index 100% rename from src/main/java/org/jabref/gui/cleanup/CleanupPresetPanel.java rename to jabgui/src/main/java/org/jabref/gui/cleanup/CleanupPresetPanel.java diff --git a/src/main/java/org/jabref/gui/cleanup/CleanupSingleAction.java b/jabgui/src/main/java/org/jabref/gui/cleanup/CleanupSingleAction.java similarity index 100% rename from src/main/java/org/jabref/gui/cleanup/CleanupSingleAction.java rename to jabgui/src/main/java/org/jabref/gui/cleanup/CleanupSingleAction.java diff --git a/src/main/java/org/jabref/gui/collab/ChangeScanner.java b/jabgui/src/main/java/org/jabref/gui/collab/ChangeScanner.java similarity index 94% rename from src/main/java/org/jabref/gui/collab/ChangeScanner.java rename to jabgui/src/main/java/org/jabref/gui/collab/ChangeScanner.java index e840136c9f5..5e460892922 100644 --- a/src/main/java/org/jabref/gui/collab/ChangeScanner.java +++ b/jabgui/src/main/java/org/jabref/gui/collab/ChangeScanner.java @@ -1,7 +1,6 @@ package org.jabref.gui.collab; import java.io.IOException; -import java.util.Collections; import java.util.List; import org.jabref.gui.DialogService; @@ -33,7 +32,7 @@ public ChangeScanner(BibDatabaseContext database, public List scanForChanges() { if (database.getDatabasePath().isEmpty()) { - return Collections.emptyList(); + return List.of(); } try { @@ -46,7 +45,7 @@ public List scanForChanges() { return DatabaseChangeList.compareAndGetChanges(database, databaseOnDisk, databaseChangeResolverFactory); } catch (IOException e) { LOGGER.warn("Error while parsing changed file.", e); - return Collections.emptyList(); + return List.of(); } } } diff --git a/src/main/java/org/jabref/gui/collab/DatabaseChange.java b/jabgui/src/main/java/org/jabref/gui/collab/DatabaseChange.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/DatabaseChange.java rename to jabgui/src/main/java/org/jabref/gui/collab/DatabaseChange.java diff --git a/src/main/java/org/jabref/gui/collab/DatabaseChangeDetailsView.java b/jabgui/src/main/java/org/jabref/gui/collab/DatabaseChangeDetailsView.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/DatabaseChangeDetailsView.java rename to jabgui/src/main/java/org/jabref/gui/collab/DatabaseChangeDetailsView.java diff --git a/src/main/java/org/jabref/gui/collab/DatabaseChangeDetailsViewFactory.java b/jabgui/src/main/java/org/jabref/gui/collab/DatabaseChangeDetailsViewFactory.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/DatabaseChangeDetailsViewFactory.java rename to jabgui/src/main/java/org/jabref/gui/collab/DatabaseChangeDetailsViewFactory.java diff --git a/src/main/java/org/jabref/gui/collab/DatabaseChangeList.java b/jabgui/src/main/java/org/jabref/gui/collab/DatabaseChangeList.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/DatabaseChangeList.java rename to jabgui/src/main/java/org/jabref/gui/collab/DatabaseChangeList.java diff --git a/src/main/java/org/jabref/gui/collab/DatabaseChangeListener.java b/jabgui/src/main/java/org/jabref/gui/collab/DatabaseChangeListener.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/DatabaseChangeListener.java rename to jabgui/src/main/java/org/jabref/gui/collab/DatabaseChangeListener.java diff --git a/src/main/java/org/jabref/gui/collab/DatabaseChangeMonitor.java b/jabgui/src/main/java/org/jabref/gui/collab/DatabaseChangeMonitor.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/DatabaseChangeMonitor.java rename to jabgui/src/main/java/org/jabref/gui/collab/DatabaseChangeMonitor.java diff --git a/src/main/java/org/jabref/gui/collab/DatabaseChangeResolver.java b/jabgui/src/main/java/org/jabref/gui/collab/DatabaseChangeResolver.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/DatabaseChangeResolver.java rename to jabgui/src/main/java/org/jabref/gui/collab/DatabaseChangeResolver.java diff --git a/src/main/java/org/jabref/gui/collab/DatabaseChangeResolverFactory.java b/jabgui/src/main/java/org/jabref/gui/collab/DatabaseChangeResolverFactory.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/DatabaseChangeResolverFactory.java rename to jabgui/src/main/java/org/jabref/gui/collab/DatabaseChangeResolverFactory.java diff --git a/src/main/java/org/jabref/gui/collab/DatabaseChangesResolverDialog.java b/jabgui/src/main/java/org/jabref/gui/collab/DatabaseChangesResolverDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/DatabaseChangesResolverDialog.java rename to jabgui/src/main/java/org/jabref/gui/collab/DatabaseChangesResolverDialog.java diff --git a/src/main/java/org/jabref/gui/collab/ExternalChangesResolverViewModel.java b/jabgui/src/main/java/org/jabref/gui/collab/ExternalChangesResolverViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/ExternalChangesResolverViewModel.java rename to jabgui/src/main/java/org/jabref/gui/collab/ExternalChangesResolverViewModel.java diff --git a/src/main/java/org/jabref/gui/collab/entryadd/EntryAdd.java b/jabgui/src/main/java/org/jabref/gui/collab/entryadd/EntryAdd.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/entryadd/EntryAdd.java rename to jabgui/src/main/java/org/jabref/gui/collab/entryadd/EntryAdd.java diff --git a/src/main/java/org/jabref/gui/collab/entrychange/EntryChange.java b/jabgui/src/main/java/org/jabref/gui/collab/entrychange/EntryChange.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/entrychange/EntryChange.java rename to jabgui/src/main/java/org/jabref/gui/collab/entrychange/EntryChange.java diff --git a/src/main/java/org/jabref/gui/collab/entrychange/EntryChangeDetailsView.java b/jabgui/src/main/java/org/jabref/gui/collab/entrychange/EntryChangeDetailsView.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/entrychange/EntryChangeDetailsView.java rename to jabgui/src/main/java/org/jabref/gui/collab/entrychange/EntryChangeDetailsView.java diff --git a/src/main/java/org/jabref/gui/collab/entrychange/EntryChangeResolver.java b/jabgui/src/main/java/org/jabref/gui/collab/entrychange/EntryChangeResolver.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/entrychange/EntryChangeResolver.java rename to jabgui/src/main/java/org/jabref/gui/collab/entrychange/EntryChangeResolver.java diff --git a/src/main/java/org/jabref/gui/collab/entrychange/EntryWithPreviewAndSourceDetailsView.java b/jabgui/src/main/java/org/jabref/gui/collab/entrychange/EntryWithPreviewAndSourceDetailsView.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/entrychange/EntryWithPreviewAndSourceDetailsView.java rename to jabgui/src/main/java/org/jabref/gui/collab/entrychange/EntryWithPreviewAndSourceDetailsView.java diff --git a/src/main/java/org/jabref/gui/collab/entrychange/PreviewWithSourceTab.java b/jabgui/src/main/java/org/jabref/gui/collab/entrychange/PreviewWithSourceTab.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/entrychange/PreviewWithSourceTab.java rename to jabgui/src/main/java/org/jabref/gui/collab/entrychange/PreviewWithSourceTab.java diff --git a/src/main/java/org/jabref/gui/collab/entrydelete/EntryDelete.java b/jabgui/src/main/java/org/jabref/gui/collab/entrydelete/EntryDelete.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/entrydelete/EntryDelete.java rename to jabgui/src/main/java/org/jabref/gui/collab/entrydelete/EntryDelete.java diff --git a/src/main/java/org/jabref/gui/collab/groupchange/GroupChange.java b/jabgui/src/main/java/org/jabref/gui/collab/groupchange/GroupChange.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/groupchange/GroupChange.java rename to jabgui/src/main/java/org/jabref/gui/collab/groupchange/GroupChange.java diff --git a/src/main/java/org/jabref/gui/collab/groupchange/GroupChangeDetailsView.java b/jabgui/src/main/java/org/jabref/gui/collab/groupchange/GroupChangeDetailsView.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/groupchange/GroupChangeDetailsView.java rename to jabgui/src/main/java/org/jabref/gui/collab/groupchange/GroupChangeDetailsView.java diff --git a/src/main/java/org/jabref/gui/collab/metedatachange/MetadataChange.java b/jabgui/src/main/java/org/jabref/gui/collab/metedatachange/MetadataChange.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/metedatachange/MetadataChange.java rename to jabgui/src/main/java/org/jabref/gui/collab/metedatachange/MetadataChange.java diff --git a/src/main/java/org/jabref/gui/collab/metedatachange/MetadataChangeDetailsView.java b/jabgui/src/main/java/org/jabref/gui/collab/metedatachange/MetadataChangeDetailsView.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/metedatachange/MetadataChangeDetailsView.java rename to jabgui/src/main/java/org/jabref/gui/collab/metedatachange/MetadataChangeDetailsView.java diff --git a/src/main/java/org/jabref/gui/collab/preamblechange/PreambleChange.java b/jabgui/src/main/java/org/jabref/gui/collab/preamblechange/PreambleChange.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/preamblechange/PreambleChange.java rename to jabgui/src/main/java/org/jabref/gui/collab/preamblechange/PreambleChange.java diff --git a/src/main/java/org/jabref/gui/collab/preamblechange/PreambleChangeDetailsView.java b/jabgui/src/main/java/org/jabref/gui/collab/preamblechange/PreambleChangeDetailsView.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/preamblechange/PreambleChangeDetailsView.java rename to jabgui/src/main/java/org/jabref/gui/collab/preamblechange/PreambleChangeDetailsView.java diff --git a/src/main/java/org/jabref/gui/collab/stringadd/BibTexStringAdd.java b/jabgui/src/main/java/org/jabref/gui/collab/stringadd/BibTexStringAdd.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/stringadd/BibTexStringAdd.java rename to jabgui/src/main/java/org/jabref/gui/collab/stringadd/BibTexStringAdd.java diff --git a/src/main/java/org/jabref/gui/collab/stringadd/BibTexStringAddDetailsView.java b/jabgui/src/main/java/org/jabref/gui/collab/stringadd/BibTexStringAddDetailsView.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/stringadd/BibTexStringAddDetailsView.java rename to jabgui/src/main/java/org/jabref/gui/collab/stringadd/BibTexStringAddDetailsView.java diff --git a/src/main/java/org/jabref/gui/collab/stringchange/BibTexStringChange.java b/jabgui/src/main/java/org/jabref/gui/collab/stringchange/BibTexStringChange.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/stringchange/BibTexStringChange.java rename to jabgui/src/main/java/org/jabref/gui/collab/stringchange/BibTexStringChange.java diff --git a/src/main/java/org/jabref/gui/collab/stringchange/BibTexStringChangeDetailsView.java b/jabgui/src/main/java/org/jabref/gui/collab/stringchange/BibTexStringChangeDetailsView.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/stringchange/BibTexStringChangeDetailsView.java rename to jabgui/src/main/java/org/jabref/gui/collab/stringchange/BibTexStringChangeDetailsView.java diff --git a/src/main/java/org/jabref/gui/collab/stringdelete/BibTexStringDelete.java b/jabgui/src/main/java/org/jabref/gui/collab/stringdelete/BibTexStringDelete.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/stringdelete/BibTexStringDelete.java rename to jabgui/src/main/java/org/jabref/gui/collab/stringdelete/BibTexStringDelete.java diff --git a/src/main/java/org/jabref/gui/collab/stringdelete/BibTexStringDeleteDetailsView.java b/jabgui/src/main/java/org/jabref/gui/collab/stringdelete/BibTexStringDeleteDetailsView.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/stringdelete/BibTexStringDeleteDetailsView.java rename to jabgui/src/main/java/org/jabref/gui/collab/stringdelete/BibTexStringDeleteDetailsView.java diff --git a/src/main/java/org/jabref/gui/collab/stringrename/BibTexStringRename.java b/jabgui/src/main/java/org/jabref/gui/collab/stringrename/BibTexStringRename.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/stringrename/BibTexStringRename.java rename to jabgui/src/main/java/org/jabref/gui/collab/stringrename/BibTexStringRename.java diff --git a/src/main/java/org/jabref/gui/collab/stringrename/BibTexStringRenameDetailsView.java b/jabgui/src/main/java/org/jabref/gui/collab/stringrename/BibTexStringRenameDetailsView.java similarity index 100% rename from src/main/java/org/jabref/gui/collab/stringrename/BibTexStringRenameDetailsView.java rename to jabgui/src/main/java/org/jabref/gui/collab/stringrename/BibTexStringRenameDetailsView.java diff --git a/src/main/java/org/jabref/gui/commonfxcontrols/CitationKeyPatternSuggestionCell.java b/jabgui/src/main/java/org/jabref/gui/commonfxcontrols/CitationKeyPatternSuggestionCell.java similarity index 100% rename from src/main/java/org/jabref/gui/commonfxcontrols/CitationKeyPatternSuggestionCell.java rename to jabgui/src/main/java/org/jabref/gui/commonfxcontrols/CitationKeyPatternSuggestionCell.java diff --git a/src/main/java/org/jabref/gui/commonfxcontrols/CitationKeyPatternsPanel.java b/jabgui/src/main/java/org/jabref/gui/commonfxcontrols/CitationKeyPatternsPanel.java similarity index 100% rename from src/main/java/org/jabref/gui/commonfxcontrols/CitationKeyPatternsPanel.java rename to jabgui/src/main/java/org/jabref/gui/commonfxcontrols/CitationKeyPatternsPanel.java diff --git a/src/main/java/org/jabref/gui/commonfxcontrols/CitationKeyPatternsPanelItemModel.java b/jabgui/src/main/java/org/jabref/gui/commonfxcontrols/CitationKeyPatternsPanelItemModel.java similarity index 100% rename from src/main/java/org/jabref/gui/commonfxcontrols/CitationKeyPatternsPanelItemModel.java rename to jabgui/src/main/java/org/jabref/gui/commonfxcontrols/CitationKeyPatternsPanelItemModel.java diff --git a/src/main/java/org/jabref/gui/commonfxcontrols/CitationKeyPatternsPanelViewModel.java b/jabgui/src/main/java/org/jabref/gui/commonfxcontrols/CitationKeyPatternsPanelViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/commonfxcontrols/CitationKeyPatternsPanelViewModel.java rename to jabgui/src/main/java/org/jabref/gui/commonfxcontrols/CitationKeyPatternsPanelViewModel.java diff --git a/src/main/java/org/jabref/gui/commonfxcontrols/FieldFormatterCleanupsPanel.java b/jabgui/src/main/java/org/jabref/gui/commonfxcontrols/FieldFormatterCleanupsPanel.java similarity index 100% rename from src/main/java/org/jabref/gui/commonfxcontrols/FieldFormatterCleanupsPanel.java rename to jabgui/src/main/java/org/jabref/gui/commonfxcontrols/FieldFormatterCleanupsPanel.java diff --git a/src/main/java/org/jabref/gui/commonfxcontrols/FieldFormatterCleanupsPanelViewModel.java b/jabgui/src/main/java/org/jabref/gui/commonfxcontrols/FieldFormatterCleanupsPanelViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/commonfxcontrols/FieldFormatterCleanupsPanelViewModel.java rename to jabgui/src/main/java/org/jabref/gui/commonfxcontrols/FieldFormatterCleanupsPanelViewModel.java diff --git a/src/main/java/org/jabref/gui/commonfxcontrols/SaveOrderConfigPanel.java b/jabgui/src/main/java/org/jabref/gui/commonfxcontrols/SaveOrderConfigPanel.java similarity index 100% rename from src/main/java/org/jabref/gui/commonfxcontrols/SaveOrderConfigPanel.java rename to jabgui/src/main/java/org/jabref/gui/commonfxcontrols/SaveOrderConfigPanel.java diff --git a/src/main/java/org/jabref/gui/commonfxcontrols/SaveOrderConfigPanelViewModel.java b/jabgui/src/main/java/org/jabref/gui/commonfxcontrols/SaveOrderConfigPanelViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/commonfxcontrols/SaveOrderConfigPanelViewModel.java rename to jabgui/src/main/java/org/jabref/gui/commonfxcontrols/SaveOrderConfigPanelViewModel.java diff --git a/src/main/java/org/jabref/gui/commonfxcontrols/SortCriterionViewModel.java b/jabgui/src/main/java/org/jabref/gui/commonfxcontrols/SortCriterionViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/commonfxcontrols/SortCriterionViewModel.java rename to jabgui/src/main/java/org/jabref/gui/commonfxcontrols/SortCriterionViewModel.java diff --git a/src/main/java/org/jabref/gui/consistency/ConsistencyCheckAction.java b/jabgui/src/main/java/org/jabref/gui/consistency/ConsistencyCheckAction.java similarity index 100% rename from src/main/java/org/jabref/gui/consistency/ConsistencyCheckAction.java rename to jabgui/src/main/java/org/jabref/gui/consistency/ConsistencyCheckAction.java diff --git a/src/main/java/org/jabref/gui/consistency/ConsistencyCheckDialog.java b/jabgui/src/main/java/org/jabref/gui/consistency/ConsistencyCheckDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/consistency/ConsistencyCheckDialog.java rename to jabgui/src/main/java/org/jabref/gui/consistency/ConsistencyCheckDialog.java diff --git a/src/main/java/org/jabref/gui/consistency/ConsistencyCheckDialogViewModel.java b/jabgui/src/main/java/org/jabref/gui/consistency/ConsistencyCheckDialogViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/consistency/ConsistencyCheckDialogViewModel.java rename to jabgui/src/main/java/org/jabref/gui/consistency/ConsistencyCheckDialogViewModel.java diff --git a/src/main/java/org/jabref/gui/consistency/ConsistencySymbol.java b/jabgui/src/main/java/org/jabref/gui/consistency/ConsistencySymbol.java similarity index 100% rename from src/main/java/org/jabref/gui/consistency/ConsistencySymbol.java rename to jabgui/src/main/java/org/jabref/gui/consistency/ConsistencySymbol.java diff --git a/src/main/java/org/jabref/gui/consistency/ConsistencySymbolsDialog.java b/jabgui/src/main/java/org/jabref/gui/consistency/ConsistencySymbolsDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/consistency/ConsistencySymbolsDialog.java rename to jabgui/src/main/java/org/jabref/gui/consistency/ConsistencySymbolsDialog.java diff --git a/src/main/java/org/jabref/gui/copyfiles/CopyFilesAction.java b/jabgui/src/main/java/org/jabref/gui/copyfiles/CopyFilesAction.java similarity index 100% rename from src/main/java/org/jabref/gui/copyfiles/CopyFilesAction.java rename to jabgui/src/main/java/org/jabref/gui/copyfiles/CopyFilesAction.java diff --git a/src/main/java/org/jabref/gui/copyfiles/CopyFilesDialogView.java b/jabgui/src/main/java/org/jabref/gui/copyfiles/CopyFilesDialogView.java similarity index 100% rename from src/main/java/org/jabref/gui/copyfiles/CopyFilesDialogView.java rename to jabgui/src/main/java/org/jabref/gui/copyfiles/CopyFilesDialogView.java diff --git a/src/main/java/org/jabref/gui/copyfiles/CopyFilesDialogViewModel.java b/jabgui/src/main/java/org/jabref/gui/copyfiles/CopyFilesDialogViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/copyfiles/CopyFilesDialogViewModel.java rename to jabgui/src/main/java/org/jabref/gui/copyfiles/CopyFilesDialogViewModel.java diff --git a/src/main/java/org/jabref/gui/copyfiles/CopyFilesResultItemViewModel.java b/jabgui/src/main/java/org/jabref/gui/copyfiles/CopyFilesResultItemViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/copyfiles/CopyFilesResultItemViewModel.java rename to jabgui/src/main/java/org/jabref/gui/copyfiles/CopyFilesResultItemViewModel.java diff --git a/src/main/java/org/jabref/gui/copyfiles/CopyFilesResultListDependency.java b/jabgui/src/main/java/org/jabref/gui/copyfiles/CopyFilesResultListDependency.java similarity index 100% rename from src/main/java/org/jabref/gui/copyfiles/CopyFilesResultListDependency.java rename to jabgui/src/main/java/org/jabref/gui/copyfiles/CopyFilesResultListDependency.java diff --git a/src/main/java/org/jabref/gui/copyfiles/CopyFilesTask.java b/jabgui/src/main/java/org/jabref/gui/copyfiles/CopyFilesTask.java similarity index 100% rename from src/main/java/org/jabref/gui/copyfiles/CopyFilesTask.java rename to jabgui/src/main/java/org/jabref/gui/copyfiles/CopyFilesTask.java diff --git a/src/main/java/org/jabref/gui/copyfiles/CopySingleFileAction.java b/jabgui/src/main/java/org/jabref/gui/copyfiles/CopySingleFileAction.java similarity index 100% rename from src/main/java/org/jabref/gui/copyfiles/CopySingleFileAction.java rename to jabgui/src/main/java/org/jabref/gui/copyfiles/CopySingleFileAction.java diff --git a/src/main/java/org/jabref/gui/desktop/os/DefaultDesktop.java b/jabgui/src/main/java/org/jabref/gui/desktop/os/DefaultDesktop.java similarity index 93% rename from src/main/java/org/jabref/gui/desktop/os/DefaultDesktop.java rename to jabgui/src/main/java/org/jabref/gui/desktop/os/DefaultDesktop.java index ceff4dcab9c..59b4d030a17 100644 --- a/src/main/java/org/jabref/gui/desktop/os/DefaultDesktop.java +++ b/jabgui/src/main/java/org/jabref/gui/desktop/os/DefaultDesktop.java @@ -24,12 +24,12 @@ public class DefaultDesktop extends NativeDesktop { @Override public void openFile(String filePath, String fileType, ExternalApplicationsPreferences externalApplicationsPreferences) throws IOException { - Desktop.getDesktop().open(new File(filePath)); + Desktop.getDesktop().open(Path.of(filePath).toFile()); } @Override public void openFileWithApplication(String filePath, String application) throws IOException { - Desktop.getDesktop().open(new File(filePath)); + Desktop.getDesktop().open(Path.of(filePath).toFile()); } @Override diff --git a/src/main/java/org/jabref/gui/desktop/os/Linux.java b/jabgui/src/main/java/org/jabref/gui/desktop/os/Linux.java similarity index 98% rename from src/main/java/org/jabref/gui/desktop/os/Linux.java rename to jabgui/src/main/java/org/jabref/gui/desktop/os/Linux.java index 51c41041766..d2cb8ddde59 100644 --- a/src/main/java/org/jabref/gui/desktop/os/Linux.java +++ b/jabgui/src/main/java/org/jabref/gui/desktop/os/Linux.java @@ -39,8 +39,7 @@ public class Linux extends NativeDesktop { private void nativeOpenFile(String filePath) { HeadlessExecutorService.INSTANCE.execute(() -> { try { - File file = new File(filePath); - Desktop.getDesktop().open(file); + Desktop.getDesktop().open(Path.of(filePath).toFile()); LoggerFactory.getLogger(Linux.class).debug("Open file in default application with Desktop integration"); } catch (IllegalArgumentException e) { LoggerFactory.getLogger(Linux.class).debug("Fail back to xdg-open"); @@ -161,7 +160,7 @@ public void openConsole(String absolutePath, DialogService dialogService) throws LoggerFactory.getLogger(Linux.class).debug("Opening terminal using {}", String.join(" ", cmd)); ProcessBuilder builder = new ProcessBuilder(cmd); - builder.directory(new File(absolutePath)); + builder.directory(Path.of(absolutePath).toFile()); Process processTerminal = builder.start(); StreamGobbler streamGobblerInput = new StreamGobbler(processTerminal.getInputStream(), LoggerFactory.getLogger(Linux.class)::debug); diff --git a/src/main/java/org/jabref/gui/desktop/os/NativeDesktop.java b/jabgui/src/main/java/org/jabref/gui/desktop/os/NativeDesktop.java similarity index 100% rename from src/main/java/org/jabref/gui/desktop/os/NativeDesktop.java rename to jabgui/src/main/java/org/jabref/gui/desktop/os/NativeDesktop.java diff --git a/src/main/java/org/jabref/gui/desktop/os/OSX.java b/jabgui/src/main/java/org/jabref/gui/desktop/os/OSX.java similarity index 100% rename from src/main/java/org/jabref/gui/desktop/os/OSX.java rename to jabgui/src/main/java/org/jabref/gui/desktop/os/OSX.java diff --git a/src/main/java/org/jabref/gui/desktop/os/Windows.java b/jabgui/src/main/java/org/jabref/gui/desktop/os/Windows.java similarity index 97% rename from src/main/java/org/jabref/gui/desktop/os/Windows.java rename to jabgui/src/main/java/org/jabref/gui/desktop/os/Windows.java index ba6caaa5a26..3d2d1213d5b 100644 --- a/src/main/java/org/jabref/gui/desktop/os/Windows.java +++ b/jabgui/src/main/java/org/jabref/gui/desktop/os/Windows.java @@ -1,6 +1,5 @@ package org.jabref.gui.desktop.os; -import java.io.File; import java.io.IOException; import java.nio.file.Path; import java.util.Optional; @@ -78,7 +77,7 @@ public void openFolderAndSelectFile(Path filePath) throws IOException { @Override public void openConsole(String absolutePath, DialogService dialogService) throws IOException { ProcessBuilder process = new ProcessBuilder("cmd.exe", "/c", "start"); - process.directory(new File(absolutePath)); + process.directory(Path.of(absolutePath).toFile()); process.start(); } } diff --git a/src/main/java/org/jabref/gui/dialogs/AutosaveUiManager.java b/jabgui/src/main/java/org/jabref/gui/dialogs/AutosaveUiManager.java similarity index 100% rename from src/main/java/org/jabref/gui/dialogs/AutosaveUiManager.java rename to jabgui/src/main/java/org/jabref/gui/dialogs/AutosaveUiManager.java diff --git a/src/main/java/org/jabref/gui/dialogs/BackupUIManager.java b/jabgui/src/main/java/org/jabref/gui/dialogs/BackupUIManager.java similarity index 100% rename from src/main/java/org/jabref/gui/dialogs/BackupUIManager.java rename to jabgui/src/main/java/org/jabref/gui/dialogs/BackupUIManager.java diff --git a/src/main/java/org/jabref/gui/documentviewer/DocumentPageViewModel.java b/jabgui/src/main/java/org/jabref/gui/documentviewer/DocumentPageViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/documentviewer/DocumentPageViewModel.java rename to jabgui/src/main/java/org/jabref/gui/documentviewer/DocumentPageViewModel.java diff --git a/src/main/java/org/jabref/gui/documentviewer/DocumentViewModel.java b/jabgui/src/main/java/org/jabref/gui/documentviewer/DocumentViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/documentviewer/DocumentViewModel.java rename to jabgui/src/main/java/org/jabref/gui/documentviewer/DocumentViewModel.java diff --git a/src/main/java/org/jabref/gui/documentviewer/DocumentViewerControl.java b/jabgui/src/main/java/org/jabref/gui/documentviewer/DocumentViewerControl.java similarity index 100% rename from src/main/java/org/jabref/gui/documentviewer/DocumentViewerControl.java rename to jabgui/src/main/java/org/jabref/gui/documentviewer/DocumentViewerControl.java diff --git a/src/main/java/org/jabref/gui/documentviewer/DocumentViewerView.java b/jabgui/src/main/java/org/jabref/gui/documentviewer/DocumentViewerView.java similarity index 100% rename from src/main/java/org/jabref/gui/documentviewer/DocumentViewerView.java rename to jabgui/src/main/java/org/jabref/gui/documentviewer/DocumentViewerView.java diff --git a/src/main/java/org/jabref/gui/documentviewer/DocumentViewerViewModel.java b/jabgui/src/main/java/org/jabref/gui/documentviewer/DocumentViewerViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/documentviewer/DocumentViewerViewModel.java rename to jabgui/src/main/java/org/jabref/gui/documentviewer/DocumentViewerViewModel.java diff --git a/src/main/java/org/jabref/gui/documentviewer/PageDimension.java b/jabgui/src/main/java/org/jabref/gui/documentviewer/PageDimension.java similarity index 100% rename from src/main/java/org/jabref/gui/documentviewer/PageDimension.java rename to jabgui/src/main/java/org/jabref/gui/documentviewer/PageDimension.java diff --git a/src/main/java/org/jabref/gui/documentviewer/PdfDocumentPageViewModel.java b/jabgui/src/main/java/org/jabref/gui/documentviewer/PdfDocumentPageViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/documentviewer/PdfDocumentPageViewModel.java rename to jabgui/src/main/java/org/jabref/gui/documentviewer/PdfDocumentPageViewModel.java diff --git a/src/main/java/org/jabref/gui/documentviewer/PdfDocumentViewModel.java b/jabgui/src/main/java/org/jabref/gui/documentviewer/PdfDocumentViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/documentviewer/PdfDocumentViewModel.java rename to jabgui/src/main/java/org/jabref/gui/documentviewer/PdfDocumentViewModel.java diff --git a/src/main/java/org/jabref/gui/documentviewer/ShowDocumentViewerAction.java b/jabgui/src/main/java/org/jabref/gui/documentviewer/ShowDocumentViewerAction.java similarity index 100% rename from src/main/java/org/jabref/gui/documentviewer/ShowDocumentViewerAction.java rename to jabgui/src/main/java/org/jabref/gui/documentviewer/ShowDocumentViewerAction.java diff --git a/src/main/java/org/jabref/gui/duplicationFinder/DuplicateResolverDialog.java b/jabgui/src/main/java/org/jabref/gui/duplicationFinder/DuplicateResolverDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/duplicationFinder/DuplicateResolverDialog.java rename to jabgui/src/main/java/org/jabref/gui/duplicationFinder/DuplicateResolverDialog.java diff --git a/src/main/java/org/jabref/gui/duplicationFinder/DuplicateSearch.java b/jabgui/src/main/java/org/jabref/gui/duplicationFinder/DuplicateSearch.java similarity index 100% rename from src/main/java/org/jabref/gui/duplicationFinder/DuplicateSearch.java rename to jabgui/src/main/java/org/jabref/gui/duplicationFinder/DuplicateSearch.java diff --git a/src/main/java/org/jabref/gui/edit/CopyDoiUrlAction.java b/jabgui/src/main/java/org/jabref/gui/edit/CopyDoiUrlAction.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/CopyDoiUrlAction.java rename to jabgui/src/main/java/org/jabref/gui/edit/CopyDoiUrlAction.java diff --git a/src/main/java/org/jabref/gui/edit/CopyMoreAction.java b/jabgui/src/main/java/org/jabref/gui/edit/CopyMoreAction.java similarity index 98% rename from src/main/java/org/jabref/gui/edit/CopyMoreAction.java rename to jabgui/src/main/java/org/jabref/gui/edit/CopyMoreAction.java index 85bc9e41efd..80789f0c5fa 100644 --- a/src/main/java/org/jabref/gui/edit/CopyMoreAction.java +++ b/jabgui/src/main/java/org/jabref/gui/edit/CopyMoreAction.java @@ -1,7 +1,7 @@ package org.jabref.gui.edit; import java.io.IOException; -import java.io.StringReader; +import java.io.Reader; import java.util.List; import java.util.function.Function; import java.util.stream.Collectors; @@ -182,7 +182,7 @@ private void copyKeyAndTitle() { List entries = stateManager.getSelectedEntries(); // ToDo: this string should be configurable to allow arbitrary exports - StringReader layoutString = new StringReader("\\citationkey - \\begin{title}\\format[RemoveBrackets]{\\title}\\end{title}\n"); + Reader layoutString = Reader.of("\\citationkey - \\begin{title}\\format[RemoveBrackets]{\\title}\\end{title}\n"); Layout layout; try { layout = new LayoutHelper(layoutString, preferences.getLayoutFormatterPreferences(), abbreviationRepository).getLayoutFromText(); diff --git a/src/main/java/org/jabref/gui/edit/CopyTo.java b/jabgui/src/main/java/org/jabref/gui/edit/CopyTo.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/CopyTo.java rename to jabgui/src/main/java/org/jabref/gui/edit/CopyTo.java diff --git a/src/main/java/org/jabref/gui/edit/CopyToPreferences.java b/jabgui/src/main/java/org/jabref/gui/edit/CopyToPreferences.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/CopyToPreferences.java rename to jabgui/src/main/java/org/jabref/gui/edit/CopyToPreferences.java diff --git a/src/main/java/org/jabref/gui/edit/EditAction.java b/jabgui/src/main/java/org/jabref/gui/edit/EditAction.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/EditAction.java rename to jabgui/src/main/java/org/jabref/gui/edit/EditAction.java diff --git a/src/main/java/org/jabref/gui/edit/ManageKeywordsAction.java b/jabgui/src/main/java/org/jabref/gui/edit/ManageKeywordsAction.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/ManageKeywordsAction.java rename to jabgui/src/main/java/org/jabref/gui/edit/ManageKeywordsAction.java diff --git a/src/main/java/org/jabref/gui/edit/ManageKeywordsDialog.java b/jabgui/src/main/java/org/jabref/gui/edit/ManageKeywordsDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/ManageKeywordsDialog.java rename to jabgui/src/main/java/org/jabref/gui/edit/ManageKeywordsDialog.java diff --git a/src/main/java/org/jabref/gui/edit/ManageKeywordsDisplayType.java b/jabgui/src/main/java/org/jabref/gui/edit/ManageKeywordsDisplayType.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/ManageKeywordsDisplayType.java rename to jabgui/src/main/java/org/jabref/gui/edit/ManageKeywordsDisplayType.java diff --git a/src/main/java/org/jabref/gui/edit/ManageKeywordsViewModel.java b/jabgui/src/main/java/org/jabref/gui/edit/ManageKeywordsViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/ManageKeywordsViewModel.java rename to jabgui/src/main/java/org/jabref/gui/edit/ManageKeywordsViewModel.java diff --git a/src/main/java/org/jabref/gui/edit/OpenBrowserAction.java b/jabgui/src/main/java/org/jabref/gui/edit/OpenBrowserAction.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/OpenBrowserAction.java rename to jabgui/src/main/java/org/jabref/gui/edit/OpenBrowserAction.java diff --git a/src/main/java/org/jabref/gui/edit/ReplaceStringAction.java b/jabgui/src/main/java/org/jabref/gui/edit/ReplaceStringAction.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/ReplaceStringAction.java rename to jabgui/src/main/java/org/jabref/gui/edit/ReplaceStringAction.java diff --git a/src/main/java/org/jabref/gui/edit/ReplaceStringView.java b/jabgui/src/main/java/org/jabref/gui/edit/ReplaceStringView.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/ReplaceStringView.java rename to jabgui/src/main/java/org/jabref/gui/edit/ReplaceStringView.java diff --git a/src/main/java/org/jabref/gui/edit/ReplaceStringViewModel.java b/jabgui/src/main/java/org/jabref/gui/edit/ReplaceStringViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/ReplaceStringViewModel.java rename to jabgui/src/main/java/org/jabref/gui/edit/ReplaceStringViewModel.java diff --git a/src/main/java/org/jabref/gui/edit/automaticfiededitor/AbstractAutomaticFieldEditorTabView.java b/jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/AbstractAutomaticFieldEditorTabView.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/automaticfiededitor/AbstractAutomaticFieldEditorTabView.java rename to jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/AbstractAutomaticFieldEditorTabView.java diff --git a/src/main/java/org/jabref/gui/edit/automaticfiededitor/AbstractAutomaticFieldEditorTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/AbstractAutomaticFieldEditorTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/automaticfiededitor/AbstractAutomaticFieldEditorTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/AbstractAutomaticFieldEditorTabViewModel.java diff --git a/src/main/java/org/jabref/gui/edit/automaticfiededitor/AutomaticFieldEditorAction.java b/jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/AutomaticFieldEditorAction.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/automaticfiededitor/AutomaticFieldEditorAction.java rename to jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/AutomaticFieldEditorAction.java diff --git a/src/main/java/org/jabref/gui/edit/automaticfiededitor/AutomaticFieldEditorDialog.java b/jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/AutomaticFieldEditorDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/automaticfiededitor/AutomaticFieldEditorDialog.java rename to jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/AutomaticFieldEditorDialog.java diff --git a/src/main/java/org/jabref/gui/edit/automaticfiededitor/AutomaticFieldEditorTab.java b/jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/AutomaticFieldEditorTab.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/automaticfiededitor/AutomaticFieldEditorTab.java rename to jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/AutomaticFieldEditorTab.java diff --git a/src/main/java/org/jabref/gui/edit/automaticfiededitor/AutomaticFieldEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/AutomaticFieldEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/automaticfiededitor/AutomaticFieldEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/AutomaticFieldEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/edit/automaticfiededitor/LastAutomaticFieldEditorEdit.java b/jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/LastAutomaticFieldEditorEdit.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/automaticfiededitor/LastAutomaticFieldEditorEdit.java rename to jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/LastAutomaticFieldEditorEdit.java diff --git a/src/main/java/org/jabref/gui/edit/automaticfiededitor/MoveFieldValueAction.java b/jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/MoveFieldValueAction.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/automaticfiededitor/MoveFieldValueAction.java rename to jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/MoveFieldValueAction.java diff --git a/src/main/java/org/jabref/gui/edit/automaticfiededitor/NotificationPaneAdapter.java b/jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/NotificationPaneAdapter.java similarity index 81% rename from src/main/java/org/jabref/gui/edit/automaticfiededitor/NotificationPaneAdapter.java rename to jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/NotificationPaneAdapter.java index 811a954a8aa..d650271d9d1 100644 --- a/src/main/java/org/jabref/gui/edit/automaticfiededitor/NotificationPaneAdapter.java +++ b/jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/NotificationPaneAdapter.java @@ -1,6 +1,6 @@ package org.jabref.gui.edit.automaticfiededitor; -import java.util.Collections; +import java.util.List; import javafx.scene.Node; import javafx.util.Duration; @@ -18,6 +18,6 @@ public void notify(int affectedEntries, int totalEntries) { String notificationMessage = "%d/%d affected entries".formatted(affectedEntries, totalEntries); Node notificationGraphic = IconTheme.JabRefIcons.INTEGRITY_INFO.getGraphicNode(); - notify(notificationGraphic, notificationMessage, Collections.emptyList(), Duration.seconds(2)); + notify(notificationGraphic, notificationMessage, List.of(), Duration.seconds(2)); } } diff --git a/src/main/java/org/jabref/gui/edit/automaticfiededitor/copyormovecontent/CopyOrMoveFieldContentTabView.java b/jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/copyormovecontent/CopyOrMoveFieldContentTabView.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/automaticfiededitor/copyormovecontent/CopyOrMoveFieldContentTabView.java rename to jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/copyormovecontent/CopyOrMoveFieldContentTabView.java diff --git a/src/main/java/org/jabref/gui/edit/automaticfiededitor/copyormovecontent/CopyOrMoveFieldContentTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/copyormovecontent/CopyOrMoveFieldContentTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/automaticfiededitor/copyormovecontent/CopyOrMoveFieldContentTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/copyormovecontent/CopyOrMoveFieldContentTabViewModel.java diff --git a/src/main/java/org/jabref/gui/edit/automaticfiededitor/editfieldcontent/EditFieldContentTabView.java b/jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/editfieldcontent/EditFieldContentTabView.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/automaticfiededitor/editfieldcontent/EditFieldContentTabView.java rename to jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/editfieldcontent/EditFieldContentTabView.java diff --git a/src/main/java/org/jabref/gui/edit/automaticfiededitor/editfieldcontent/EditFieldContentViewModel.java b/jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/editfieldcontent/EditFieldContentViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/automaticfiededitor/editfieldcontent/EditFieldContentViewModel.java rename to jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/editfieldcontent/EditFieldContentViewModel.java diff --git a/src/main/java/org/jabref/gui/edit/automaticfiededitor/renamefield/RenameFieldTabView.java b/jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/renamefield/RenameFieldTabView.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/automaticfiededitor/renamefield/RenameFieldTabView.java rename to jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/renamefield/RenameFieldTabView.java diff --git a/src/main/java/org/jabref/gui/edit/automaticfiededitor/renamefield/RenameFieldViewModel.java b/jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/renamefield/RenameFieldViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/edit/automaticfiededitor/renamefield/RenameFieldViewModel.java rename to jabgui/src/main/java/org/jabref/gui/edit/automaticfiededitor/renamefield/RenameFieldViewModel.java diff --git a/src/main/java/org/jabref/gui/entryeditor/AiChatTab.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/AiChatTab.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/AiChatTab.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/AiChatTab.java diff --git a/src/main/java/org/jabref/gui/entryeditor/AiSummaryTab.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/AiSummaryTab.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/AiSummaryTab.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/AiSummaryTab.java diff --git a/src/main/java/org/jabref/gui/entryeditor/CommentsTab.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/CommentsTab.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/CommentsTab.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/CommentsTab.java diff --git a/src/main/java/org/jabref/gui/entryeditor/DeprecatedFieldsTab.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/DeprecatedFieldsTab.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/DeprecatedFieldsTab.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/DeprecatedFieldsTab.java diff --git a/src/main/java/org/jabref/gui/entryeditor/DetailOptionalFieldsTab.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/DetailOptionalFieldsTab.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/DetailOptionalFieldsTab.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/DetailOptionalFieldsTab.java diff --git a/src/main/java/org/jabref/gui/entryeditor/EntryEditor.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/EntryEditor.java similarity index 99% rename from src/main/java/org/jabref/gui/entryeditor/EntryEditor.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/EntryEditor.java index c24a1ff121f..fa48da6debb 100644 --- a/src/main/java/org/jabref/gui/entryeditor/EntryEditor.java +++ b/jabgui/src/main/java/org/jabref/gui/entryeditor/EntryEditor.java @@ -3,7 +3,6 @@ import java.io.File; import java.nio.file.Path; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.LinkedList; import java.util.List; @@ -449,7 +448,7 @@ private void setupToolBar() { typeLabel.setText(typedEntry.getTypeForDisplay()); // Add type change menu - ContextMenu typeMenu = new ChangeEntryTypeMenu(Collections.singletonList(currentlyEditedEntry), tabSupplier.get().getBibDatabaseContext(), undoManager, bibEntryTypesManager).asContextMenu(); + ContextMenu typeMenu = new ChangeEntryTypeMenu(List.of(currentlyEditedEntry), tabSupplier.get().getBibDatabaseContext(), undoManager, bibEntryTypesManager).asContextMenu(); typeLabel.setOnMouseClicked(event -> typeMenu.show(typeLabel, Side.RIGHT, 0, 0)); typeChangeButton.setOnMouseClicked(event -> typeMenu.show(typeChangeButton, Side.RIGHT, 0, 0)); diff --git a/src/main/java/org/jabref/gui/entryeditor/EntryEditorPreferences.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/EntryEditorPreferences.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/EntryEditorPreferences.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/EntryEditorPreferences.java diff --git a/src/main/java/org/jabref/gui/entryeditor/EntryEditorTab.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/EntryEditorTab.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/EntryEditorTab.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/EntryEditorTab.java diff --git a/src/main/java/org/jabref/gui/entryeditor/FieldsEditorTab.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/FieldsEditorTab.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/FieldsEditorTab.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/FieldsEditorTab.java diff --git a/src/main/java/org/jabref/gui/entryeditor/ImportantOptionalFieldsTab.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/ImportantOptionalFieldsTab.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/ImportantOptionalFieldsTab.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/ImportantOptionalFieldsTab.java diff --git a/src/main/java/org/jabref/gui/entryeditor/LatexCitationsTab.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/LatexCitationsTab.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/LatexCitationsTab.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/LatexCitationsTab.java diff --git a/src/main/java/org/jabref/gui/entryeditor/LatexCitationsTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/LatexCitationsTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/LatexCitationsTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/LatexCitationsTabViewModel.java diff --git a/src/main/java/org/jabref/gui/entryeditor/MathSciNetTab.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/MathSciNetTab.java similarity index 97% rename from src/main/java/org/jabref/gui/entryeditor/MathSciNetTab.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/MathSciNetTab.java index 59118f0240e..cb79e817426 100644 --- a/src/main/java/org/jabref/gui/entryeditor/MathSciNetTab.java +++ b/jabgui/src/main/java/org/jabref/gui/entryeditor/MathSciNetTab.java @@ -7,8 +7,8 @@ import javafx.scene.layout.StackPane; import javafx.scene.web.WebView; +import org.jabref.gui.util.WebViewStore; import org.jabref.logic.l10n.Localization; -import org.jabref.logic.util.WebViewStore; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; import org.jabref.model.entry.identifier.MathSciNetId; diff --git a/src/main/java/org/jabref/gui/entryeditor/OpenEntryEditorAction.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/OpenEntryEditorAction.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/OpenEntryEditorAction.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/OpenEntryEditorAction.java diff --git a/src/main/java/org/jabref/gui/entryeditor/OptionalFieldsTabBase.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/OptionalFieldsTabBase.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/OptionalFieldsTabBase.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/OptionalFieldsTabBase.java diff --git a/src/main/java/org/jabref/gui/entryeditor/OtherFieldsTab.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/OtherFieldsTab.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/OtherFieldsTab.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/OtherFieldsTab.java diff --git a/src/main/java/org/jabref/gui/entryeditor/PreviewSwitchAction.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/PreviewSwitchAction.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/PreviewSwitchAction.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/PreviewSwitchAction.java diff --git a/src/main/java/org/jabref/gui/entryeditor/PreviewTab.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/PreviewTab.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/PreviewTab.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/PreviewTab.java diff --git a/src/main/java/org/jabref/gui/entryeditor/RelatedArticlesTab.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/RelatedArticlesTab.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/RelatedArticlesTab.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/RelatedArticlesTab.java diff --git a/src/main/java/org/jabref/gui/entryeditor/RequiredFieldsTab.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/RequiredFieldsTab.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/RequiredFieldsTab.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/RequiredFieldsTab.java diff --git a/src/main/java/org/jabref/gui/entryeditor/SciteTab.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/SciteTab.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/SciteTab.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/SciteTab.java diff --git a/src/main/java/org/jabref/gui/entryeditor/SciteTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/SciteTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/SciteTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/SciteTabViewModel.java diff --git a/src/main/java/org/jabref/gui/entryeditor/SciteTallyModel.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/SciteTallyModel.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/SciteTallyModel.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/SciteTallyModel.java diff --git a/src/main/java/org/jabref/gui/entryeditor/SourceTab.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/SourceTab.java similarity index 98% rename from src/main/java/org/jabref/gui/entryeditor/SourceTab.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/SourceTab.java index 76a8a0ec16d..996578ba346 100644 --- a/src/main/java/org/jabref/gui/entryeditor/SourceTab.java +++ b/jabgui/src/main/java/org/jabref/gui/entryeditor/SourceTab.java @@ -1,7 +1,7 @@ package org.jabref.gui.entryeditor; import java.io.IOException; -import java.io.StringReader; +import java.io.Reader; import java.io.StringWriter; import java.util.List; import java.util.Map; @@ -28,6 +28,7 @@ import org.jabref.gui.icon.IconTheme; import org.jabref.gui.keyboard.CodeAreaKeyBindings; import org.jabref.gui.keyboard.KeyBindingRepository; +import org.jabref.gui.search.Highlighter; import org.jabref.gui.undo.CountingUndoManager; import org.jabref.gui.undo.NamedCompound; import org.jabref.gui.undo.UndoableChangeType; @@ -42,7 +43,6 @@ import org.jabref.logic.importer.ParserResult; import org.jabref.logic.importer.fileformat.BibtexParser; import org.jabref.logic.l10n.Localization; -import org.jabref.logic.search.retrieval.Highlighter; import org.jabref.model.database.BibDatabase; import org.jabref.model.database.BibDatabaseContext; import org.jabref.model.database.BibDatabaseMode; @@ -289,7 +289,7 @@ private void storeSource(BibEntry outOfFocusEntry, String text) { BibtexParser bibtexParser = new BibtexParser(importFormatPreferences, fileMonitor); try { - ParserResult parserResult = bibtexParser.parse(new StringReader(text)); + ParserResult parserResult = bibtexParser.parse(Reader.of(text)); BibDatabase database = parserResult.getDatabase(); if (database.getEntryCount() > 1) { diff --git a/src/main/java/org/jabref/gui/entryeditor/TabWithPreviewPanel.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/TabWithPreviewPanel.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/TabWithPreviewPanel.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/TabWithPreviewPanel.java diff --git a/src/main/java/org/jabref/gui/entryeditor/UserDefinedFieldsTab.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/UserDefinedFieldsTab.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/UserDefinedFieldsTab.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/UserDefinedFieldsTab.java diff --git a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/BibEntryRelationsCache.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/BibEntryRelationsCache.java similarity index 91% rename from src/main/java/org/jabref/gui/entryeditor/citationrelationtab/BibEntryRelationsCache.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/BibEntryRelationsCache.java index de2f832b48f..2bae9b9aadb 100644 --- a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/BibEntryRelationsCache.java +++ b/jabgui/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/BibEntryRelationsCache.java @@ -1,6 +1,5 @@ package org.jabref.gui.entryeditor.citationrelationtab; -import java.util.Collections; import java.util.List; import java.util.Map; @@ -15,11 +14,11 @@ public class BibEntryRelationsCache { private static final Map> REFERENCES_MAP = new LRUMap<>(MAX_CACHED_ENTRIES, MAX_CACHED_ENTRIES); public List getCitations(BibEntry entry) { - return CITATIONS_MAP.getOrDefault(entry.getDOI().map(DOI::asString).orElse(""), Collections.emptyList()); + return CITATIONS_MAP.getOrDefault(entry.getDOI().map(DOI::asString).orElse(""), List.of()); } public List getReferences(BibEntry entry) { - return REFERENCES_MAP.getOrDefault(entry.getDOI().map(DOI::asString).orElse(""), Collections.emptyList()); + return REFERENCES_MAP.getOrDefault(entry.getDOI().map(DOI::asString).orElse(""), List.of()); } public void cacheOrMergeCitations(BibEntry entry, List citations) { diff --git a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/BibEntryRelationsRepository.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/BibEntryRelationsRepository.java similarity index 96% rename from src/main/java/org/jabref/gui/entryeditor/citationrelationtab/BibEntryRelationsRepository.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/BibEntryRelationsRepository.java index f7f29052da2..9e7d6aff0f7 100644 --- a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/BibEntryRelationsRepository.java +++ b/jabgui/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/BibEntryRelationsRepository.java @@ -2,8 +2,8 @@ import java.util.List; -import org.jabref.gui.entryeditor.citationrelationtab.semanticscholar.SemanticScholarFetcher; import org.jabref.logic.importer.FetcherException; +import org.jabref.logic.importer.fetcher.citation.semanticscholar.SemanticScholarFetcher; import org.jabref.model.entry.BibEntry; import org.slf4j.Logger; diff --git a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/BibEntryView.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/BibEntryView.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/citationrelationtab/BibEntryView.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/BibEntryView.java diff --git a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/CitationRelationItem.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/CitationRelationItem.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/citationrelationtab/CitationRelationItem.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/CitationRelationItem.java diff --git a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/CitationRelationsTab.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/CitationRelationsTab.java similarity index 99% rename from src/main/java/org/jabref/gui/entryeditor/citationrelationtab/CitationRelationsTab.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/CitationRelationsTab.java index 8b1a366e4f8..3cffd4e906f 100644 --- a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/CitationRelationsTab.java +++ b/jabgui/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/CitationRelationsTab.java @@ -37,8 +37,6 @@ import org.jabref.gui.collab.entrychange.PreviewWithSourceTab; import org.jabref.gui.desktop.os.NativeDesktop; import org.jabref.gui.entryeditor.EntryEditorTab; -import org.jabref.gui.entryeditor.citationrelationtab.semanticscholar.CitationFetcher; -import org.jabref.gui.entryeditor.citationrelationtab.semanticscholar.SemanticScholarFetcher; import org.jabref.gui.icon.IconTheme; import org.jabref.gui.mergeentries.EntriesMergeResult; import org.jabref.gui.mergeentries.MergeEntriesDialog; @@ -53,6 +51,8 @@ import org.jabref.logic.bibtex.FieldWriter; import org.jabref.logic.database.DuplicateCheck; import org.jabref.logic.exporter.BibWriter; +import org.jabref.logic.importer.fetcher.citation.CitationFetcher; +import org.jabref.logic.importer.fetcher.citation.semanticscholar.SemanticScholarFetcher; import org.jabref.logic.l10n.Localization; import org.jabref.logic.os.OS; import org.jabref.logic.util.BackgroundTask; diff --git a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/CitationsRelationsTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/CitationsRelationsTabViewModel.java similarity index 98% rename from src/main/java/org/jabref/gui/entryeditor/citationrelationtab/CitationsRelationsTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/CitationsRelationsTabViewModel.java index 2ee1dee2217..dbbcf286248 100644 --- a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/CitationsRelationsTabViewModel.java +++ b/jabgui/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/CitationsRelationsTabViewModel.java @@ -7,10 +7,10 @@ import org.jabref.gui.DialogService; import org.jabref.gui.StateManager; -import org.jabref.gui.entryeditor.citationrelationtab.semanticscholar.CitationFetcher; import org.jabref.gui.externalfiles.ImportHandler; import org.jabref.gui.preferences.GuiPreferences; import org.jabref.logic.citationkeypattern.CitationKeyGenerator; +import org.jabref.logic.importer.fetcher.citation.CitationFetcher; import org.jabref.logic.l10n.Localization; import org.jabref.logic.util.TaskExecutor; import org.jabref.model.database.BibDatabaseContext; diff --git a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTab.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTab.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTab.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTab.java diff --git a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabView.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabView.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabView.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabView.java diff --git a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabViewModel.java diff --git a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationViewModel.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationViewModel.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationViewModel.java diff --git a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FulltextSearchResultsTab.java b/jabgui/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FulltextSearchResultsTab.java similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FulltextSearchResultsTab.java rename to jabgui/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FulltextSearchResultsTab.java diff --git a/src/main/java/org/jabref/gui/entrytype/EntryTypeView.java b/jabgui/src/main/java/org/jabref/gui/entrytype/EntryTypeView.java similarity index 100% rename from src/main/java/org/jabref/gui/entrytype/EntryTypeView.java rename to jabgui/src/main/java/org/jabref/gui/entrytype/EntryTypeView.java diff --git a/src/main/java/org/jabref/gui/entrytype/EntryTypeViewModel.java b/jabgui/src/main/java/org/jabref/gui/entrytype/EntryTypeViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/entrytype/EntryTypeViewModel.java rename to jabgui/src/main/java/org/jabref/gui/entrytype/EntryTypeViewModel.java diff --git a/src/main/java/org/jabref/gui/errorconsole/ErrorConsoleView.java b/jabgui/src/main/java/org/jabref/gui/errorconsole/ErrorConsoleView.java similarity index 100% rename from src/main/java/org/jabref/gui/errorconsole/ErrorConsoleView.java rename to jabgui/src/main/java/org/jabref/gui/errorconsole/ErrorConsoleView.java diff --git a/src/main/java/org/jabref/gui/errorconsole/ErrorConsoleViewModel.java b/jabgui/src/main/java/org/jabref/gui/errorconsole/ErrorConsoleViewModel.java similarity index 99% rename from src/main/java/org/jabref/gui/errorconsole/ErrorConsoleViewModel.java rename to jabgui/src/main/java/org/jabref/gui/errorconsole/ErrorConsoleViewModel.java index 90dd83d4181..25f4225d2eb 100644 --- a/src/main/java/org/jabref/gui/errorconsole/ErrorConsoleViewModel.java +++ b/jabgui/src/main/java/org/jabref/gui/errorconsole/ErrorConsoleViewModel.java @@ -14,10 +14,10 @@ import org.jabref.gui.ClipBoardManager; import org.jabref.gui.DialogService; import org.jabref.gui.desktop.os.NativeDesktop; +import org.jabref.gui.logging.LogMessages; import org.jabref.gui.preferences.GuiPreferences; import org.jabref.gui.util.BindingsHelper; import org.jabref.logic.l10n.Localization; -import org.jabref.logic.logging.LogMessages; import org.jabref.logic.os.OS; import org.jabref.logic.util.BuildInfo; diff --git a/src/main/java/org/jabref/gui/errorconsole/LogEventViewModel.java b/jabgui/src/main/java/org/jabref/gui/errorconsole/LogEventViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/errorconsole/LogEventViewModel.java rename to jabgui/src/main/java/org/jabref/gui/errorconsole/LogEventViewModel.java diff --git a/src/main/java/org/jabref/gui/exporter/CreateModifyExporterDialogView.java b/jabgui/src/main/java/org/jabref/gui/exporter/CreateModifyExporterDialogView.java similarity index 100% rename from src/main/java/org/jabref/gui/exporter/CreateModifyExporterDialogView.java rename to jabgui/src/main/java/org/jabref/gui/exporter/CreateModifyExporterDialogView.java diff --git a/src/main/java/org/jabref/gui/exporter/CreateModifyExporterDialogViewModel.java b/jabgui/src/main/java/org/jabref/gui/exporter/CreateModifyExporterDialogViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/exporter/CreateModifyExporterDialogViewModel.java rename to jabgui/src/main/java/org/jabref/gui/exporter/CreateModifyExporterDialogViewModel.java diff --git a/src/main/java/org/jabref/gui/exporter/ExportCommand.java b/jabgui/src/main/java/org/jabref/gui/exporter/ExportCommand.java similarity index 98% rename from src/main/java/org/jabref/gui/exporter/ExportCommand.java rename to jabgui/src/main/java/org/jabref/gui/exporter/ExportCommand.java index 5cf0024cb9b..ac54a3953fa 100644 --- a/src/main/java/org/jabref/gui/exporter/ExportCommand.java +++ b/jabgui/src/main/java/org/jabref/gui/exporter/ExportCommand.java @@ -2,7 +2,6 @@ import java.io.IOException; import java.nio.file.Path; -import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.function.Supplier; @@ -109,7 +108,7 @@ private void export(Path file, FileChooser.ExtensionFilter selectedExtensionFilt // All entries entries = stateManager.getActiveDatabase() .map(BibDatabaseContext::getEntries) - .orElse(Collections.emptyList()); + .orElse(List.of()); } List fileDirForDatabase = stateManager.getActiveDatabase() diff --git a/src/main/java/org/jabref/gui/exporter/ExportToClipboardAction.java b/jabgui/src/main/java/org/jabref/gui/exporter/ExportToClipboardAction.java similarity index 96% rename from src/main/java/org/jabref/gui/exporter/ExportToClipboardAction.java rename to jabgui/src/main/java/org/jabref/gui/exporter/ExportToClipboardAction.java index 57551c8298a..e0bf680413a 100644 --- a/src/main/java/org/jabref/gui/exporter/ExportToClipboardAction.java +++ b/jabgui/src/main/java/org/jabref/gui/exporter/ExportToClipboardAction.java @@ -10,6 +10,9 @@ import java.util.Set; import java.util.stream.Collectors; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + import javafx.scene.input.ClipboardContent; import org.jabref.gui.ClipBoardManager; @@ -19,6 +22,7 @@ import org.jabref.gui.actions.SimpleCommand; import org.jabref.logic.exporter.Exporter; import org.jabref.logic.exporter.ExporterFactory; +import org.jabref.logic.exporter.SaveException; import org.jabref.logic.journals.JournalAbbreviationRepository; import org.jabref.logic.l10n.Localization; import org.jabref.logic.preferences.CliPreferences; @@ -99,7 +103,7 @@ public void execute() { .executeWith(taskExecutor)); } - private ExportResult exportToClipboard(Exporter exporter) throws Exception { + private ExportResult exportToClipboard(Exporter exporter) throws IOException, SaveException, ParserConfigurationException, TransformerException { List fileDirForDatabase = stateManager.getActiveDatabase() .map(db -> db.getFileDirectories(preferences.getFilePreferences())) .orElse(List.of(preferences.getFilePreferences().getWorkingDirectory())); diff --git a/src/main/java/org/jabref/gui/exporter/ExporterViewModel.java b/jabgui/src/main/java/org/jabref/gui/exporter/ExporterViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/exporter/ExporterViewModel.java rename to jabgui/src/main/java/org/jabref/gui/exporter/ExporterViewModel.java diff --git a/src/main/java/org/jabref/gui/exporter/SaveAction.java b/jabgui/src/main/java/org/jabref/gui/exporter/SaveAction.java similarity index 100% rename from src/main/java/org/jabref/gui/exporter/SaveAction.java rename to jabgui/src/main/java/org/jabref/gui/exporter/SaveAction.java diff --git a/src/main/java/org/jabref/gui/exporter/SaveAllAction.java b/jabgui/src/main/java/org/jabref/gui/exporter/SaveAllAction.java similarity index 100% rename from src/main/java/org/jabref/gui/exporter/SaveAllAction.java rename to jabgui/src/main/java/org/jabref/gui/exporter/SaveAllAction.java diff --git a/src/main/java/org/jabref/gui/exporter/SaveDatabaseAction.java b/jabgui/src/main/java/org/jabref/gui/exporter/SaveDatabaseAction.java similarity index 100% rename from src/main/java/org/jabref/gui/exporter/SaveDatabaseAction.java rename to jabgui/src/main/java/org/jabref/gui/exporter/SaveDatabaseAction.java diff --git a/src/main/java/org/jabref/gui/exporter/WriteMetadataToLinkedPdfsAction.java b/jabgui/src/main/java/org/jabref/gui/exporter/WriteMetadataToLinkedPdfsAction.java similarity index 99% rename from src/main/java/org/jabref/gui/exporter/WriteMetadataToLinkedPdfsAction.java rename to jabgui/src/main/java/org/jabref/gui/exporter/WriteMetadataToLinkedPdfsAction.java index 0b084517295..d32cbad7edd 100644 --- a/src/main/java/org/jabref/gui/exporter/WriteMetadataToLinkedPdfsAction.java +++ b/jabgui/src/main/java/org/jabref/gui/exporter/WriteMetadataToLinkedPdfsAction.java @@ -142,7 +142,7 @@ public WriteMetaDataTask(BibDatabaseContext databaseContext, } @Override - public Void call() throws Exception { + public Void call() { if (stateManager.getActiveDatabase().isEmpty()) { return null; } diff --git a/src/main/java/org/jabref/gui/externalfiles/AutoLinkFilesAction.java b/jabgui/src/main/java/org/jabref/gui/externalfiles/AutoLinkFilesAction.java similarity index 100% rename from src/main/java/org/jabref/gui/externalfiles/AutoLinkFilesAction.java rename to jabgui/src/main/java/org/jabref/gui/externalfiles/AutoLinkFilesAction.java diff --git a/src/main/java/org/jabref/gui/externalfiles/AutoSetFileLinksUtil.java b/jabgui/src/main/java/org/jabref/gui/externalfiles/AutoSetFileLinksUtil.java similarity index 100% rename from src/main/java/org/jabref/gui/externalfiles/AutoSetFileLinksUtil.java rename to jabgui/src/main/java/org/jabref/gui/externalfiles/AutoSetFileLinksUtil.java diff --git a/src/main/java/org/jabref/gui/externalfiles/ChainedFilters.java b/jabgui/src/main/java/org/jabref/gui/externalfiles/ChainedFilters.java similarity index 100% rename from src/main/java/org/jabref/gui/externalfiles/ChainedFilters.java rename to jabgui/src/main/java/org/jabref/gui/externalfiles/ChainedFilters.java diff --git a/src/main/java/org/jabref/gui/externalfiles/DownloadFullTextAction.java b/jabgui/src/main/java/org/jabref/gui/externalfiles/DownloadFullTextAction.java similarity index 100% rename from src/main/java/org/jabref/gui/externalfiles/DownloadFullTextAction.java rename to jabgui/src/main/java/org/jabref/gui/externalfiles/DownloadFullTextAction.java diff --git a/src/main/java/org/jabref/gui/externalfiles/DuplicateDecisionResult.java b/jabgui/src/main/java/org/jabref/gui/externalfiles/DuplicateDecisionResult.java similarity index 100% rename from src/main/java/org/jabref/gui/externalfiles/DuplicateDecisionResult.java rename to jabgui/src/main/java/org/jabref/gui/externalfiles/DuplicateDecisionResult.java diff --git a/src/main/java/org/jabref/gui/externalfiles/ExternalFilesEntryLinker.java b/jabgui/src/main/java/org/jabref/gui/externalfiles/ExternalFilesEntryLinker.java similarity index 100% rename from src/main/java/org/jabref/gui/externalfiles/ExternalFilesEntryLinker.java rename to jabgui/src/main/java/org/jabref/gui/externalfiles/ExternalFilesEntryLinker.java diff --git a/src/main/java/org/jabref/gui/externalfiles/FileExtensionViewModel.java b/jabgui/src/main/java/org/jabref/gui/externalfiles/FileExtensionViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/externalfiles/FileExtensionViewModel.java rename to jabgui/src/main/java/org/jabref/gui/externalfiles/FileExtensionViewModel.java diff --git a/src/main/java/org/jabref/gui/externalfiles/FileFilterUtils.java b/jabgui/src/main/java/org/jabref/gui/externalfiles/FileFilterUtils.java similarity index 100% rename from src/main/java/org/jabref/gui/externalfiles/FileFilterUtils.java rename to jabgui/src/main/java/org/jabref/gui/externalfiles/FileFilterUtils.java diff --git a/src/main/java/org/jabref/gui/externalfiles/FindUnlinkedFilesAction.java b/jabgui/src/main/java/org/jabref/gui/externalfiles/FindUnlinkedFilesAction.java similarity index 100% rename from src/main/java/org/jabref/gui/externalfiles/FindUnlinkedFilesAction.java rename to jabgui/src/main/java/org/jabref/gui/externalfiles/FindUnlinkedFilesAction.java diff --git a/src/main/java/org/jabref/gui/externalfiles/GitIgnoreFileFilter.java b/jabgui/src/main/java/org/jabref/gui/externalfiles/GitIgnoreFileFilter.java similarity index 100% rename from src/main/java/org/jabref/gui/externalfiles/GitIgnoreFileFilter.java rename to jabgui/src/main/java/org/jabref/gui/externalfiles/GitIgnoreFileFilter.java diff --git a/src/main/java/org/jabref/gui/externalfiles/ImportFilesResultItemViewModel.java b/jabgui/src/main/java/org/jabref/gui/externalfiles/ImportFilesResultItemViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/externalfiles/ImportFilesResultItemViewModel.java rename to jabgui/src/main/java/org/jabref/gui/externalfiles/ImportFilesResultItemViewModel.java diff --git a/src/main/java/org/jabref/gui/externalfiles/ImportHandler.java b/jabgui/src/main/java/org/jabref/gui/externalfiles/ImportHandler.java similarity index 99% rename from src/main/java/org/jabref/gui/externalfiles/ImportHandler.java rename to jabgui/src/main/java/org/jabref/gui/externalfiles/ImportHandler.java index c844aaf9d9e..9e0ad415be5 100644 --- a/src/main/java/org/jabref/gui/externalfiles/ImportHandler.java +++ b/jabgui/src/main/java/org/jabref/gui/externalfiles/ImportHandler.java @@ -6,7 +6,6 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.Optional; @@ -217,7 +216,7 @@ private void addResultToList(Path newFile, boolean success, String logMessage) { private BibEntry createEmptyEntryWithLink(Path file) { BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, file.getFileName().toString()); - fileLinker.linkFilesToEntry(entry, Collections.singletonList(file)); + fileLinker.linkFilesToEntry(entry, List.of(file)); return entry; } diff --git a/src/main/java/org/jabref/gui/externalfiles/PdfMergeDialog.java b/jabgui/src/main/java/org/jabref/gui/externalfiles/PdfMergeDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/externalfiles/PdfMergeDialog.java rename to jabgui/src/main/java/org/jabref/gui/externalfiles/PdfMergeDialog.java diff --git a/src/main/java/org/jabref/gui/externalfiles/UnlinkedFilesCrawler.java b/jabgui/src/main/java/org/jabref/gui/externalfiles/UnlinkedFilesCrawler.java similarity index 100% rename from src/main/java/org/jabref/gui/externalfiles/UnlinkedFilesCrawler.java rename to jabgui/src/main/java/org/jabref/gui/externalfiles/UnlinkedFilesCrawler.java diff --git a/src/main/java/org/jabref/gui/externalfiles/UnlinkedFilesDialogPreferences.java b/jabgui/src/main/java/org/jabref/gui/externalfiles/UnlinkedFilesDialogPreferences.java similarity index 100% rename from src/main/java/org/jabref/gui/externalfiles/UnlinkedFilesDialogPreferences.java rename to jabgui/src/main/java/org/jabref/gui/externalfiles/UnlinkedFilesDialogPreferences.java diff --git a/src/main/java/org/jabref/gui/externalfiles/UnlinkedFilesDialogView.java b/jabgui/src/main/java/org/jabref/gui/externalfiles/UnlinkedFilesDialogView.java similarity index 100% rename from src/main/java/org/jabref/gui/externalfiles/UnlinkedFilesDialogView.java rename to jabgui/src/main/java/org/jabref/gui/externalfiles/UnlinkedFilesDialogView.java diff --git a/src/main/java/org/jabref/gui/externalfiles/UnlinkedFilesDialogViewModel.java b/jabgui/src/main/java/org/jabref/gui/externalfiles/UnlinkedFilesDialogViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/externalfiles/UnlinkedFilesDialogViewModel.java rename to jabgui/src/main/java/org/jabref/gui/externalfiles/UnlinkedFilesDialogViewModel.java diff --git a/src/main/java/org/jabref/gui/externalfiles/UnlinkedPDFFileFilter.java b/jabgui/src/main/java/org/jabref/gui/externalfiles/UnlinkedPDFFileFilter.java similarity index 100% rename from src/main/java/org/jabref/gui/externalfiles/UnlinkedPDFFileFilter.java rename to jabgui/src/main/java/org/jabref/gui/externalfiles/UnlinkedPDFFileFilter.java diff --git a/src/main/java/org/jabref/gui/externalfiletype/CustomExternalFileType.java b/jabgui/src/main/java/org/jabref/gui/externalfiletype/CustomExternalFileType.java similarity index 100% rename from src/main/java/org/jabref/gui/externalfiletype/CustomExternalFileType.java rename to jabgui/src/main/java/org/jabref/gui/externalfiletype/CustomExternalFileType.java diff --git a/src/main/java/org/jabref/gui/externalfiletype/ExternalFileType.java b/jabgui/src/main/java/org/jabref/gui/externalfiletype/ExternalFileType.java similarity index 100% rename from src/main/java/org/jabref/gui/externalfiletype/ExternalFileType.java rename to jabgui/src/main/java/org/jabref/gui/externalfiletype/ExternalFileType.java diff --git a/src/main/java/org/jabref/gui/externalfiletype/ExternalFileTypes.java b/jabgui/src/main/java/org/jabref/gui/externalfiletype/ExternalFileTypes.java similarity index 100% rename from src/main/java/org/jabref/gui/externalfiletype/ExternalFileTypes.java rename to jabgui/src/main/java/org/jabref/gui/externalfiletype/ExternalFileTypes.java diff --git a/src/main/java/org/jabref/gui/externalfiletype/StandardExternalFileType.java b/jabgui/src/main/java/org/jabref/gui/externalfiletype/StandardExternalFileType.java similarity index 100% rename from src/main/java/org/jabref/gui/externalfiletype/StandardExternalFileType.java rename to jabgui/src/main/java/org/jabref/gui/externalfiletype/StandardExternalFileType.java diff --git a/src/main/java/org/jabref/gui/externalfiletype/UnknownExternalFileType.java b/jabgui/src/main/java/org/jabref/gui/externalfiletype/UnknownExternalFileType.java similarity index 100% rename from src/main/java/org/jabref/gui/externalfiletype/UnknownExternalFileType.java rename to jabgui/src/main/java/org/jabref/gui/externalfiletype/UnknownExternalFileType.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/AbstractEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/AbstractEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/AbstractEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/AbstractEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/CitationKeyEditor.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/CitationKeyEditor.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/CitationKeyEditor.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/CitationKeyEditor.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/CitationKeyEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/CitationKeyEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/CitationKeyEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/CitationKeyEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/ContextMenuAddable.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/ContextMenuAddable.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/ContextMenuAddable.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/ContextMenuAddable.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/DateEditor.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/DateEditor.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/DateEditor.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/DateEditor.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/DateEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/DateEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/DateEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/DateEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/EditorTextArea.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/EditorTextArea.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/EditorTextArea.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/EditorTextArea.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/EditorTextField.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/EditorTextField.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/EditorTextField.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/EditorTextField.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/EditorValidator.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/EditorValidator.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/EditorValidator.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/EditorValidator.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/FieldEditorFX.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/FieldEditorFX.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/FieldEditorFX.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/FieldEditorFX.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/FieldEditors.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/FieldEditors.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/FieldEditors.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/FieldEditors.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/FieldNameLabel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/FieldNameLabel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/FieldNameLabel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/FieldNameLabel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/GroupEditor.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/GroupEditor.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/GroupEditor.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/GroupEditor.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/ISSNEditor.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/ISSNEditor.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/ISSNEditor.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/ISSNEditor.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/ISSNEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/ISSNEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/ISSNEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/ISSNEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/JournalEditor.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/JournalEditor.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/JournalEditor.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/JournalEditor.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/JournalEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/JournalEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/JournalEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/JournalEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/JournalInfoOptInDialogHelper.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/JournalInfoOptInDialogHelper.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/JournalInfoOptInDialogHelper.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/JournalInfoOptInDialogHelper.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/KeywordsEditor.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/KeywordsEditor.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/KeywordsEditor.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/KeywordsEditor.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/KeywordsEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/KeywordsEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/KeywordsEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/KeywordsEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/LinkedEntriesEditor.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/LinkedEntriesEditor.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/LinkedEntriesEditor.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/LinkedEntriesEditor.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/LinkedEntriesEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/LinkedEntriesEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/LinkedEntriesEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/LinkedEntriesEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/LinkedFileViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/LinkedFileViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/LinkedFileViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/LinkedFileViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/LinkedFilesEditor.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/LinkedFilesEditor.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/LinkedFilesEditor.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/LinkedFilesEditor.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/LinkedFilesEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/LinkedFilesEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/LinkedFilesEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/LinkedFilesEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/MarkdownEditor.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/MarkdownEditor.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/MarkdownEditor.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/MarkdownEditor.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/OwnerEditor.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/OwnerEditor.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/OwnerEditor.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/OwnerEditor.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/OwnerEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/OwnerEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/OwnerEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/OwnerEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/PersonsEditor.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/PersonsEditor.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/PersonsEditor.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/PersonsEditor.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/PersonsEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/PersonsEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/PersonsEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/PersonsEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/PopOverUtil.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/PopOverUtil.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/PopOverUtil.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/PopOverUtil.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/SimpleEditor.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/SimpleEditor.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/SimpleEditor.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/SimpleEditor.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/SimpleEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/SimpleEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/SimpleEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/SimpleEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/URLUtil.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/URLUtil.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/URLUtil.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/URLUtil.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/UrlEditor.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/UrlEditor.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/UrlEditor.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/UrlEditor.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/UrlEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/UrlEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/UrlEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/UrlEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/WriteMetadataToSinglePdfAction.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/WriteMetadataToSinglePdfAction.java similarity index 85% rename from src/main/java/org/jabref/gui/fieldeditors/WriteMetadataToSinglePdfAction.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/WriteMetadataToSinglePdfAction.java index 36af99d6c5c..ea1aa649c4f 100644 --- a/src/main/java/org/jabref/gui/fieldeditors/WriteMetadataToSinglePdfAction.java +++ b/jabgui/src/main/java/org/jabref/gui/fieldeditors/WriteMetadataToSinglePdfAction.java @@ -4,6 +4,7 @@ import java.nio.file.Path; import java.util.Optional; +import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.TransformerException; import org.jabref.gui.DialogService; @@ -11,6 +12,7 @@ import org.jabref.logic.FilePreferences; import org.jabref.logic.bibtex.FieldPreferences; import org.jabref.logic.exporter.EmbeddedBibFilePdfExporter; +import org.jabref.logic.exporter.SaveException; import org.jabref.logic.journals.JournalAbbreviationRepository; import org.jabref.logic.l10n.Localization; import org.jabref.logic.util.BackgroundTask; @@ -72,12 +74,12 @@ public void execute() { if (file.isEmpty()) { dialogService.notify(Localization.lang("Failed to write metadata, file %1 not found.", file.map(Path::toString).orElse(""))); } else { - try { - writeMetadataToFile(file.get(), entry, databaseContext, abbreviationRepository, bibEntryTypesManager, fieldPreferences, filePreferences, xmpPreferences); - dialogService.notify(Localization.lang("Success! Finished writing metadata.")); - } catch (IOException | TransformerException ex) { - dialogService.notify(Localization.lang("Error while writing metadata. See the error log for details.")); - LOGGER.error("Error while writing metadata to {}", file.map(Path::toString).orElse(""), ex); + try { + writeMetadataToFile(file.get(), entry, databaseContext, abbreviationRepository, bibEntryTypesManager, fieldPreferences, filePreferences, xmpPreferences); + dialogService.notify(Localization.lang("Success! Finished writing metadata.")); + } catch (IOException | TransformerException ex) { + dialogService.notify(Localization.lang("Error while writing metadata. See the error log for details.")); + LOGGER.error("Error while writing metadata to {}", file.map(Path::toString).orElse(""), ex); } } return null; @@ -95,7 +97,7 @@ public static synchronized void writeMetadataToFile(Path file, BibEntryTypesManager bibEntryTypesManager, FieldPreferences fieldPreferences, FilePreferences filePreferences, - XmpPreferences xmpPreferences) throws Exception { + XmpPreferences xmpPreferences) throws IOException, TransformerException, SaveException, ParserConfigurationException { // Similar code can be found at {@link org.jabref.gui.exporter.WriteMetadataToPdfAction.writeMetadataToFile} new XmpUtilWriter(xmpPreferences).writeXmp(file, entry, databaseContext.getDatabase()); diff --git a/src/main/java/org/jabref/gui/fieldeditors/contextmenu/ContextAction.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/contextmenu/ContextAction.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/contextmenu/ContextAction.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/contextmenu/ContextAction.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/contextmenu/ContextMenuFactory.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/contextmenu/ContextMenuFactory.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/contextmenu/ContextMenuFactory.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/contextmenu/ContextMenuFactory.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/contextmenu/DefaultMenu.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/contextmenu/DefaultMenu.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/contextmenu/DefaultMenu.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/contextmenu/DefaultMenu.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/contextmenu/EditorContextAction.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/contextmenu/EditorContextAction.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/contextmenu/EditorContextAction.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/contextmenu/EditorContextAction.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/contextmenu/EditorMenus.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/contextmenu/EditorMenus.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/contextmenu/EditorMenus.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/contextmenu/EditorMenus.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/contextmenu/MultiContextAction.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/contextmenu/MultiContextAction.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/contextmenu/MultiContextAction.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/contextmenu/MultiContextAction.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/contextmenu/ProtectedTermsMenu.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/contextmenu/ProtectedTermsMenu.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/contextmenu/ProtectedTermsMenu.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/contextmenu/ProtectedTermsMenu.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/identifier/BaseIdentifierEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/identifier/BaseIdentifierEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/identifier/BaseIdentifierEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/identifier/BaseIdentifierEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/identifier/DoiIdentifierEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/identifier/DoiIdentifierEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/identifier/DoiIdentifierEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/identifier/DoiIdentifierEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/identifier/EprintIdentifierEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/identifier/EprintIdentifierEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/identifier/EprintIdentifierEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/identifier/EprintIdentifierEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/identifier/ISBNIdentifierEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/identifier/ISBNIdentifierEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/identifier/ISBNIdentifierEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/identifier/ISBNIdentifierEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/identifier/IdentifierEditor.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/identifier/IdentifierEditor.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/identifier/IdentifierEditor.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/identifier/IdentifierEditor.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/journalinfo/JournalInfoView.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/journalinfo/JournalInfoView.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/journalinfo/JournalInfoView.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/journalinfo/JournalInfoView.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/journalinfo/JournalInfoViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/journalinfo/JournalInfoViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/journalinfo/JournalInfoViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/journalinfo/JournalInfoViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/optioneditors/LanguageEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/LanguageEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/optioneditors/LanguageEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/LanguageEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/optioneditors/MonthEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/MonthEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/optioneditors/MonthEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/MonthEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/optioneditors/OptionEditor.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/OptionEditor.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/optioneditors/OptionEditor.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/OptionEditor.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/optioneditors/OptionEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/OptionEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/optioneditors/OptionEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/OptionEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/CustomFieldEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/CustomFieldEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/CustomFieldEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/CustomFieldEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/EditorTypeEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/EditorTypeEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/EditorTypeEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/EditorTypeEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/GenderEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/GenderEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/GenderEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/GenderEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/MapBasedEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/MapBasedEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/MapBasedEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/MapBasedEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/PaginationEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/PaginationEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/PaginationEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/PaginationEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/PatentTypeEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/PatentTypeEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/PatentTypeEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/PatentTypeEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/StringMapBasedEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/StringMapBasedEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/StringMapBasedEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/StringMapBasedEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/TypeEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/TypeEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/TypeEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/TypeEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/YesNoEditorViewModel.java b/jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/YesNoEditorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/YesNoEditorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/fieldeditors/optioneditors/mapbased/YesNoEditorViewModel.java diff --git a/src/main/java/org/jabref/gui/frame/ExternalApplicationsPreferences.java b/jabgui/src/main/java/org/jabref/gui/frame/ExternalApplicationsPreferences.java similarity index 100% rename from src/main/java/org/jabref/gui/frame/ExternalApplicationsPreferences.java rename to jabgui/src/main/java/org/jabref/gui/frame/ExternalApplicationsPreferences.java diff --git a/src/main/java/org/jabref/gui/frame/FileHistoryMenu.java b/jabgui/src/main/java/org/jabref/gui/frame/FileHistoryMenu.java similarity index 100% rename from src/main/java/org/jabref/gui/frame/FileHistoryMenu.java rename to jabgui/src/main/java/org/jabref/gui/frame/FileHistoryMenu.java diff --git a/src/main/java/org/jabref/gui/frame/FrameDndHandler.java b/jabgui/src/main/java/org/jabref/gui/frame/FrameDndHandler.java similarity index 98% rename from src/main/java/org/jabref/gui/frame/FrameDndHandler.java rename to jabgui/src/main/java/org/jabref/gui/frame/FrameDndHandler.java index 424b3512488..fc461577cbb 100644 --- a/src/main/java/org/jabref/gui/frame/FrameDndHandler.java +++ b/jabgui/src/main/java/org/jabref/gui/frame/FrameDndHandler.java @@ -2,7 +2,6 @@ import java.io.File; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.function.Supplier; import java.util.stream.Collectors; @@ -233,7 +232,7 @@ private boolean hasBibFiles(Dragboard dragboard) { private List getBibFiles(Dragboard dragboard) { if (!dragboard.hasFiles()) { - return Collections.emptyList(); + return List.of(); } else { return dragboard.getFiles().stream().map(File::toPath).filter(FileUtil::isBibFile).collect(Collectors.toList()); } @@ -245,7 +244,7 @@ private boolean hasGroups(Dragboard dragboard) { private List getGroups(Dragboard dragboard) { if (!dragboard.hasContent(DragAndDropDataFormats.GROUP)) { - return Collections.emptyList(); + return List.of(); } else { return (List) dragboard.getContent(DragAndDropDataFormats.GROUP); } diff --git a/src/main/java/org/jabref/gui/frame/JabRefFrame.java b/jabgui/src/main/java/org/jabref/gui/frame/JabRefFrame.java similarity index 99% rename from src/main/java/org/jabref/gui/frame/JabRefFrame.java rename to jabgui/src/main/java/org/jabref/gui/frame/JabRefFrame.java index 7f45f8bdc63..70c39640cc5 100644 --- a/src/main/java/org/jabref/gui/frame/JabRefFrame.java +++ b/jabgui/src/main/java/org/jabref/gui/frame/JabRefFrame.java @@ -2,7 +2,6 @@ import java.io.IOException; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -432,7 +431,7 @@ private void initBindings() { // All databases are closed or an unknown tab is selected stateManager.setActiveDatabase(null); stateManager.activeTabProperty().set(Optional.empty()); - stateManager.setSelectedEntries(Collections.emptyList()); + stateManager.setSelectedEntries(List.of()); mainStage.titleProperty().unbind(); mainStage.setTitle(FRAME_TITLE); } diff --git a/src/main/java/org/jabref/gui/frame/JabRefFrameViewModel.java b/jabgui/src/main/java/org/jabref/gui/frame/JabRefFrameViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/frame/JabRefFrameViewModel.java rename to jabgui/src/main/java/org/jabref/gui/frame/JabRefFrameViewModel.java diff --git a/src/main/java/org/jabref/gui/frame/MainMenu.java b/jabgui/src/main/java/org/jabref/gui/frame/MainMenu.java similarity index 100% rename from src/main/java/org/jabref/gui/frame/MainMenu.java rename to jabgui/src/main/java/org/jabref/gui/frame/MainMenu.java diff --git a/src/main/java/org/jabref/gui/frame/MainToolBar.java b/jabgui/src/main/java/org/jabref/gui/frame/MainToolBar.java similarity index 100% rename from src/main/java/org/jabref/gui/frame/MainToolBar.java rename to jabgui/src/main/java/org/jabref/gui/frame/MainToolBar.java diff --git a/src/main/java/org/jabref/gui/frame/OpenConsoleAction.java b/jabgui/src/main/java/org/jabref/gui/frame/OpenConsoleAction.java similarity index 100% rename from src/main/java/org/jabref/gui/frame/OpenConsoleAction.java rename to jabgui/src/main/java/org/jabref/gui/frame/OpenConsoleAction.java diff --git a/src/main/java/org/jabref/gui/frame/ProcessingLibraryDialog.java b/jabgui/src/main/java/org/jabref/gui/frame/ProcessingLibraryDialog.java similarity index 95% rename from src/main/java/org/jabref/gui/frame/ProcessingLibraryDialog.java rename to jabgui/src/main/java/org/jabref/gui/frame/ProcessingLibraryDialog.java index 66958a7bafe..02061dbdc67 100644 --- a/src/main/java/org/jabref/gui/frame/ProcessingLibraryDialog.java +++ b/jabgui/src/main/java/org/jabref/gui/frame/ProcessingLibraryDialog.java @@ -24,7 +24,7 @@ public void showAndWait(List libraryTabs) { if (libraryTabs.stream().anyMatch(LibraryTab::isSaving)) { Task waitForSaveFinished = new Task<>() { @Override - protected Void call() throws Exception { + protected Void call() throws InterruptedException { while (libraryTabs.stream().anyMatch(LibraryTab::isSaving)) { if (isCancelled()) { return null; diff --git a/src/main/java/org/jabref/gui/frame/SendAsEMailAction.java b/jabgui/src/main/java/org/jabref/gui/frame/SendAsEMailAction.java similarity index 98% rename from src/main/java/org/jabref/gui/frame/SendAsEMailAction.java rename to jabgui/src/main/java/org/jabref/gui/frame/SendAsEMailAction.java index 194fc4c4a20..f459878e40d 100644 --- a/src/main/java/org/jabref/gui/frame/SendAsEMailAction.java +++ b/jabgui/src/main/java/org/jabref/gui/frame/SendAsEMailAction.java @@ -65,7 +65,7 @@ public void execute() { .executeWith(taskExecutor); } - private String sendEmail() throws Exception { + private String sendEmail() throws URISyntaxException, IOException { if (!Desktop.isDesktopSupported() || stateManager.getActiveDatabase().isEmpty()) { return Localization.lang("Error creating email"); } diff --git a/src/main/java/org/jabref/gui/frame/SendAsKindleEmailAction.java b/jabgui/src/main/java/org/jabref/gui/frame/SendAsKindleEmailAction.java similarity index 100% rename from src/main/java/org/jabref/gui/frame/SendAsKindleEmailAction.java rename to jabgui/src/main/java/org/jabref/gui/frame/SendAsKindleEmailAction.java diff --git a/src/main/java/org/jabref/gui/frame/SendAsStandardEmailAction.java b/jabgui/src/main/java/org/jabref/gui/frame/SendAsStandardEmailAction.java similarity index 100% rename from src/main/java/org/jabref/gui/frame/SendAsStandardEmailAction.java rename to jabgui/src/main/java/org/jabref/gui/frame/SendAsStandardEmailAction.java diff --git a/src/main/java/org/jabref/gui/frame/SidePanePreferences.java b/jabgui/src/main/java/org/jabref/gui/frame/SidePanePreferences.java similarity index 100% rename from src/main/java/org/jabref/gui/frame/SidePanePreferences.java rename to jabgui/src/main/java/org/jabref/gui/frame/SidePanePreferences.java diff --git a/src/main/java/org/jabref/gui/frame/UiMessageHandler.java b/jabgui/src/main/java/org/jabref/gui/frame/UiMessageHandler.java similarity index 100% rename from src/main/java/org/jabref/gui/frame/UiMessageHandler.java rename to jabgui/src/main/java/org/jabref/gui/frame/UiMessageHandler.java diff --git a/src/main/java/org/jabref/gui/groups/GroupColorPicker.java b/jabgui/src/main/java/org/jabref/gui/groups/GroupColorPicker.java similarity index 100% rename from src/main/java/org/jabref/gui/groups/GroupColorPicker.java rename to jabgui/src/main/java/org/jabref/gui/groups/GroupColorPicker.java diff --git a/src/main/java/org/jabref/gui/groups/GroupDescriptions.java b/jabgui/src/main/java/org/jabref/gui/groups/GroupDescriptions.java similarity index 100% rename from src/main/java/org/jabref/gui/groups/GroupDescriptions.java rename to jabgui/src/main/java/org/jabref/gui/groups/GroupDescriptions.java diff --git a/src/main/java/org/jabref/gui/groups/GroupDialogHeader.java b/jabgui/src/main/java/org/jabref/gui/groups/GroupDialogHeader.java similarity index 100% rename from src/main/java/org/jabref/gui/groups/GroupDialogHeader.java rename to jabgui/src/main/java/org/jabref/gui/groups/GroupDialogHeader.java diff --git a/src/main/java/org/jabref/gui/groups/GroupDialogView.java b/jabgui/src/main/java/org/jabref/gui/groups/GroupDialogView.java similarity index 100% rename from src/main/java/org/jabref/gui/groups/GroupDialogView.java rename to jabgui/src/main/java/org/jabref/gui/groups/GroupDialogView.java diff --git a/src/main/java/org/jabref/gui/groups/GroupDialogViewModel.java b/jabgui/src/main/java/org/jabref/gui/groups/GroupDialogViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/groups/GroupDialogViewModel.java rename to jabgui/src/main/java/org/jabref/gui/groups/GroupDialogViewModel.java diff --git a/src/main/java/org/jabref/gui/groups/GroupModeViewModel.java b/jabgui/src/main/java/org/jabref/gui/groups/GroupModeViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/groups/GroupModeViewModel.java rename to jabgui/src/main/java/org/jabref/gui/groups/GroupModeViewModel.java diff --git a/src/main/java/org/jabref/gui/groups/GroupNodeViewModel.java b/jabgui/src/main/java/org/jabref/gui/groups/GroupNodeViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/groups/GroupNodeViewModel.java rename to jabgui/src/main/java/org/jabref/gui/groups/GroupNodeViewModel.java diff --git a/src/main/java/org/jabref/gui/groups/GroupTreeNodeViewModel.java b/jabgui/src/main/java/org/jabref/gui/groups/GroupTreeNodeViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/groups/GroupTreeNodeViewModel.java rename to jabgui/src/main/java/org/jabref/gui/groups/GroupTreeNodeViewModel.java diff --git a/src/main/java/org/jabref/gui/groups/GroupTreeView.java b/jabgui/src/main/java/org/jabref/gui/groups/GroupTreeView.java similarity index 99% rename from src/main/java/org/jabref/gui/groups/GroupTreeView.java rename to jabgui/src/main/java/org/jabref/gui/groups/GroupTreeView.java index d28b037b530..38735b12e7c 100644 --- a/src/main/java/org/jabref/gui/groups/GroupTreeView.java +++ b/jabgui/src/main/java/org/jabref/gui/groups/GroupTreeView.java @@ -7,7 +7,6 @@ import java.text.DecimalFormat; import java.time.Duration; import java.util.ArrayList; -import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Optional; @@ -409,7 +408,7 @@ private void handleOnDragDropped(TreeTableRow row, GroupNode dialogService, taskExecutor); List files = dragboard.getFiles().stream().map(File::toPath).collect(Collectors.toList()); - stateManager.setSelectedGroups(database, Collections.singletonList(row.getItem().getGroupNode())); + stateManager.setSelectedGroups(database, List.of(row.getItem().getGroupNode())); importHandler.importFilesInBackground(files, database, preferences.getFilePreferences(), event.getTransferMode()) .executeWith(taskExecutor); success = true; diff --git a/src/main/java/org/jabref/gui/groups/GroupTreeViewModel.java b/jabgui/src/main/java/org/jabref/gui/groups/GroupTreeViewModel.java similarity index 99% rename from src/main/java/org/jabref/gui/groups/GroupTreeViewModel.java rename to jabgui/src/main/java/org/jabref/gui/groups/GroupTreeViewModel.java index 48def6325c8..c744909d56e 100644 --- a/src/main/java/org/jabref/gui/groups/GroupTreeViewModel.java +++ b/jabgui/src/main/java/org/jabref/gui/groups/GroupTreeViewModel.java @@ -1,7 +1,6 @@ package org.jabref.gui.groups; import java.util.ArrayList; -import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Objects; @@ -163,7 +162,7 @@ private void onActiveDatabaseChanged(Optional newDatabase) { rootGroup.setValue(newRoot); if (stateManager.getSelectedGroups(newDatabase.get()).isEmpty()) { - stateManager.setSelectedGroups(newDatabase.get(), Collections.singletonList(newRoot.getGroupNode())); + stateManager.setSelectedGroups(newDatabase.get(), List.of(newRoot.getGroupNode())); } selectedGroups.setAll( stateManager.getSelectedGroups(newDatabase.get()).stream() diff --git a/src/main/java/org/jabref/gui/groups/GroupViewMode.java b/jabgui/src/main/java/org/jabref/gui/groups/GroupViewMode.java similarity index 100% rename from src/main/java/org/jabref/gui/groups/GroupViewMode.java rename to jabgui/src/main/java/org/jabref/gui/groups/GroupViewMode.java diff --git a/src/main/java/org/jabref/gui/groups/GroupsPreferences.java b/jabgui/src/main/java/org/jabref/gui/groups/GroupsPreferences.java similarity index 100% rename from src/main/java/org/jabref/gui/groups/GroupsPreferences.java rename to jabgui/src/main/java/org/jabref/gui/groups/GroupsPreferences.java diff --git a/src/main/java/org/jabref/gui/groups/MoveGroupChange.java b/jabgui/src/main/java/org/jabref/gui/groups/MoveGroupChange.java similarity index 100% rename from src/main/java/org/jabref/gui/groups/MoveGroupChange.java rename to jabgui/src/main/java/org/jabref/gui/groups/MoveGroupChange.java diff --git a/src/main/java/org/jabref/gui/groups/UndoableAddOrRemoveGroup.java b/jabgui/src/main/java/org/jabref/gui/groups/UndoableAddOrRemoveGroup.java similarity index 100% rename from src/main/java/org/jabref/gui/groups/UndoableAddOrRemoveGroup.java rename to jabgui/src/main/java/org/jabref/gui/groups/UndoableAddOrRemoveGroup.java diff --git a/src/main/java/org/jabref/gui/groups/UndoableChangeEntriesOfGroup.java b/jabgui/src/main/java/org/jabref/gui/groups/UndoableChangeEntriesOfGroup.java similarity index 100% rename from src/main/java/org/jabref/gui/groups/UndoableChangeEntriesOfGroup.java rename to jabgui/src/main/java/org/jabref/gui/groups/UndoableChangeEntriesOfGroup.java diff --git a/src/main/java/org/jabref/gui/groups/UndoableModifySubtree.java b/jabgui/src/main/java/org/jabref/gui/groups/UndoableModifySubtree.java similarity index 100% rename from src/main/java/org/jabref/gui/groups/UndoableModifySubtree.java rename to jabgui/src/main/java/org/jabref/gui/groups/UndoableModifySubtree.java diff --git a/src/main/java/org/jabref/gui/groups/UndoableMoveGroup.java b/jabgui/src/main/java/org/jabref/gui/groups/UndoableMoveGroup.java similarity index 100% rename from src/main/java/org/jabref/gui/groups/UndoableMoveGroup.java rename to jabgui/src/main/java/org/jabref/gui/groups/UndoableMoveGroup.java diff --git a/src/main/java/org/jabref/gui/help/AboutAction.java b/jabgui/src/main/java/org/jabref/gui/help/AboutAction.java similarity index 100% rename from src/main/java/org/jabref/gui/help/AboutAction.java rename to jabgui/src/main/java/org/jabref/gui/help/AboutAction.java diff --git a/src/main/java/org/jabref/gui/help/AboutDialogView.java b/jabgui/src/main/java/org/jabref/gui/help/AboutDialogView.java similarity index 100% rename from src/main/java/org/jabref/gui/help/AboutDialogView.java rename to jabgui/src/main/java/org/jabref/gui/help/AboutDialogView.java diff --git a/src/main/java/org/jabref/gui/help/AboutDialogViewModel.java b/jabgui/src/main/java/org/jabref/gui/help/AboutDialogViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/help/AboutDialogViewModel.java rename to jabgui/src/main/java/org/jabref/gui/help/AboutDialogViewModel.java diff --git a/src/main/java/org/jabref/gui/help/ErrorConsoleAction.java b/jabgui/src/main/java/org/jabref/gui/help/ErrorConsoleAction.java similarity index 100% rename from src/main/java/org/jabref/gui/help/ErrorConsoleAction.java rename to jabgui/src/main/java/org/jabref/gui/help/ErrorConsoleAction.java diff --git a/src/main/java/org/jabref/gui/help/HelpAction.java b/jabgui/src/main/java/org/jabref/gui/help/HelpAction.java similarity index 100% rename from src/main/java/org/jabref/gui/help/HelpAction.java rename to jabgui/src/main/java/org/jabref/gui/help/HelpAction.java diff --git a/src/main/java/org/jabref/gui/help/NewVersionDialog.java b/jabgui/src/main/java/org/jabref/gui/help/NewVersionDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/help/NewVersionDialog.java rename to jabgui/src/main/java/org/jabref/gui/help/NewVersionDialog.java diff --git a/src/main/java/org/jabref/gui/help/SearchForUpdateAction.java b/jabgui/src/main/java/org/jabref/gui/help/SearchForUpdateAction.java similarity index 100% rename from src/main/java/org/jabref/gui/help/SearchForUpdateAction.java rename to jabgui/src/main/java/org/jabref/gui/help/SearchForUpdateAction.java diff --git a/src/main/java/org/jabref/gui/help/VersionWorker.java b/jabgui/src/main/java/org/jabref/gui/help/VersionWorker.java similarity index 100% rename from src/main/java/org/jabref/gui/help/VersionWorker.java rename to jabgui/src/main/java/org/jabref/gui/help/VersionWorker.java diff --git a/src/main/java/org/jabref/gui/icon/IconTheme.java b/jabgui/src/main/java/org/jabref/gui/icon/IconTheme.java similarity index 100% rename from src/main/java/org/jabref/gui/icon/IconTheme.java rename to jabgui/src/main/java/org/jabref/gui/icon/IconTheme.java diff --git a/src/main/java/org/jabref/gui/icon/InternalMaterialDesignIcon.java b/jabgui/src/main/java/org/jabref/gui/icon/InternalMaterialDesignIcon.java similarity index 100% rename from src/main/java/org/jabref/gui/icon/InternalMaterialDesignIcon.java rename to jabgui/src/main/java/org/jabref/gui/icon/InternalMaterialDesignIcon.java diff --git a/src/main/java/org/jabref/gui/icon/JabRefIcon.java b/jabgui/src/main/java/org/jabref/gui/icon/JabRefIcon.java similarity index 100% rename from src/main/java/org/jabref/gui/icon/JabRefIcon.java rename to jabgui/src/main/java/org/jabref/gui/icon/JabRefIcon.java diff --git a/src/main/java/org/jabref/gui/icon/JabRefIconView.java b/jabgui/src/main/java/org/jabref/gui/icon/JabRefIconView.java similarity index 100% rename from src/main/java/org/jabref/gui/icon/JabRefIconView.java rename to jabgui/src/main/java/org/jabref/gui/icon/JabRefIconView.java diff --git a/src/main/java/org/jabref/gui/icon/JabRefIkonHandler.java b/jabgui/src/main/java/org/jabref/gui/icon/JabRefIkonHandler.java similarity index 100% rename from src/main/java/org/jabref/gui/icon/JabRefIkonHandler.java rename to jabgui/src/main/java/org/jabref/gui/icon/JabRefIkonHandler.java diff --git a/src/main/java/org/jabref/gui/icon/JabRefMaterialDesignIcon.java b/jabgui/src/main/java/org/jabref/gui/icon/JabRefMaterialDesignIcon.java similarity index 100% rename from src/main/java/org/jabref/gui/icon/JabRefMaterialDesignIcon.java rename to jabgui/src/main/java/org/jabref/gui/icon/JabRefMaterialDesignIcon.java diff --git a/src/main/java/org/jabref/gui/icon/JabrefIconProvider.java b/jabgui/src/main/java/org/jabref/gui/icon/JabrefIconProvider.java similarity index 100% rename from src/main/java/org/jabref/gui/icon/JabrefIconProvider.java rename to jabgui/src/main/java/org/jabref/gui/icon/JabrefIconProvider.java diff --git a/src/main/java/org/jabref/gui/importer/BibEntryTypePrefsAndFileViewModel.java b/jabgui/src/main/java/org/jabref/gui/importer/BibEntryTypePrefsAndFileViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/importer/BibEntryTypePrefsAndFileViewModel.java rename to jabgui/src/main/java/org/jabref/gui/importer/BibEntryTypePrefsAndFileViewModel.java diff --git a/src/main/java/org/jabref/gui/importer/GenerateEntryFromIdAction.java b/jabgui/src/main/java/org/jabref/gui/importer/GenerateEntryFromIdAction.java similarity index 100% rename from src/main/java/org/jabref/gui/importer/GenerateEntryFromIdAction.java rename to jabgui/src/main/java/org/jabref/gui/importer/GenerateEntryFromIdAction.java diff --git a/src/main/java/org/jabref/gui/importer/GenerateEntryFromIdDialog.java b/jabgui/src/main/java/org/jabref/gui/importer/GenerateEntryFromIdDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/importer/GenerateEntryFromIdDialog.java rename to jabgui/src/main/java/org/jabref/gui/importer/GenerateEntryFromIdDialog.java diff --git a/src/main/java/org/jabref/gui/importer/GrobidUseDialogHelper.java b/jabgui/src/main/java/org/jabref/gui/importer/GrobidUseDialogHelper.java similarity index 100% rename from src/main/java/org/jabref/gui/importer/GrobidUseDialogHelper.java rename to jabgui/src/main/java/org/jabref/gui/importer/GrobidUseDialogHelper.java diff --git a/src/main/java/org/jabref/gui/importer/ImportCommand.java b/jabgui/src/main/java/org/jabref/gui/importer/ImportCommand.java similarity index 98% rename from src/main/java/org/jabref/gui/importer/ImportCommand.java rename to jabgui/src/main/java/org/jabref/gui/importer/ImportCommand.java index 20bb888006c..f7f811440f7 100644 --- a/src/main/java/org/jabref/gui/importer/ImportCommand.java +++ b/jabgui/src/main/java/org/jabref/gui/importer/ImportCommand.java @@ -4,7 +4,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.SortedSet; @@ -108,7 +107,7 @@ private void importSingleFile(Path file, SortedSet importers, FileChoo Optional format = FileFilterConverter.getImporter(selectedExtensionFilter, importers); BackgroundTask task = BackgroundTask.wrap( - () -> doImport(Collections.singletonList(file), format.orElse(null))); + () -> doImport(List.of(file), format.orElse(null))); if (importMethod == ImportMethod.AS_NEW) { task.onSuccess(parserResult -> { diff --git a/src/main/java/org/jabref/gui/importer/ImportCustomEntryTypesDialog.java b/jabgui/src/main/java/org/jabref/gui/importer/ImportCustomEntryTypesDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/importer/ImportCustomEntryTypesDialog.java rename to jabgui/src/main/java/org/jabref/gui/importer/ImportCustomEntryTypesDialog.java diff --git a/src/main/java/org/jabref/gui/importer/ImportCustomEntryTypesDialogViewModel.java b/jabgui/src/main/java/org/jabref/gui/importer/ImportCustomEntryTypesDialogViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/importer/ImportCustomEntryTypesDialogViewModel.java rename to jabgui/src/main/java/org/jabref/gui/importer/ImportCustomEntryTypesDialogViewModel.java diff --git a/src/main/java/org/jabref/gui/importer/ImportEntriesDialog.java b/jabgui/src/main/java/org/jabref/gui/importer/ImportEntriesDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/importer/ImportEntriesDialog.java rename to jabgui/src/main/java/org/jabref/gui/importer/ImportEntriesDialog.java diff --git a/src/main/java/org/jabref/gui/importer/ImportEntriesViewModel.java b/jabgui/src/main/java/org/jabref/gui/importer/ImportEntriesViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/importer/ImportEntriesViewModel.java rename to jabgui/src/main/java/org/jabref/gui/importer/ImportEntriesViewModel.java diff --git a/src/main/java/org/jabref/gui/importer/ImporterViewModel.java b/jabgui/src/main/java/org/jabref/gui/importer/ImporterViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/importer/ImporterViewModel.java rename to jabgui/src/main/java/org/jabref/gui/importer/ImporterViewModel.java diff --git a/src/main/java/org/jabref/gui/importer/NewDatabaseAction.java b/jabgui/src/main/java/org/jabref/gui/importer/NewDatabaseAction.java similarity index 100% rename from src/main/java/org/jabref/gui/importer/NewDatabaseAction.java rename to jabgui/src/main/java/org/jabref/gui/importer/NewDatabaseAction.java diff --git a/src/main/java/org/jabref/gui/importer/NewEntryAction.java b/jabgui/src/main/java/org/jabref/gui/importer/NewEntryAction.java similarity index 100% rename from src/main/java/org/jabref/gui/importer/NewEntryAction.java rename to jabgui/src/main/java/org/jabref/gui/importer/NewEntryAction.java diff --git a/src/main/java/org/jabref/gui/importer/ParserResultWarningDialog.java b/jabgui/src/main/java/org/jabref/gui/importer/ParserResultWarningDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/importer/ParserResultWarningDialog.java rename to jabgui/src/main/java/org/jabref/gui/importer/ParserResultWarningDialog.java diff --git a/src/main/java/org/jabref/gui/importer/actions/CheckForNewEntryTypesAction.java b/jabgui/src/main/java/org/jabref/gui/importer/actions/CheckForNewEntryTypesAction.java similarity index 100% rename from src/main/java/org/jabref/gui/importer/actions/CheckForNewEntryTypesAction.java rename to jabgui/src/main/java/org/jabref/gui/importer/actions/CheckForNewEntryTypesAction.java diff --git a/src/main/java/org/jabref/gui/importer/actions/GUIPostOpenAction.java b/jabgui/src/main/java/org/jabref/gui/importer/actions/GUIPostOpenAction.java similarity index 100% rename from src/main/java/org/jabref/gui/importer/actions/GUIPostOpenAction.java rename to jabgui/src/main/java/org/jabref/gui/importer/actions/GUIPostOpenAction.java diff --git a/src/main/java/org/jabref/gui/importer/actions/MergeReviewIntoCommentAction.java b/jabgui/src/main/java/org/jabref/gui/importer/actions/MergeReviewIntoCommentAction.java similarity index 100% rename from src/main/java/org/jabref/gui/importer/actions/MergeReviewIntoCommentAction.java rename to jabgui/src/main/java/org/jabref/gui/importer/actions/MergeReviewIntoCommentAction.java diff --git a/src/main/java/org/jabref/gui/importer/actions/MergeReviewIntoCommentConfirmationDialog.java b/jabgui/src/main/java/org/jabref/gui/importer/actions/MergeReviewIntoCommentConfirmationDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/importer/actions/MergeReviewIntoCommentConfirmationDialog.java rename to jabgui/src/main/java/org/jabref/gui/importer/actions/MergeReviewIntoCommentConfirmationDialog.java diff --git a/src/main/java/org/jabref/gui/importer/actions/OpenDatabaseAction.java b/jabgui/src/main/java/org/jabref/gui/importer/actions/OpenDatabaseAction.java similarity index 98% rename from src/main/java/org/jabref/gui/importer/actions/OpenDatabaseAction.java rename to jabgui/src/main/java/org/jabref/gui/importer/actions/OpenDatabaseAction.java index 0d2e99b23f7..f2b8a3bd17c 100644 --- a/src/main/java/org/jabref/gui/importer/actions/OpenDatabaseAction.java +++ b/jabgui/src/main/java/org/jabref/gui/importer/actions/OpenDatabaseAction.java @@ -242,7 +242,7 @@ private void openTheFile(Path file) { tabContainer.addTab(newTab, true); } - private ParserResult loadDatabase(Path file) throws Exception { + private ParserResult loadDatabase(Path file) throws NotASharedDatabaseException, SQLException, InvalidDBMSConnectionPropertiesException, DatabaseNotSupportedException { Path fileToLoad = file.toAbsolutePath(); dialogService.notify(Localization.lang("Opening") + ": '" + file + "'"); diff --git a/src/main/java/org/jabref/gui/importer/actions/SearchGroupsMigrationAction.java b/jabgui/src/main/java/org/jabref/gui/importer/actions/SearchGroupsMigrationAction.java similarity index 100% rename from src/main/java/org/jabref/gui/importer/actions/SearchGroupsMigrationAction.java rename to jabgui/src/main/java/org/jabref/gui/importer/actions/SearchGroupsMigrationAction.java diff --git a/src/main/java/org/jabref/gui/importer/fetcher/LookupIdentifierAction.java b/jabgui/src/main/java/org/jabref/gui/importer/fetcher/LookupIdentifierAction.java similarity index 100% rename from src/main/java/org/jabref/gui/importer/fetcher/LookupIdentifierAction.java rename to jabgui/src/main/java/org/jabref/gui/importer/fetcher/LookupIdentifierAction.java diff --git a/src/main/java/org/jabref/gui/importer/fetcher/WebSearchPaneView.java b/jabgui/src/main/java/org/jabref/gui/importer/fetcher/WebSearchPaneView.java similarity index 100% rename from src/main/java/org/jabref/gui/importer/fetcher/WebSearchPaneView.java rename to jabgui/src/main/java/org/jabref/gui/importer/fetcher/WebSearchPaneView.java diff --git a/src/main/java/org/jabref/gui/importer/fetcher/WebSearchPaneViewModel.java b/jabgui/src/main/java/org/jabref/gui/importer/fetcher/WebSearchPaneViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/importer/fetcher/WebSearchPaneViewModel.java rename to jabgui/src/main/java/org/jabref/gui/importer/fetcher/WebSearchPaneViewModel.java diff --git a/src/main/java/org/jabref/gui/integrity/BibLogSettingsPane.java b/jabgui/src/main/java/org/jabref/gui/integrity/BibLogSettingsPane.java similarity index 100% rename from src/main/java/org/jabref/gui/integrity/BibLogSettingsPane.java rename to jabgui/src/main/java/org/jabref/gui/integrity/BibLogSettingsPane.java diff --git a/src/main/java/org/jabref/gui/integrity/BibLogSettingsViewModel.java b/jabgui/src/main/java/org/jabref/gui/integrity/BibLogSettingsViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/integrity/BibLogSettingsViewModel.java rename to jabgui/src/main/java/org/jabref/gui/integrity/BibLogSettingsViewModel.java diff --git a/src/main/java/org/jabref/gui/integrity/IntegrityCheckAction.java b/jabgui/src/main/java/org/jabref/gui/integrity/IntegrityCheckAction.java similarity index 100% rename from src/main/java/org/jabref/gui/integrity/IntegrityCheckAction.java rename to jabgui/src/main/java/org/jabref/gui/integrity/IntegrityCheckAction.java diff --git a/src/main/java/org/jabref/gui/integrity/IntegrityCheckDialog.java b/jabgui/src/main/java/org/jabref/gui/integrity/IntegrityCheckDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/integrity/IntegrityCheckDialog.java rename to jabgui/src/main/java/org/jabref/gui/integrity/IntegrityCheckDialog.java diff --git a/src/main/java/org/jabref/gui/integrity/IntegrityCheckDialogViewModel.java b/jabgui/src/main/java/org/jabref/gui/integrity/IntegrityCheckDialogViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/integrity/IntegrityCheckDialogViewModel.java rename to jabgui/src/main/java/org/jabref/gui/integrity/IntegrityCheckDialogViewModel.java diff --git a/src/main/java/org/jabref/gui/journals/AbbreviateAction.java b/jabgui/src/main/java/org/jabref/gui/journals/AbbreviateAction.java similarity index 100% rename from src/main/java/org/jabref/gui/journals/AbbreviateAction.java rename to jabgui/src/main/java/org/jabref/gui/journals/AbbreviateAction.java diff --git a/src/main/java/org/jabref/gui/journals/AbbreviationType.java b/jabgui/src/main/java/org/jabref/gui/journals/AbbreviationType.java similarity index 100% rename from src/main/java/org/jabref/gui/journals/AbbreviationType.java rename to jabgui/src/main/java/org/jabref/gui/journals/AbbreviationType.java diff --git a/src/main/java/org/jabref/gui/journals/UndoableAbbreviator.java b/jabgui/src/main/java/org/jabref/gui/journals/UndoableAbbreviator.java similarity index 100% rename from src/main/java/org/jabref/gui/journals/UndoableAbbreviator.java rename to jabgui/src/main/java/org/jabref/gui/journals/UndoableAbbreviator.java diff --git a/src/main/java/org/jabref/gui/journals/UndoableUnabbreviator.java b/jabgui/src/main/java/org/jabref/gui/journals/UndoableUnabbreviator.java similarity index 100% rename from src/main/java/org/jabref/gui/journals/UndoableUnabbreviator.java rename to jabgui/src/main/java/org/jabref/gui/journals/UndoableUnabbreviator.java diff --git a/src/main/java/org/jabref/gui/keyboard/CodeAreaKeyBindings.java b/jabgui/src/main/java/org/jabref/gui/keyboard/CodeAreaKeyBindings.java similarity index 100% rename from src/main/java/org/jabref/gui/keyboard/CodeAreaKeyBindings.java rename to jabgui/src/main/java/org/jabref/gui/keyboard/CodeAreaKeyBindings.java diff --git a/src/main/java/org/jabref/gui/keyboard/KeyBinding.java b/jabgui/src/main/java/org/jabref/gui/keyboard/KeyBinding.java similarity index 100% rename from src/main/java/org/jabref/gui/keyboard/KeyBinding.java rename to jabgui/src/main/java/org/jabref/gui/keyboard/KeyBinding.java diff --git a/src/main/java/org/jabref/gui/keyboard/KeyBindingCategory.java b/jabgui/src/main/java/org/jabref/gui/keyboard/KeyBindingCategory.java similarity index 100% rename from src/main/java/org/jabref/gui/keyboard/KeyBindingCategory.java rename to jabgui/src/main/java/org/jabref/gui/keyboard/KeyBindingCategory.java diff --git a/src/main/java/org/jabref/gui/keyboard/KeyBindingRepository.java b/jabgui/src/main/java/org/jabref/gui/keyboard/KeyBindingRepository.java similarity index 98% rename from src/main/java/org/jabref/gui/keyboard/KeyBindingRepository.java rename to jabgui/src/main/java/org/jabref/gui/keyboard/KeyBindingRepository.java index 82183dd74be..ce6fece4fda 100644 --- a/src/main/java/org/jabref/gui/keyboard/KeyBindingRepository.java +++ b/jabgui/src/main/java/org/jabref/gui/keyboard/KeyBindingRepository.java @@ -2,7 +2,6 @@ import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Optional; @@ -32,7 +31,7 @@ public class KeyBindingRepository { private final MapProperty bindings; public KeyBindingRepository() { - this(Collections.emptyList(), Collections.emptyList()); + this(List.of(), List.of()); } public KeyBindingRepository(SortedMap bindings) { diff --git a/src/main/java/org/jabref/gui/keyboard/TextInputKeyBindings.java b/jabgui/src/main/java/org/jabref/gui/keyboard/TextInputKeyBindings.java similarity index 100% rename from src/main/java/org/jabref/gui/keyboard/TextInputKeyBindings.java rename to jabgui/src/main/java/org/jabref/gui/keyboard/TextInputKeyBindings.java diff --git a/src/main/java/org/jabref/logic/l10n/LocalizationLocator.java b/jabgui/src/main/java/org/jabref/gui/l10n/LocalizationLocator.java similarity index 78% rename from src/main/java/org/jabref/logic/l10n/LocalizationLocator.java rename to jabgui/src/main/java/org/jabref/gui/l10n/LocalizationLocator.java index 90034e8440a..3d9776901c7 100644 --- a/src/main/java/org/jabref/logic/l10n/LocalizationLocator.java +++ b/jabgui/src/main/java/org/jabref/gui/l10n/LocalizationLocator.java @@ -1,7 +1,9 @@ -package org.jabref.logic.l10n; +package org.jabref.gui.l10n; import java.util.ResourceBundle; +import org.jabref.logic.l10n.Localization; + import com.airhacks.afterburner.views.ResourceLocator; public class LocalizationLocator implements ResourceLocator { diff --git a/src/main/java/org/jabref/gui/libraryproperties/AbstractPropertiesTabView.java b/jabgui/src/main/java/org/jabref/gui/libraryproperties/AbstractPropertiesTabView.java similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/AbstractPropertiesTabView.java rename to jabgui/src/main/java/org/jabref/gui/libraryproperties/AbstractPropertiesTabView.java diff --git a/src/main/java/org/jabref/gui/libraryproperties/LibraryPropertiesAction.java b/jabgui/src/main/java/org/jabref/gui/libraryproperties/LibraryPropertiesAction.java similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/LibraryPropertiesAction.java rename to jabgui/src/main/java/org/jabref/gui/libraryproperties/LibraryPropertiesAction.java diff --git a/src/main/java/org/jabref/gui/libraryproperties/LibraryPropertiesView.java b/jabgui/src/main/java/org/jabref/gui/libraryproperties/LibraryPropertiesView.java similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/LibraryPropertiesView.java rename to jabgui/src/main/java/org/jabref/gui/libraryproperties/LibraryPropertiesView.java diff --git a/src/main/java/org/jabref/gui/libraryproperties/LibraryPropertiesViewModel.java b/jabgui/src/main/java/org/jabref/gui/libraryproperties/LibraryPropertiesViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/LibraryPropertiesViewModel.java rename to jabgui/src/main/java/org/jabref/gui/libraryproperties/LibraryPropertiesViewModel.java diff --git a/src/main/java/org/jabref/gui/libraryproperties/PropertiesTab.java b/jabgui/src/main/java/org/jabref/gui/libraryproperties/PropertiesTab.java similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/PropertiesTab.java rename to jabgui/src/main/java/org/jabref/gui/libraryproperties/PropertiesTab.java diff --git a/src/main/java/org/jabref/gui/libraryproperties/PropertiesTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/libraryproperties/PropertiesTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/PropertiesTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/libraryproperties/PropertiesTabViewModel.java diff --git a/src/main/java/org/jabref/gui/libraryproperties/constants/ConstantsItemModel.java b/jabgui/src/main/java/org/jabref/gui/libraryproperties/constants/ConstantsItemModel.java similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/constants/ConstantsItemModel.java rename to jabgui/src/main/java/org/jabref/gui/libraryproperties/constants/ConstantsItemModel.java diff --git a/src/main/java/org/jabref/gui/libraryproperties/constants/ConstantsPropertiesView.java b/jabgui/src/main/java/org/jabref/gui/libraryproperties/constants/ConstantsPropertiesView.java similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/constants/ConstantsPropertiesView.java rename to jabgui/src/main/java/org/jabref/gui/libraryproperties/constants/ConstantsPropertiesView.java diff --git a/src/main/java/org/jabref/gui/libraryproperties/constants/ConstantsPropertiesViewModel.java b/jabgui/src/main/java/org/jabref/gui/libraryproperties/constants/ConstantsPropertiesViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/constants/ConstantsPropertiesViewModel.java rename to jabgui/src/main/java/org/jabref/gui/libraryproperties/constants/ConstantsPropertiesViewModel.java diff --git a/src/main/java/org/jabref/gui/libraryproperties/contentselectors/ContentSelectorView.java b/jabgui/src/main/java/org/jabref/gui/libraryproperties/contentselectors/ContentSelectorView.java similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/contentselectors/ContentSelectorView.java rename to jabgui/src/main/java/org/jabref/gui/libraryproperties/contentselectors/ContentSelectorView.java diff --git a/src/main/java/org/jabref/gui/libraryproperties/contentselectors/ContentSelectorViewModel.java b/jabgui/src/main/java/org/jabref/gui/libraryproperties/contentselectors/ContentSelectorViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/contentselectors/ContentSelectorViewModel.java rename to jabgui/src/main/java/org/jabref/gui/libraryproperties/contentselectors/ContentSelectorViewModel.java diff --git a/src/main/java/org/jabref/gui/libraryproperties/general/GeneralPropertiesView.java b/jabgui/src/main/java/org/jabref/gui/libraryproperties/general/GeneralPropertiesView.java similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/general/GeneralPropertiesView.java rename to jabgui/src/main/java/org/jabref/gui/libraryproperties/general/GeneralPropertiesView.java diff --git a/src/main/java/org/jabref/gui/libraryproperties/general/GeneralPropertiesViewModel.java b/jabgui/src/main/java/org/jabref/gui/libraryproperties/general/GeneralPropertiesViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/general/GeneralPropertiesViewModel.java rename to jabgui/src/main/java/org/jabref/gui/libraryproperties/general/GeneralPropertiesViewModel.java diff --git a/src/main/java/org/jabref/gui/libraryproperties/keypattern/KeyPatternPropertiesView.java b/jabgui/src/main/java/org/jabref/gui/libraryproperties/keypattern/KeyPatternPropertiesView.java similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/keypattern/KeyPatternPropertiesView.java rename to jabgui/src/main/java/org/jabref/gui/libraryproperties/keypattern/KeyPatternPropertiesView.java diff --git a/src/main/java/org/jabref/gui/libraryproperties/keypattern/KeyPatternPropertiesViewModel.java b/jabgui/src/main/java/org/jabref/gui/libraryproperties/keypattern/KeyPatternPropertiesViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/keypattern/KeyPatternPropertiesViewModel.java rename to jabgui/src/main/java/org/jabref/gui/libraryproperties/keypattern/KeyPatternPropertiesViewModel.java diff --git a/src/main/java/org/jabref/gui/libraryproperties/preamble/PreamblePropertiesView.java b/jabgui/src/main/java/org/jabref/gui/libraryproperties/preamble/PreamblePropertiesView.java similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/preamble/PreamblePropertiesView.java rename to jabgui/src/main/java/org/jabref/gui/libraryproperties/preamble/PreamblePropertiesView.java diff --git a/src/main/java/org/jabref/gui/libraryproperties/preamble/PreamblePropertiesViewModel.java b/jabgui/src/main/java/org/jabref/gui/libraryproperties/preamble/PreamblePropertiesViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/preamble/PreamblePropertiesViewModel.java rename to jabgui/src/main/java/org/jabref/gui/libraryproperties/preamble/PreamblePropertiesViewModel.java diff --git a/src/main/java/org/jabref/gui/libraryproperties/saving/SavingPropertiesView.java b/jabgui/src/main/java/org/jabref/gui/libraryproperties/saving/SavingPropertiesView.java similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/saving/SavingPropertiesView.java rename to jabgui/src/main/java/org/jabref/gui/libraryproperties/saving/SavingPropertiesView.java diff --git a/src/main/java/org/jabref/gui/libraryproperties/saving/SavingPropertiesViewModel.java b/jabgui/src/main/java/org/jabref/gui/libraryproperties/saving/SavingPropertiesViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/saving/SavingPropertiesViewModel.java rename to jabgui/src/main/java/org/jabref/gui/libraryproperties/saving/SavingPropertiesViewModel.java diff --git a/src/main/java/org/jabref/gui/linkedfile/AttachFileAction.java b/jabgui/src/main/java/org/jabref/gui/linkedfile/AttachFileAction.java similarity index 100% rename from src/main/java/org/jabref/gui/linkedfile/AttachFileAction.java rename to jabgui/src/main/java/org/jabref/gui/linkedfile/AttachFileAction.java diff --git a/src/main/java/org/jabref/gui/linkedfile/AttachFileFromURLAction.java b/jabgui/src/main/java/org/jabref/gui/linkedfile/AttachFileFromURLAction.java similarity index 100% rename from src/main/java/org/jabref/gui/linkedfile/AttachFileFromURLAction.java rename to jabgui/src/main/java/org/jabref/gui/linkedfile/AttachFileFromURLAction.java diff --git a/src/main/java/org/jabref/gui/linkedfile/DeleteFileAction.java b/jabgui/src/main/java/org/jabref/gui/linkedfile/DeleteFileAction.java similarity index 100% rename from src/main/java/org/jabref/gui/linkedfile/DeleteFileAction.java rename to jabgui/src/main/java/org/jabref/gui/linkedfile/DeleteFileAction.java diff --git a/src/main/java/org/jabref/gui/linkedfile/DownloadLinkedFileAction.java b/jabgui/src/main/java/org/jabref/gui/linkedfile/DownloadLinkedFileAction.java similarity index 99% rename from src/main/java/org/jabref/gui/linkedfile/DownloadLinkedFileAction.java rename to jabgui/src/main/java/org/jabref/gui/linkedfile/DownloadLinkedFileAction.java index 47402708ad4..871eaee5e1d 100644 --- a/src/main/java/org/jabref/gui/linkedfile/DownloadLinkedFileAction.java +++ b/jabgui/src/main/java/org/jabref/gui/linkedfile/DownloadLinkedFileAction.java @@ -178,7 +178,7 @@ private void onSuccess(Path targetDirectory, Path downloadedFile) { databaseContext.getFileDirectories(filePreferences), externalApplicationsPreferences); if (newLinkedFile.getDescription().isEmpty() && !linkedFile.getDescription().isEmpty()) { - newLinkedFile.setDescription((linkedFile.getDescription())); + newLinkedFile.setDescription(linkedFile.getDescription()); } if (linkedFile.getSourceUrl().isEmpty() && LinkedFile.isOnlineLink(linkedFile.getLink()) && filePreferences.shouldKeepDownloadUrl()) { newLinkedFile.setSourceURL(linkedFile.getLink()); @@ -300,7 +300,7 @@ public FileDownloadTask(URL source, Path destination) { } @Override - public Path call() throws Exception { + public Path call() throws FetcherException, IOException { URLDownload download = new URLDownload(source); try (ProgressInputStream inputStream = download.asInputStream()) { EasyBind.subscribe( diff --git a/src/main/java/org/jabref/gui/linkedfile/LinkedFileEditDialog.java b/jabgui/src/main/java/org/jabref/gui/linkedfile/LinkedFileEditDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/linkedfile/LinkedFileEditDialog.java rename to jabgui/src/main/java/org/jabref/gui/linkedfile/LinkedFileEditDialog.java diff --git a/src/main/java/org/jabref/gui/linkedfile/LinkedFileEditDialogViewModel.java b/jabgui/src/main/java/org/jabref/gui/linkedfile/LinkedFileEditDialogViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/linkedfile/LinkedFileEditDialogViewModel.java rename to jabgui/src/main/java/org/jabref/gui/linkedfile/LinkedFileEditDialogViewModel.java diff --git a/src/main/java/org/jabref/gui/linkedfile/RedownloadMissingFilesAction.java b/jabgui/src/main/java/org/jabref/gui/linkedfile/RedownloadMissingFilesAction.java similarity index 100% rename from src/main/java/org/jabref/gui/linkedfile/RedownloadMissingFilesAction.java rename to jabgui/src/main/java/org/jabref/gui/linkedfile/RedownloadMissingFilesAction.java diff --git a/src/main/java/org/jabref/gui/logging/GuiWriter.java b/jabgui/src/main/java/org/jabref/gui/logging/GuiWriter.java similarity index 72% rename from src/main/java/org/jabref/gui/logging/GuiWriter.java rename to jabgui/src/main/java/org/jabref/gui/logging/GuiWriter.java index 4dff37ad4f3..941485989a0 100644 --- a/src/main/java/org/jabref/gui/logging/GuiWriter.java +++ b/jabgui/src/main/java/org/jabref/gui/logging/GuiWriter.java @@ -1,12 +1,9 @@ package org.jabref.gui.logging; import java.util.Collection; -import java.util.Collections; import java.util.EnumSet; import java.util.Map; -import org.jabref.logic.logging.LogMessages; - import org.tinylog.core.LogEntry; import org.tinylog.core.LogEntryValue; import org.tinylog.writers.AbstractFormatPatternWriter; @@ -18,7 +15,7 @@ public GuiWriter(final Map properties) { } public GuiWriter() { - this(Collections.emptyMap()); + this(Map.of()); } @Override @@ -27,15 +24,15 @@ public Collection getRequiredLogEntryValues() { } @Override - public void write(LogEntry logEntry) throws Exception { + public void write(LogEntry logEntry) { LogMessages.getInstance().add(logEntry); } @Override - public void flush() throws Exception { + public void flush() { } @Override - public void close() throws Exception { + public void close() { } } diff --git a/src/main/java/org/jabref/logic/logging/LogMessages.java b/jabgui/src/main/java/org/jabref/gui/logging/LogMessages.java similarity index 96% rename from src/main/java/org/jabref/logic/logging/LogMessages.java rename to jabgui/src/main/java/org/jabref/gui/logging/LogMessages.java index 102c9c39db7..4e7db3d7113 100644 --- a/src/main/java/org/jabref/logic/logging/LogMessages.java +++ b/jabgui/src/main/java/org/jabref/gui/logging/LogMessages.java @@ -1,4 +1,4 @@ -package org.jabref.logic.logging; +package org.jabref.gui.logging; import javafx.collections.FXCollections; import javafx.collections.ObservableList; diff --git a/src/main/java/org/jabref/gui/maintable/BibEntryTableViewModel.java b/jabgui/src/main/java/org/jabref/gui/maintable/BibEntryTableViewModel.java similarity index 98% rename from src/main/java/org/jabref/gui/maintable/BibEntryTableViewModel.java rename to jabgui/src/main/java/org/jabref/gui/maintable/BibEntryTableViewModel.java index 613a102d9df..073ad411956 100644 --- a/src/main/java/org/jabref/gui/maintable/BibEntryTableViewModel.java +++ b/jabgui/src/main/java/org/jabref/gui/maintable/BibEntryTableViewModel.java @@ -2,7 +2,6 @@ import java.nio.file.Path; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -60,7 +59,7 @@ public BibEntryTableViewModel(BibEntry entry, BibDatabaseContext bibDatabaseCont this.bibDatabaseContext = bibDatabaseContext; this.fieldValueFormatter = fieldValueFormatter; - this.linkedFiles = getField(StandardField.FILE).mapOpt(FileFieldParser::parse).orElseOpt(Collections.emptyList()); + this.linkedFiles = getField(StandardField.FILE).mapOpt(FileFieldParser::parse).orElseOpt(List.of()); this.linkedIdentifiers = createLinkedIdentifiersBinding(entry); this.matchedGroups = createMatchedGroupsBinding(bibDatabaseContext, entry); } @@ -95,7 +94,7 @@ private static Binding> createMatchedGroupsBinding(BibDataba .map(GroupTreeNode::getGroup) .filter(Predicate.not(Predicate.isEqual(groupTreeNode.getGroup()))) .collect(Collectors.toList())) - .orElse(Collections.emptyList()))); + .orElse(List.of()))); } public OptionalBinding getField(Field field) { diff --git a/src/main/java/org/jabref/gui/maintable/CellFactory.java b/jabgui/src/main/java/org/jabref/gui/maintable/CellFactory.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/CellFactory.java rename to jabgui/src/main/java/org/jabref/gui/maintable/CellFactory.java diff --git a/src/main/java/org/jabref/gui/maintable/ColumnPreferences.java b/jabgui/src/main/java/org/jabref/gui/maintable/ColumnPreferences.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/ColumnPreferences.java rename to jabgui/src/main/java/org/jabref/gui/maintable/ColumnPreferences.java diff --git a/src/main/java/org/jabref/gui/maintable/ExtractReferencesAction.java b/jabgui/src/main/java/org/jabref/gui/maintable/ExtractReferencesAction.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/ExtractReferencesAction.java rename to jabgui/src/main/java/org/jabref/gui/maintable/ExtractReferencesAction.java diff --git a/src/main/java/org/jabref/gui/maintable/MainTable.java b/jabgui/src/main/java/org/jabref/gui/maintable/MainTable.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/MainTable.java rename to jabgui/src/main/java/org/jabref/gui/maintable/MainTable.java diff --git a/src/main/java/org/jabref/gui/maintable/MainTableColumnFactory.java b/jabgui/src/main/java/org/jabref/gui/maintable/MainTableColumnFactory.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/MainTableColumnFactory.java rename to jabgui/src/main/java/org/jabref/gui/maintable/MainTableColumnFactory.java diff --git a/src/main/java/org/jabref/gui/maintable/MainTableColumnModel.java b/jabgui/src/main/java/org/jabref/gui/maintable/MainTableColumnModel.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/MainTableColumnModel.java rename to jabgui/src/main/java/org/jabref/gui/maintable/MainTableColumnModel.java diff --git a/src/main/java/org/jabref/gui/maintable/MainTableDataModel.java b/jabgui/src/main/java/org/jabref/gui/maintable/MainTableDataModel.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/MainTableDataModel.java rename to jabgui/src/main/java/org/jabref/gui/maintable/MainTableDataModel.java diff --git a/src/main/java/org/jabref/gui/maintable/MainTableFieldValueFormatter.java b/jabgui/src/main/java/org/jabref/gui/maintable/MainTableFieldValueFormatter.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/MainTableFieldValueFormatter.java rename to jabgui/src/main/java/org/jabref/gui/maintable/MainTableFieldValueFormatter.java diff --git a/src/main/java/org/jabref/gui/maintable/MainTableHeaderContextMenu.java b/jabgui/src/main/java/org/jabref/gui/maintable/MainTableHeaderContextMenu.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/MainTableHeaderContextMenu.java rename to jabgui/src/main/java/org/jabref/gui/maintable/MainTableHeaderContextMenu.java diff --git a/src/main/java/org/jabref/gui/maintable/MainTablePreferences.java b/jabgui/src/main/java/org/jabref/gui/maintable/MainTablePreferences.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/MainTablePreferences.java rename to jabgui/src/main/java/org/jabref/gui/maintable/MainTablePreferences.java diff --git a/src/main/java/org/jabref/gui/maintable/MainTableTooltip.java b/jabgui/src/main/java/org/jabref/gui/maintable/MainTableTooltip.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/MainTableTooltip.java rename to jabgui/src/main/java/org/jabref/gui/maintable/MainTableTooltip.java diff --git a/src/main/java/org/jabref/gui/maintable/NameDisplayPreferences.java b/jabgui/src/main/java/org/jabref/gui/maintable/NameDisplayPreferences.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/NameDisplayPreferences.java rename to jabgui/src/main/java/org/jabref/gui/maintable/NameDisplayPreferences.java diff --git a/src/main/java/org/jabref/gui/maintable/NewLibraryFromPdfAction.java b/jabgui/src/main/java/org/jabref/gui/maintable/NewLibraryFromPdfAction.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/NewLibraryFromPdfAction.java rename to jabgui/src/main/java/org/jabref/gui/maintable/NewLibraryFromPdfAction.java diff --git a/src/main/java/org/jabref/gui/maintable/NewLibraryFromPdfActionOffline.java b/jabgui/src/main/java/org/jabref/gui/maintable/NewLibraryFromPdfActionOffline.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/NewLibraryFromPdfActionOffline.java rename to jabgui/src/main/java/org/jabref/gui/maintable/NewLibraryFromPdfActionOffline.java diff --git a/src/main/java/org/jabref/gui/maintable/NewLibraryFromPdfActionOnline.java b/jabgui/src/main/java/org/jabref/gui/maintable/NewLibraryFromPdfActionOnline.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/NewLibraryFromPdfActionOnline.java rename to jabgui/src/main/java/org/jabref/gui/maintable/NewLibraryFromPdfActionOnline.java diff --git a/src/main/java/org/jabref/gui/maintable/OpenExternalFileAction.java b/jabgui/src/main/java/org/jabref/gui/maintable/OpenExternalFileAction.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/OpenExternalFileAction.java rename to jabgui/src/main/java/org/jabref/gui/maintable/OpenExternalFileAction.java diff --git a/src/main/java/org/jabref/gui/maintable/OpenFolderAction.java b/jabgui/src/main/java/org/jabref/gui/maintable/OpenFolderAction.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/OpenFolderAction.java rename to jabgui/src/main/java/org/jabref/gui/maintable/OpenFolderAction.java diff --git a/src/main/java/org/jabref/gui/maintable/OpenUrlAction.java b/jabgui/src/main/java/org/jabref/gui/maintable/OpenUrlAction.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/OpenUrlAction.java rename to jabgui/src/main/java/org/jabref/gui/maintable/OpenUrlAction.java diff --git a/src/main/java/org/jabref/gui/maintable/PersistenceVisualStateTable.java b/jabgui/src/main/java/org/jabref/gui/maintable/PersistenceVisualStateTable.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/PersistenceVisualStateTable.java rename to jabgui/src/main/java/org/jabref/gui/maintable/PersistenceVisualStateTable.java diff --git a/src/main/java/org/jabref/gui/maintable/RightClickMenu.java b/jabgui/src/main/java/org/jabref/gui/maintable/RightClickMenu.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/RightClickMenu.java rename to jabgui/src/main/java/org/jabref/gui/maintable/RightClickMenu.java diff --git a/src/main/java/org/jabref/gui/maintable/SearchShortScienceAction.java b/jabgui/src/main/java/org/jabref/gui/maintable/SearchShortScienceAction.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/SearchShortScienceAction.java rename to jabgui/src/main/java/org/jabref/gui/maintable/SearchShortScienceAction.java diff --git a/src/main/java/org/jabref/gui/maintable/SmartConstrainedResizePolicy.java b/jabgui/src/main/java/org/jabref/gui/maintable/SmartConstrainedResizePolicy.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/SmartConstrainedResizePolicy.java rename to jabgui/src/main/java/org/jabref/gui/maintable/SmartConstrainedResizePolicy.java diff --git a/src/main/java/org/jabref/gui/maintable/columns/FieldColumn.java b/jabgui/src/main/java/org/jabref/gui/maintable/columns/FieldColumn.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/columns/FieldColumn.java rename to jabgui/src/main/java/org/jabref/gui/maintable/columns/FieldColumn.java diff --git a/src/main/java/org/jabref/gui/maintable/columns/FileColumn.java b/jabgui/src/main/java/org/jabref/gui/maintable/columns/FileColumn.java similarity index 98% rename from src/main/java/org/jabref/gui/maintable/columns/FileColumn.java rename to jabgui/src/main/java/org/jabref/gui/maintable/columns/FileColumn.java index 7fd4541826d..19fde3c24d9 100644 --- a/src/main/java/org/jabref/gui/maintable/columns/FileColumn.java +++ b/jabgui/src/main/java/org/jabref/gui/maintable/columns/FileColumn.java @@ -123,7 +123,7 @@ public FileColumn(MainTableColumnModel model, menuItem.setOnAction(e -> linkedFileViewModel.open()); contextMenu.getItems().add(menuItem); } - contextMenu.show(((Node) event.getSource()), event.getScreenX(), event.getScreenY()); + contextMenu.show((Node) event.getSource(), event.getScreenX(), event.getScreenY()); } } }) diff --git a/src/main/java/org/jabref/gui/maintable/columns/LibraryColumn.java b/jabgui/src/main/java/org/jabref/gui/maintable/columns/LibraryColumn.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/columns/LibraryColumn.java rename to jabgui/src/main/java/org/jabref/gui/maintable/columns/LibraryColumn.java diff --git a/src/main/java/org/jabref/gui/maintable/columns/LinkedIdentifierColumn.java b/jabgui/src/main/java/org/jabref/gui/maintable/columns/LinkedIdentifierColumn.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/columns/LinkedIdentifierColumn.java rename to jabgui/src/main/java/org/jabref/gui/maintable/columns/LinkedIdentifierColumn.java diff --git a/src/main/java/org/jabref/gui/maintable/columns/MainTableColumn.java b/jabgui/src/main/java/org/jabref/gui/maintable/columns/MainTableColumn.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/columns/MainTableColumn.java rename to jabgui/src/main/java/org/jabref/gui/maintable/columns/MainTableColumn.java diff --git a/src/main/java/org/jabref/gui/maintable/columns/SpecialFieldColumn.java b/jabgui/src/main/java/org/jabref/gui/maintable/columns/SpecialFieldColumn.java similarity index 100% rename from src/main/java/org/jabref/gui/maintable/columns/SpecialFieldColumn.java rename to jabgui/src/main/java/org/jabref/gui/maintable/columns/SpecialFieldColumn.java diff --git a/src/main/java/org/jabref/gui/menus/ChangeEntryTypeAction.java b/jabgui/src/main/java/org/jabref/gui/menus/ChangeEntryTypeAction.java similarity index 100% rename from src/main/java/org/jabref/gui/menus/ChangeEntryTypeAction.java rename to jabgui/src/main/java/org/jabref/gui/menus/ChangeEntryTypeAction.java diff --git a/src/main/java/org/jabref/gui/menus/ChangeEntryTypeMenu.java b/jabgui/src/main/java/org/jabref/gui/menus/ChangeEntryTypeMenu.java similarity index 100% rename from src/main/java/org/jabref/gui/menus/ChangeEntryTypeMenu.java rename to jabgui/src/main/java/org/jabref/gui/menus/ChangeEntryTypeMenu.java diff --git a/src/main/java/org/jabref/gui/mergeentries/DiffHighlighting.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/DiffHighlighting.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/DiffHighlighting.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/DiffHighlighting.java diff --git a/src/main/java/org/jabref/gui/mergeentries/DiffHighlightingEllipsingTextFlow.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/DiffHighlightingEllipsingTextFlow.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/DiffHighlightingEllipsingTextFlow.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/DiffHighlightingEllipsingTextFlow.java diff --git a/src/main/java/org/jabref/gui/mergeentries/DiffMode.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/DiffMode.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/DiffMode.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/DiffMode.java diff --git a/src/main/java/org/jabref/gui/mergeentries/EntriesMergeResult.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/EntriesMergeResult.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/EntriesMergeResult.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/EntriesMergeResult.java diff --git a/src/main/java/org/jabref/gui/mergeentries/FetchAndMergeEntry.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/FetchAndMergeEntry.java similarity index 72% rename from src/main/java/org/jabref/gui/mergeentries/FetchAndMergeEntry.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/FetchAndMergeEntry.java index c14e0770c15..638b1406645 100644 --- a/src/main/java/org/jabref/gui/mergeentries/FetchAndMergeEntry.java +++ b/jabgui/src/main/java/org/jabref/gui/mergeentries/FetchAndMergeEntry.java @@ -1,7 +1,6 @@ package org.jabref.gui.mergeentries; import java.util.Arrays; -import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Optional; @@ -67,7 +66,7 @@ public void fetchAndMerge(BibEntry entry) { } public void fetchAndMerge(BibEntry entry, Field field) { - fetchAndMerge(entry, Collections.singletonList(field)); + fetchAndMerge(entry, List.of(field)); } public void fetchAndMerge(BibEntry entry, List fields) { @@ -75,30 +74,28 @@ public void fetchAndMerge(BibEntry entry, List fields) { Optional fieldContent = entry.getField(field); if (fieldContent.isPresent()) { Optional fetcher = WebFetchers.getIdBasedFetcherForField(field, preferences.getImportFormatPreferences()); - if (fetcher.isPresent()) { - BackgroundTask.wrap(() -> fetcher.get().performSearchById(fieldContent.get())) - .onSuccess(fetchedEntry -> { - ImportCleanup cleanup = ImportCleanup.targeting(bibDatabaseContext.getMode(), preferences.getFieldPreferences()); - String type = field.getDisplayName(); - if (fetchedEntry.isPresent()) { - cleanup.doPostCleanup(fetchedEntry.get()); - showMergeDialog(entry, fetchedEntry.get(), fetcher.get()); - } else { - dialogService.notify(Localization.lang("Cannot get info based on given %0: %1", type, fieldContent.get())); - } - }) - .onFailure(exception -> { - LOGGER.error("Error while fetching bibliographic information", exception); - if (exception instanceof FetcherClientException) { - dialogService.showInformationDialogAndWait(Localization.lang("Fetching information using %0", fetcher.get().getName()), Localization.lang("No data was found for the identifier")); - } else if (exception instanceof FetcherServerException) { - dialogService.showInformationDialogAndWait(Localization.lang("Fetching information using %0", fetcher.get().getName()), Localization.lang("Server not available")); - } else { - dialogService.showInformationDialogAndWait(Localization.lang("Fetching information using %0", fetcher.get().getName()), Localization.lang("Error occurred %0", exception.getMessage())); - } - }) - .executeWith(taskExecutor); - } + fetcher.ifPresent(idBasedFetcher -> BackgroundTask.wrap(() -> idBasedFetcher.performSearchById(fieldContent.get())) + .onSuccess(fetchedEntry -> { + ImportCleanup cleanup = ImportCleanup.targeting(bibDatabaseContext.getMode(), preferences.getFieldPreferences()); + String type = field.getDisplayName(); + if (fetchedEntry.isPresent()) { + cleanup.doPostCleanup(fetchedEntry.get()); + showMergeDialog(entry, fetchedEntry.get(), idBasedFetcher); + } else { + dialogService.notify(Localization.lang("Cannot get info based on given %0: %1", type, fieldContent.get())); + } + }) + .onFailure(exception -> { + LOGGER.error("Error while fetching bibliographic information", exception); + if (exception instanceof FetcherClientException) { + dialogService.showInformationDialogAndWait(Localization.lang("Fetching information using %0", idBasedFetcher.getName()), Localization.lang("No data was found for the identifier")); + } else if (exception instanceof FetcherServerException) { + dialogService.showInformationDialogAndWait(Localization.lang("Fetching information using %0", idBasedFetcher.getName()), Localization.lang("Server not available")); + } else { + dialogService.showInformationDialogAndWait(Localization.lang("Fetching information using %0", idBasedFetcher.getName()), Localization.lang("Error occurred %0", exception.getMessage())); + } + }) + .executeWith(taskExecutor)); } else { dialogService.notify(Localization.lang("No %0 found", field.getDisplayName())); } diff --git a/src/main/java/org/jabref/gui/mergeentries/MergeDialogPreferences.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/MergeDialogPreferences.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/MergeDialogPreferences.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/MergeDialogPreferences.java diff --git a/src/main/java/org/jabref/gui/mergeentries/MergeEntriesAction.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/MergeEntriesAction.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/MergeEntriesAction.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/MergeEntriesAction.java diff --git a/src/main/java/org/jabref/gui/mergeentries/MergeEntriesDialog.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/MergeEntriesDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/MergeEntriesDialog.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/MergeEntriesDialog.java diff --git a/src/main/java/org/jabref/gui/mergeentries/MergeResult.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/MergeResult.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/MergeResult.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/MergeResult.java diff --git a/src/main/java/org/jabref/gui/mergeentries/MergeTwoEntriesAction.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/MergeTwoEntriesAction.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/MergeTwoEntriesAction.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/MergeTwoEntriesAction.java diff --git a/src/main/java/org/jabref/gui/mergeentries/MergeWithFetchedEntryAction.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/MergeWithFetchedEntryAction.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/MergeWithFetchedEntryAction.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/MergeWithFetchedEntryAction.java diff --git a/src/main/java/org/jabref/gui/mergeentries/MultiMergeEntriesView.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/MultiMergeEntriesView.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/MultiMergeEntriesView.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/MultiMergeEntriesView.java diff --git a/src/main/java/org/jabref/gui/mergeentries/MultiMergeEntriesViewModel.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/MultiMergeEntriesViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/MultiMergeEntriesViewModel.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/MultiMergeEntriesViewModel.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/DiffMethod.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/DiffMethod.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/DiffMethod.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/DiffMethod.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/FieldRowView.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/FieldRowView.java similarity index 99% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/FieldRowView.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/FieldRowView.java index e74420f9fa4..db760b107c8 100644 --- a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/FieldRowView.java +++ b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/FieldRowView.java @@ -64,14 +64,14 @@ public FieldRowView(Field field, BibEntry leftEntry, BibEntry rightEntry, BibEnt toggleMergeUnmergeButton.setCanMerge(!viewModel.hasEqualLeftAndRightValues()); fieldNameCell.addSideButton(toggleMergeUnmergeButton); - EasyBind.listen(toggleMergeUnmergeButton.fieldStateProperty(), ((observableValue, old, fieldState) -> { + EasyBind.listen(toggleMergeUnmergeButton.fieldStateProperty(), (observableValue, old, fieldState) -> { LOGGER.debug("Field merge state is {} for field {}", fieldState, field); if (fieldState == ToggleMergeUnmergeButton.FieldState.MERGED) { viewModel.mergeFields(); } else { viewModel.unmergeFields(); } - })); + }); } toggleGroup.getToggles().addAll(leftValueCell, rightValueCell); diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/FieldRowViewModel.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/FieldRowViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/FieldRowViewModel.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/FieldRowViewModel.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/GroupDiffMode.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/GroupDiffMode.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/GroupDiffMode.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/GroupDiffMode.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/PersonsNameFieldRowView.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/PersonsNameFieldRowView.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/PersonsNameFieldRowView.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/PersonsNameFieldRowView.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/ShowDiffConfig.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/ShowDiffConfig.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/ShowDiffConfig.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/ShowDiffConfig.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/ThreeWayMergeHeaderView.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/ThreeWayMergeHeaderView.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/ThreeWayMergeHeaderView.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/ThreeWayMergeHeaderView.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/ThreeWayMergeView.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/ThreeWayMergeView.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/ThreeWayMergeView.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/ThreeWayMergeView.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/ThreeWayMergeViewModel.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/ThreeWayMergeViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/ThreeWayMergeViewModel.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/ThreeWayMergeViewModel.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/CopyFieldValueCommand.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/CopyFieldValueCommand.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/CopyFieldValueCommand.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/CopyFieldValueCommand.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/FieldNameCell.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/FieldNameCell.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/FieldNameCell.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/FieldNameCell.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/FieldValueCell.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/FieldValueCell.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/FieldValueCell.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/FieldValueCell.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/FieldValueCellViewModel.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/FieldValueCellViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/FieldValueCellViewModel.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/FieldValueCellViewModel.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/HeaderCell.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/HeaderCell.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/HeaderCell.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/HeaderCell.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/MergedFieldCell.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/MergedFieldCell.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/MergedFieldCell.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/MergedFieldCell.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/OpenExternalLinkAction.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/OpenExternalLinkAction.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/OpenExternalLinkAction.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/OpenExternalLinkAction.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/ThreeWayMergeCell.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/ThreeWayMergeCell.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/ThreeWayMergeCell.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/ThreeWayMergeCell.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/ThreeWayMergeCellViewModel.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/ThreeWayMergeCellViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/ThreeWayMergeCellViewModel.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/ThreeWayMergeCellViewModel.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/sidebuttons/InfoButton.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/sidebuttons/InfoButton.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/sidebuttons/InfoButton.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/sidebuttons/InfoButton.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/sidebuttons/ToggleMergeUnmergeButton.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/sidebuttons/ToggleMergeUnmergeButton.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/sidebuttons/ToggleMergeUnmergeButton.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/cell/sidebuttons/ToggleMergeUnmergeButton.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/diffhighlighter/DiffHighlighter.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/diffhighlighter/DiffHighlighter.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/diffhighlighter/DiffHighlighter.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/diffhighlighter/DiffHighlighter.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/diffhighlighter/SplitDiffHighlighter.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/diffhighlighter/SplitDiffHighlighter.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/diffhighlighter/SplitDiffHighlighter.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/diffhighlighter/SplitDiffHighlighter.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/diffhighlighter/UnifiedDiffHighlighter.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/diffhighlighter/UnifiedDiffHighlighter.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/diffhighlighter/UnifiedDiffHighlighter.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/diffhighlighter/UnifiedDiffHighlighter.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/CommentMerger.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/CommentMerger.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/CommentMerger.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/CommentMerger.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/FieldMerger.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/FieldMerger.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/FieldMerger.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/FieldMerger.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/FieldMergerFactory.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/FieldMergerFactory.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/FieldMergerFactory.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/FieldMergerFactory.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/FileMerger.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/FileMerger.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/FileMerger.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/FileMerger.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/GroupMerger.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/GroupMerger.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/GroupMerger.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/GroupMerger.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/KeywordMerger.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/KeywordMerger.java similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/KeywordMerger.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/KeywordMerger.java diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/toolbar/ThreeWayMergeToolbar.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/toolbar/ThreeWayMergeToolbar.java similarity index 99% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/toolbar/ThreeWayMergeToolbar.java rename to jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/toolbar/ThreeWayMergeToolbar.java index 2afea487bf3..0d5ee36aec6 100644 --- a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/toolbar/ThreeWayMergeToolbar.java +++ b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/toolbar/ThreeWayMergeToolbar.java @@ -103,13 +103,13 @@ public DiffView fromString(String string) { highlightWordsRadioButton.disableProperty().bind(notShowDiffProperty()); highlightCharactersRadioButtons.disableProperty().bind(notShowDiffProperty()); - diffHighlightingMethodToggleGroup.selectedToggleProperty().addListener((observable -> { + diffHighlightingMethodToggleGroup.selectedToggleProperty().addListener(observable -> { if (diffHighlightingMethodToggleGroup.getSelectedToggle().equals(highlightCharactersRadioButtons)) { diffHighlightingMethod.set(BasicDiffMethod.CHARS); } else { diffHighlightingMethod.set(BasicDiffMethod.WORDS); } - })); + }); onlyShowChangedFieldsCheck.selectedProperty().bindBidirectional(preferences.getMergeDialogPreferences().mergeShowChangedFieldOnlyProperty()); onlyShowChangedFields.bind(onlyShowChangedFieldsCheck.selectedProperty()); diff --git a/src/main/java/org/jabref/gui/openoffice/AdvancedCiteDialogView.java b/jabgui/src/main/java/org/jabref/gui/openoffice/AdvancedCiteDialogView.java similarity index 100% rename from src/main/java/org/jabref/gui/openoffice/AdvancedCiteDialogView.java rename to jabgui/src/main/java/org/jabref/gui/openoffice/AdvancedCiteDialogView.java diff --git a/src/main/java/org/jabref/gui/openoffice/AdvancedCiteDialogViewModel.java b/jabgui/src/main/java/org/jabref/gui/openoffice/AdvancedCiteDialogViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/openoffice/AdvancedCiteDialogViewModel.java rename to jabgui/src/main/java/org/jabref/gui/openoffice/AdvancedCiteDialogViewModel.java diff --git a/src/main/java/org/jabref/gui/openoffice/Bootstrap.java b/jabgui/src/main/java/org/jabref/gui/openoffice/Bootstrap.java similarity index 96% rename from src/main/java/org/jabref/gui/openoffice/Bootstrap.java rename to jabgui/src/main/java/org/jabref/gui/openoffice/Bootstrap.java index 9d9061364c8..df4294df7eb 100644 --- a/src/main/java/org/jabref/gui/openoffice/Bootstrap.java +++ b/jabgui/src/main/java/org/jabref/gui/openoffice/Bootstrap.java @@ -40,12 +40,15 @@ import com.sun.star.comp.loader.JavaLoader; import com.sun.star.comp.servicemanager.ServiceManager; import com.sun.star.connection.NoConnectException; +import com.sun.star.container.ElementExistException; import com.sun.star.container.XSet; import com.sun.star.lang.XInitialization; import com.sun.star.lang.XMultiComponentFactory; import com.sun.star.lang.XMultiServiceFactory; import com.sun.star.lib.util.NativeLibraryLoader; +import com.sun.star.loader.CannotActivateFactoryException; import com.sun.star.loader.XImplementationLoader; +import com.sun.star.uno.Exception; import com.sun.star.uno.UnoRuntime; import com.sun.star.uno.XComponentContext; @@ -74,7 +77,7 @@ public class Bootstrap { private static final Random RANDOM_PIPE_NAME = new Random(); private static boolean M_LOADED_JUH = false; - private static void insertBasicFactories(XSet xSet, XImplementationLoader xImpLoader) throws Exception { + private static void insertBasicFactories(XSet xSet, XImplementationLoader xImpLoader) throws CannotActivateFactoryException, ElementExistException { // insert the factory of the loader xSet.insert(xImpLoader.activate("com.sun.star.comp.loader.JavaLoader", null, null, null)); @@ -177,7 +180,7 @@ public static XMultiServiceFactory createSimpleServiceManager() throws Exception * cppuhelper/defaultBootstrap_InitialComponentContext(). * @throws Exception if things go awry. */ - public static XComponentContext defaultBootstrap_InitialComponentContext() throws Exception { + public static XComponentContext defaultBootstrap_InitialComponentContext() { return defaultBootstrap_InitialComponentContext((String) null, (Map) null); } @@ -189,7 +192,7 @@ public static XComponentContext defaultBootstrap_InitialComponentContext() throw * @return a freshly bootstrapped component context. * @throws Exception if things go awry. */ - public static XComponentContext defaultBootstrap_InitialComponentContext(String ini_file, Hashtable bootstrap_parameters) throws Exception { + public static XComponentContext defaultBootstrap_InitialComponentContext(String ini_file, Hashtable bootstrap_parameters) { return defaultBootstrap_InitialComponentContext(ini_file, (Map) bootstrap_parameters); } @@ -204,7 +207,7 @@ public static XComponentContext defaultBootstrap_InitialComponentContext(String * @return a freshly bootstrapped component context. * @throws Exception if things go awry. */ - public static XComponentContext defaultBootstrap_InitialComponentContext(String ini_file, Map bootstrap_parameters) throws Exception { + public static XComponentContext defaultBootstrap_InitialComponentContext(String ini_file, Map bootstrap_parameters) { // jni convenience: easier to iterate over array than calling Hashtable String pairs[] = null; if (null != bootstrap_parameters) { @@ -245,7 +248,7 @@ public static XComponentContext defaultBootstrap_InitialComponentContext(String return UnoRuntime.queryInterface(XComponentContext.class, cppuhelper_bootstrap(ini_file, pairs, Bootstrap.class.getClassLoader())); } - private static native Object cppuhelper_bootstrap(String ini_file, String bootstrap_parameters[], ClassLoader loader) throws Exception; + private static native Object cppuhelper_bootstrap(String ini_file, String bootstrap_parameters[], ClassLoader loader); /** * Bootstraps the component context from a UNO installation. @@ -254,7 +257,7 @@ public static XComponentContext defaultBootstrap_InitialComponentContext(String * @throws BootstrapException if things go awry. * @since UDK 3.1.0 */ - public static XComponentContext bootstrap(Path ooPath) throws BootstrapException { + public static XComponentContext bootstrap(Path ooPath) throws BootstrapException, IOException, InterruptedException { String[] defaultArgArray = getDefaultOptions(); return bootstrap(defaultArgArray, ooPath); } @@ -268,7 +271,7 @@ public static XComponentContext bootstrap(Path ooPath) throws BootstrapException * @see #getDefaultOptions() * @since LibreOffice 5.1 */ - public static XComponentContext bootstrap(String[] argArray, Path path) throws BootstrapException { + public static XComponentContext bootstrap(String[] argArray, Path path) throws BootstrapException, IOException, InterruptedException { XComponentContext xContext = null; @@ -323,8 +326,6 @@ public static XComponentContext bootstrap(String[] argArray, Path path) throws B Thread.sleep(500); } } - } catch (BootstrapException | RuntimeException e) { - throw e; } catch (Exception e) { throw new BootstrapException(e); } diff --git a/src/main/java/org/jabref/gui/openoffice/CSLStyleSelectViewModel.java b/jabgui/src/main/java/org/jabref/gui/openoffice/CSLStyleSelectViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/openoffice/CSLStyleSelectViewModel.java rename to jabgui/src/main/java/org/jabref/gui/openoffice/CSLStyleSelectViewModel.java diff --git a/src/main/java/org/jabref/gui/openoffice/CitationEntryViewModel.java b/jabgui/src/main/java/org/jabref/gui/openoffice/CitationEntryViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/openoffice/CitationEntryViewModel.java rename to jabgui/src/main/java/org/jabref/gui/openoffice/CitationEntryViewModel.java diff --git a/src/main/java/org/jabref/gui/openoffice/DetectOpenOfficeInstallation.java b/jabgui/src/main/java/org/jabref/gui/openoffice/DetectOpenOfficeInstallation.java similarity index 100% rename from src/main/java/org/jabref/gui/openoffice/DetectOpenOfficeInstallation.java rename to jabgui/src/main/java/org/jabref/gui/openoffice/DetectOpenOfficeInstallation.java diff --git a/src/main/java/org/jabref/gui/openoffice/JStyleSelectViewModel.java b/jabgui/src/main/java/org/jabref/gui/openoffice/JStyleSelectViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/openoffice/JStyleSelectViewModel.java rename to jabgui/src/main/java/org/jabref/gui/openoffice/JStyleSelectViewModel.java diff --git a/src/main/java/org/jabref/gui/openoffice/ManageCitationsDialogView.java b/jabgui/src/main/java/org/jabref/gui/openoffice/ManageCitationsDialogView.java similarity index 100% rename from src/main/java/org/jabref/gui/openoffice/ManageCitationsDialogView.java rename to jabgui/src/main/java/org/jabref/gui/openoffice/ManageCitationsDialogView.java diff --git a/src/main/java/org/jabref/gui/openoffice/ManageCitationsDialogViewModel.java b/jabgui/src/main/java/org/jabref/gui/openoffice/ManageCitationsDialogViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/openoffice/ManageCitationsDialogViewModel.java rename to jabgui/src/main/java/org/jabref/gui/openoffice/ManageCitationsDialogViewModel.java diff --git a/src/main/java/org/jabref/gui/openoffice/ModifyCSLBibliographyTitleDialogView.java b/jabgui/src/main/java/org/jabref/gui/openoffice/ModifyCSLBibliographyTitleDialogView.java similarity index 100% rename from src/main/java/org/jabref/gui/openoffice/ModifyCSLBibliographyTitleDialogView.java rename to jabgui/src/main/java/org/jabref/gui/openoffice/ModifyCSLBibliographyTitleDialogView.java diff --git a/src/main/java/org/jabref/gui/openoffice/ModifyCSLBibliographyTitleDialogViewModel.java b/jabgui/src/main/java/org/jabref/gui/openoffice/ModifyCSLBibliographyTitleDialogViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/openoffice/ModifyCSLBibliographyTitleDialogViewModel.java rename to jabgui/src/main/java/org/jabref/gui/openoffice/ModifyCSLBibliographyTitleDialogViewModel.java diff --git a/src/main/java/org/jabref/gui/openoffice/OOBibBase.java b/jabgui/src/main/java/org/jabref/gui/openoffice/OOBibBase.java similarity index 99% rename from src/main/java/org/jabref/gui/openoffice/OOBibBase.java rename to jabgui/src/main/java/org/jabref/gui/openoffice/OOBibBase.java index 7518ec9bea1..cfacee4da73 100644 --- a/src/main/java/org/jabref/gui/openoffice/OOBibBase.java +++ b/jabgui/src/main/java/org/jabref/gui/openoffice/OOBibBase.java @@ -1,5 +1,6 @@ package org.jabref.gui.openoffice; +import java.io.IOException; import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; @@ -79,7 +80,7 @@ public class OOBibBase { public OOBibBase(Path loPath, DialogService dialogService, OpenOfficePreferences openOfficePreferences) throws BootstrapException, - CreationException { + CreationException, IOException, InterruptedException { this.dialogService = dialogService; this.connection = new OOBibBaseConnect(loPath, dialogService); @@ -90,7 +91,7 @@ private void initializeCitationAdapter(XTextDocument doc) throws WrappedTargetEx if (cslCitationOOAdapter == null) { StateManager stateManager = Injector.instantiateModelOrService(StateManager.class); Supplier> databasesSupplier = stateManager::getOpenDatabases; - cslCitationOOAdapter = new CSLCitationOOAdapter(doc, databasesSupplier, openOfficePreferences); + cslCitationOOAdapter = new CSLCitationOOAdapter(doc, databasesSupplier, openOfficePreferences, Injector.instantiateModelOrService(BibEntryTypesManager.class)); cslUpdateBibliography = new CSLUpdateBibliography(); } } diff --git a/src/main/java/org/jabref/gui/openoffice/OOBibBaseConnect.java b/jabgui/src/main/java/org/jabref/gui/openoffice/OOBibBaseConnect.java similarity index 98% rename from src/main/java/org/jabref/gui/openoffice/OOBibBaseConnect.java rename to jabgui/src/main/java/org/jabref/gui/openoffice/OOBibBaseConnect.java index 38dc36ad40e..e4cb194725e 100644 --- a/src/main/java/org/jabref/gui/openoffice/OOBibBaseConnect.java +++ b/jabgui/src/main/java/org/jabref/gui/openoffice/OOBibBaseConnect.java @@ -1,5 +1,6 @@ package org.jabref.gui.openoffice; +import java.io.IOException; import java.nio.file.Path; import java.util.ArrayList; import java.util.List; @@ -52,7 +53,7 @@ public class OOBibBaseConnect { public OOBibBaseConnect(Path loPath, DialogService dialogService) throws BootstrapException, - CreationException { + CreationException, IOException, InterruptedException { this.dialogService = dialogService; this.xDesktop = simpleBootstrap(loPath); @@ -61,7 +62,7 @@ public OOBibBaseConnect(Path loPath, DialogService dialogService) private XDesktop simpleBootstrap(Path loPath) throws CreationException, - BootstrapException { + BootstrapException, IOException, InterruptedException { // Get the office component context: XComponentContext context = Bootstrap.bootstrap(loPath); diff --git a/src/main/java/org/jabref/gui/openoffice/OOError.java b/jabgui/src/main/java/org/jabref/gui/openoffice/OOError.java similarity index 100% rename from src/main/java/org/jabref/gui/openoffice/OOError.java rename to jabgui/src/main/java/org/jabref/gui/openoffice/OOError.java diff --git a/src/main/java/org/jabref/gui/openoffice/OpenOfficePanel.java b/jabgui/src/main/java/org/jabref/gui/openoffice/OpenOfficePanel.java similarity index 99% rename from src/main/java/org/jabref/gui/openoffice/OpenOfficePanel.java rename to jabgui/src/main/java/org/jabref/gui/openoffice/OpenOfficePanel.java index 27968dac28b..79f0e3033fe 100644 --- a/src/main/java/org/jabref/gui/openoffice/OpenOfficePanel.java +++ b/jabgui/src/main/java/org/jabref/gui/openoffice/OpenOfficePanel.java @@ -436,7 +436,7 @@ private void updateButtonAvailability() { private void connect() { Task connectTask = new Task<>() { @Override - protected OOBibBase call() throws BootstrapException, CreationException { + protected OOBibBase call() throws BootstrapException, CreationException, IOException, InterruptedException { updateProgress(ProgressBar.INDETERMINATE_PROGRESS, ProgressBar.INDETERMINATE_PROGRESS); Path path = Path.of(openOfficePreferences.getExecutablePath()); @@ -492,7 +492,7 @@ protected OOBibBase call() throws BootstrapException, CreationException { taskExecutor.execute(connectTask); } - private OOBibBase createBibBase(Path loPath) throws BootstrapException, CreationException { + private OOBibBase createBibBase(Path loPath) throws BootstrapException, CreationException, IOException, InterruptedException { return new OOBibBase(loPath, dialogService, openOfficePreferences); } diff --git a/src/main/java/org/jabref/gui/openoffice/StyleSelectDialogView.java b/jabgui/src/main/java/org/jabref/gui/openoffice/StyleSelectDialogView.java similarity index 97% rename from src/main/java/org/jabref/gui/openoffice/StyleSelectDialogView.java rename to jabgui/src/main/java/org/jabref/gui/openoffice/StyleSelectDialogView.java index 8fdfd0688fa..f8f96d8db9e 100644 --- a/src/main/java/org/jabref/gui/openoffice/StyleSelectDialogView.java +++ b/jabgui/src/main/java/org/jabref/gui/openoffice/StyleSelectDialogView.java @@ -28,6 +28,7 @@ import org.jabref.logic.citationstyle.CSLStyleLoader; import org.jabref.logic.citationstyle.CitationStyle; import org.jabref.logic.citationstyle.CitationStylePreviewLayout; +import org.jabref.logic.journals.JournalAbbreviationRepository; import org.jabref.logic.l10n.Localization; import org.jabref.logic.layout.TextBasedPreviewLayout; import org.jabref.logic.openoffice.style.JStyle; @@ -40,6 +41,7 @@ import org.jabref.model.entry.BibEntryTypesManager; import org.jabref.model.entry.types.StandardEntryType; +import com.airhacks.afterburner.injection.Injector; import com.airhacks.afterburner.views.ViewLoader; import com.tobiasdiez.easybind.EasyBind; import jakarta.inject.Inject; @@ -119,7 +121,7 @@ private void initialize() { setupCslStylesTab(); setupJStylesTab(); - OOStyle currentStyle = preferences.getOpenOfficePreferences().getCurrentStyle(); + OOStyle currentStyle = preferences.getOpenOfficePreferences(Injector.instantiateModelOrService(JournalAbbreviationRepository.class)).getCurrentStyle(); if (currentStyle instanceof CitationStyle) { tabPane.getSelectionModel().select(cslStyleTab); } else { @@ -288,7 +290,7 @@ private void addJStyleFile() { @FXML private void modifyBibliographyTitle() { - ModifyCSLBibliographyTitleDialogView modifyBibliographyTitleDialogView = new ModifyCSLBibliographyTitleDialogView(preferences.getOpenOfficePreferences()); + ModifyCSLBibliographyTitleDialogView modifyBibliographyTitleDialogView = new ModifyCSLBibliographyTitleDialogView(preferences.getOpenOfficePreferences(Injector.instantiateModelOrService(JournalAbbreviationRepository.class))); dialogService.showCustomDialog(modifyBibliographyTitleDialogView); } @@ -307,7 +309,7 @@ private void scrollToCurrentStyle() { return; // Scroll has already been performed, exit early } - OOStyle currentStyle = preferences.getOpenOfficePreferences().getCurrentStyle(); + OOStyle currentStyle = preferences.getOpenOfficePreferences(Injector.instantiateModelOrService(JournalAbbreviationRepository.class)).getCurrentStyle(); if (currentStyle instanceof CitationStyle currentCitationStyle) { for (int i = 0; i < cslStylesTable.getItems().size(); i++) { CSLStyleSelectViewModel item = cslStylesTable.getItems().get(i); diff --git a/src/main/java/org/jabref/gui/openoffice/StyleSelectDialogViewModel.java b/jabgui/src/main/java/org/jabref/gui/openoffice/StyleSelectDialogViewModel.java similarity index 98% rename from src/main/java/org/jabref/gui/openoffice/StyleSelectDialogViewModel.java rename to jabgui/src/main/java/org/jabref/gui/openoffice/StyleSelectDialogViewModel.java index 327716cc627..ae6ae0f45ca 100644 --- a/src/main/java/org/jabref/gui/openoffice/StyleSelectDialogViewModel.java +++ b/jabgui/src/main/java/org/jabref/gui/openoffice/StyleSelectDialogViewModel.java @@ -25,6 +25,7 @@ import org.jabref.logic.citationstyle.CSLStyleLoader; import org.jabref.logic.citationstyle.CitationStyle; import org.jabref.logic.citationstyle.CitationStylePreviewLayout; +import org.jabref.logic.journals.JournalAbbreviationRepository; import org.jabref.logic.l10n.Localization; import org.jabref.logic.openoffice.OpenOfficePreferences; import org.jabref.logic.openoffice.style.JStyle; @@ -36,6 +37,8 @@ import org.jabref.model.database.BibDatabaseContext; import org.jabref.model.entry.BibEntryTypesManager; +import com.airhacks.afterburner.injection.Injector; + public class StyleSelectDialogViewModel { private final DialogService dialogService; @@ -71,7 +74,7 @@ public StyleSelectDialogViewModel(DialogService dialogService, this.externalApplicationsPreferences = preferences.getExternalApplicationsPreferences(); this.filePreferences = preferences.getFilePreferences(); - this.openOfficePreferences = preferences.getOpenOfficePreferences(); + this.openOfficePreferences = preferences.getOpenOfficePreferences(Injector.instantiateModelOrService(JournalAbbreviationRepository.class)); this.bibEntryTypesManager = bibEntryTypesManager; @@ -307,11 +310,11 @@ public void addJStyleFile() { .withInitialDirectory(filePreferences.getWorkingDirectory()) .build(); Optional path = dialogService.showFileOpenDialog(fileDialogConfiguration); - path.map(Path::toAbsolutePath).map(Path::toString).ifPresent(stylePath -> { + path.map(Path::toAbsolutePath).ifPresent(stylePath -> { if (jStyleLoader.addStyleIfValid(stylePath)) { - openOfficePreferences.setCurrentJStyle(stylePath); + openOfficePreferences.setCurrentJStyle(stylePath.toString()); jStyles.setAll(loadJStyles()); - selectedJStyle.setValue(getJStyleOrDefault(stylePath)); + selectedJStyle.setValue(getJStyleOrDefault(stylePath.toString())); } else { dialogService.showErrorDialogAndWait(Localization.lang("Invalid style selected"), Localization.lang("You must select a valid style file. Your style is probably missing a line for the type \"default\".")); } diff --git a/src/main/java/org/jabref/gui/plaincitationparser/PlainCitationParserAction.java b/jabgui/src/main/java/org/jabref/gui/plaincitationparser/PlainCitationParserAction.java similarity index 100% rename from src/main/java/org/jabref/gui/plaincitationparser/PlainCitationParserAction.java rename to jabgui/src/main/java/org/jabref/gui/plaincitationparser/PlainCitationParserAction.java diff --git a/src/main/java/org/jabref/gui/plaincitationparser/PlainCitationParserDialog.java b/jabgui/src/main/java/org/jabref/gui/plaincitationparser/PlainCitationParserDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/plaincitationparser/PlainCitationParserDialog.java rename to jabgui/src/main/java/org/jabref/gui/plaincitationparser/PlainCitationParserDialog.java diff --git a/src/main/java/org/jabref/gui/plaincitationparser/PlainCitationParserViewModel.java b/jabgui/src/main/java/org/jabref/gui/plaincitationparser/PlainCitationParserViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/plaincitationparser/PlainCitationParserViewModel.java rename to jabgui/src/main/java/org/jabref/gui/plaincitationparser/PlainCitationParserViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/AbstractPreferenceTabView.java b/jabgui/src/main/java/org/jabref/gui/preferences/AbstractPreferenceTabView.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/AbstractPreferenceTabView.java rename to jabgui/src/main/java/org/jabref/gui/preferences/AbstractPreferenceTabView.java diff --git a/src/main/java/org/jabref/gui/preferences/GuiPreferences.java b/jabgui/src/main/java/org/jabref/gui/preferences/GuiPreferences.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/GuiPreferences.java rename to jabgui/src/main/java/org/jabref/gui/preferences/GuiPreferences.java diff --git a/src/main/java/org/jabref/gui/preferences/JabRefGuiPreferences.java b/jabgui/src/main/java/org/jabref/gui/preferences/JabRefGuiPreferences.java similarity index 99% rename from src/main/java/org/jabref/gui/preferences/JabRefGuiPreferences.java rename to jabgui/src/main/java/org/jabref/gui/preferences/JabRefGuiPreferences.java index b2a7c0c221d..a1a8d58632d 100644 --- a/src/main/java/org/jabref/gui/preferences/JabRefGuiPreferences.java +++ b/jabgui/src/main/java/org/jabref/gui/preferences/JabRefGuiPreferences.java @@ -934,7 +934,7 @@ private void storePreviewLayouts(ObservableList previewCycle) { } else { return layout.getDisplayName(); } - }).collect(Collectors.toList()) + }).toList() ); } diff --git a/src/main/java/org/jabref/gui/preferences/PreferenceTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/PreferenceTabViewModel.java similarity index 95% rename from src/main/java/org/jabref/gui/preferences/PreferenceTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/PreferenceTabViewModel.java index 06821b7ff2a..f07c627886d 100644 --- a/src/main/java/org/jabref/gui/preferences/PreferenceTabViewModel.java +++ b/jabgui/src/main/java/org/jabref/gui/preferences/PreferenceTabViewModel.java @@ -1,6 +1,5 @@ package org.jabref.gui.preferences; -import java.util.Collections; import java.util.List; public interface PreferenceTabViewModel { @@ -40,6 +39,6 @@ default boolean validateSettings() { * @return The messages for the changed properties (e. g. "Changed language: English") */ default List getRestartWarnings() { - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/gui/preferences/PreferencesDialogView.java b/jabgui/src/main/java/org/jabref/gui/preferences/PreferencesDialogView.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/PreferencesDialogView.java rename to jabgui/src/main/java/org/jabref/gui/preferences/PreferencesDialogView.java diff --git a/src/main/java/org/jabref/gui/preferences/PreferencesDialogViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/PreferencesDialogViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/PreferencesDialogViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/PreferencesDialogViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/PreferencesFilter.java b/jabgui/src/main/java/org/jabref/gui/preferences/PreferencesFilter.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/PreferencesFilter.java rename to jabgui/src/main/java/org/jabref/gui/preferences/PreferencesFilter.java diff --git a/src/main/java/org/jabref/gui/preferences/PreferencesFilterDialog.java b/jabgui/src/main/java/org/jabref/gui/preferences/PreferencesFilterDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/PreferencesFilterDialog.java rename to jabgui/src/main/java/org/jabref/gui/preferences/PreferencesFilterDialog.java diff --git a/src/main/java/org/jabref/gui/preferences/PreferencesSearchHandler.java b/jabgui/src/main/java/org/jabref/gui/preferences/PreferencesSearchHandler.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/PreferencesSearchHandler.java rename to jabgui/src/main/java/org/jabref/gui/preferences/PreferencesSearchHandler.java diff --git a/src/main/java/org/jabref/gui/preferences/PreferencesTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/PreferencesTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/PreferencesTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/PreferencesTab.java diff --git a/src/main/java/org/jabref/gui/preferences/ShowPreferencesAction.java b/jabgui/src/main/java/org/jabref/gui/preferences/ShowPreferencesAction.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/ShowPreferencesAction.java rename to jabgui/src/main/java/org/jabref/gui/preferences/ShowPreferencesAction.java diff --git a/src/main/java/org/jabref/gui/preferences/ai/AiTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/ai/AiTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/ai/AiTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/ai/AiTab.java diff --git a/src/main/java/org/jabref/gui/preferences/ai/AiTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/ai/AiTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/ai/AiTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/ai/AiTabViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/autocompletion/AutoCompletionTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/autocompletion/AutoCompletionTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/autocompletion/AutoCompletionTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/autocompletion/AutoCompletionTab.java diff --git a/src/main/java/org/jabref/gui/preferences/autocompletion/AutoCompletionTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/autocompletion/AutoCompletionTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/autocompletion/AutoCompletionTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/autocompletion/AutoCompletionTabViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTab.java diff --git a/src/main/java/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTabViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypeViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypeViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypeViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypeViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.java diff --git a/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTabViewModel.java similarity index 99% rename from src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTabViewModel.java index ea773ee88e9..2f2b6f2183d 100644 --- a/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTabViewModel.java +++ b/jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTabViewModel.java @@ -2,7 +2,6 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -136,7 +135,7 @@ public void storeSettings() { public EntryTypeViewModel addNewCustomEntryType() { EntryType newentryType = new UnknownEntryType(entryTypeToAdd.getValue()); - BibEntryType type = new BibEntryType(newentryType, new ArrayList<>(), Collections.emptyList()); + BibEntryType type = new BibEntryType(newentryType, new ArrayList<>(), List.of()); EntryTypeViewModel viewModel = new CustomEntryTypeViewModel(type, isMultiline); this.entryTypesWithFields.add(viewModel); this.entryTypeToAdd.setValue(""); diff --git a/src/main/java/org/jabref/gui/preferences/customentrytypes/EntryTypeViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/EntryTypeViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/customentrytypes/EntryTypeViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/EntryTypeViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/customentrytypes/FieldViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/FieldViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/customentrytypes/FieldViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/FieldViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/customexporter/CustomExporterTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/customexporter/CustomExporterTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/customexporter/CustomExporterTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/customexporter/CustomExporterTab.java diff --git a/src/main/java/org/jabref/gui/preferences/customexporter/CustomExporterTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/customexporter/CustomExporterTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/customexporter/CustomExporterTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/customexporter/CustomExporterTabViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/customimporter/CustomImporterTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/customimporter/CustomImporterTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/customimporter/CustomImporterTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/customimporter/CustomImporterTab.java diff --git a/src/main/java/org/jabref/gui/preferences/customimporter/CustomImporterTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/customimporter/CustomImporterTabViewModel.java similarity index 97% rename from src/main/java/org/jabref/gui/preferences/customimporter/CustomImporterTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/customimporter/CustomImporterTabViewModel.java index 227fe4a1e72..7bdfc1d01c4 100644 --- a/src/main/java/org/jabref/gui/preferences/customimporter/CustomImporterTabViewModel.java +++ b/jabgui/src/main/java/org/jabref/gui/preferences/customimporter/CustomImporterTabViewModel.java @@ -2,7 +2,7 @@ import java.io.IOException; import java.nio.file.Path; -import java.util.Collections; +import java.util.List; import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; @@ -64,7 +64,7 @@ public void storeSettings() { * @return class name */ private static String pathToClass(String basePath, Path path) { - String className = FileUtil.relativize(path, Collections.singletonList(Path.of(basePath))).toString(); + String className = FileUtil.relativize(path, List.of(Path.of(basePath))).toString(); if (className != null) { int lastDot = className.lastIndexOf('.'); if (lastDot < 0) { diff --git a/src/main/java/org/jabref/gui/preferences/entry/EntryTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/entry/EntryTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/entry/EntryTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/entry/EntryTab.java diff --git a/src/main/java/org/jabref/gui/preferences/entry/EntryTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/entry/EntryTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/entry/EntryTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/entry/EntryTabViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/entryeditor/EntryEditorTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/entryeditor/EntryEditorTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/entryeditor/EntryEditorTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/entryeditor/EntryEditorTab.java diff --git a/src/main/java/org/jabref/gui/preferences/entryeditor/EntryEditorTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/entryeditor/EntryEditorTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/entryeditor/EntryEditorTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/entryeditor/EntryEditorTabViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/export/ExportTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/export/ExportTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/export/ExportTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/export/ExportTab.java diff --git a/src/main/java/org/jabref/gui/preferences/export/ExportTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/export/ExportTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/export/ExportTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/export/ExportTabViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/external/ExternalTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/external/ExternalTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/external/ExternalTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/external/ExternalTab.java diff --git a/src/main/java/org/jabref/gui/preferences/external/ExternalTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/external/ExternalTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/external/ExternalTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/external/ExternalTabViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/externalfiletypes/EditExternalFileTypeEntryDialog.java b/jabgui/src/main/java/org/jabref/gui/preferences/externalfiletypes/EditExternalFileTypeEntryDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/externalfiletypes/EditExternalFileTypeEntryDialog.java rename to jabgui/src/main/java/org/jabref/gui/preferences/externalfiletypes/EditExternalFileTypeEntryDialog.java diff --git a/src/main/java/org/jabref/gui/preferences/externalfiletypes/EditExternalFileTypeViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/externalfiletypes/EditExternalFileTypeViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/externalfiletypes/EditExternalFileTypeViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/externalfiletypes/EditExternalFileTypeViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypeItemViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypeItemViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypeItemViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypeItemViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypesTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypesTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypesTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypesTab.java diff --git a/src/main/java/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypesTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypesTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypesTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypesTabViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/general/GeneralTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/general/GeneralTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/general/GeneralTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/general/GeneralTab.java diff --git a/src/main/java/org/jabref/gui/preferences/general/GeneralTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/general/GeneralTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/general/GeneralTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/general/GeneralTabViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/groups/GroupsTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/groups/GroupsTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/groups/GroupsTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/groups/GroupsTab.java diff --git a/src/main/java/org/jabref/gui/preferences/groups/GroupsTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/groups/GroupsTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/groups/GroupsTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/groups/GroupsTabViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/journals/AbbreviationViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/journals/AbbreviationViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/journals/AbbreviationViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/journals/AbbreviationViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/journals/AbbreviationsFileViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/journals/AbbreviationsFileViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/journals/AbbreviationsFileViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/journals/AbbreviationsFileViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/journals/JournalAbbreviationsTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/journals/JournalAbbreviationsTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/journals/JournalAbbreviationsTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/journals/JournalAbbreviationsTab.java diff --git a/src/main/java/org/jabref/gui/preferences/journals/JournalAbbreviationsTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/journals/JournalAbbreviationsTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/journals/JournalAbbreviationsTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/journals/JournalAbbreviationsTabViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/keybindings/KeyBindingViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/keybindings/KeyBindingViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/keybindings/KeyBindingViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/keybindings/KeyBindingViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/keybindings/KeyBindingsTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/keybindings/KeyBindingsTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/keybindings/KeyBindingsTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/keybindings/KeyBindingsTab.java diff --git a/src/main/java/org/jabref/gui/preferences/keybindings/KeyBindingsTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/keybindings/KeyBindingsTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/keybindings/KeyBindingsTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/keybindings/KeyBindingsTabViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/keybindings/presets/BashKeyBindingPreset.java b/jabgui/src/main/java/org/jabref/gui/preferences/keybindings/presets/BashKeyBindingPreset.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/keybindings/presets/BashKeyBindingPreset.java rename to jabgui/src/main/java/org/jabref/gui/preferences/keybindings/presets/BashKeyBindingPreset.java diff --git a/src/main/java/org/jabref/gui/preferences/keybindings/presets/KeyBindingPreset.java b/jabgui/src/main/java/org/jabref/gui/preferences/keybindings/presets/KeyBindingPreset.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/keybindings/presets/KeyBindingPreset.java rename to jabgui/src/main/java/org/jabref/gui/preferences/keybindings/presets/KeyBindingPreset.java diff --git a/src/main/java/org/jabref/gui/preferences/keybindings/presets/NewEntryBindingPreset.java b/jabgui/src/main/java/org/jabref/gui/preferences/keybindings/presets/NewEntryBindingPreset.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/keybindings/presets/NewEntryBindingPreset.java rename to jabgui/src/main/java/org/jabref/gui/preferences/keybindings/presets/NewEntryBindingPreset.java diff --git a/src/main/java/org/jabref/gui/preferences/linkedfiles/LinkedFilesTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/linkedfiles/LinkedFilesTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/linkedfiles/LinkedFilesTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/linkedfiles/LinkedFilesTab.java diff --git a/src/main/java/org/jabref/gui/preferences/linkedfiles/LinkedFilesTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/linkedfiles/LinkedFilesTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/linkedfiles/LinkedFilesTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/linkedfiles/LinkedFilesTabViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/nameformatter/NameFormatterItemModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/nameformatter/NameFormatterItemModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/nameformatter/NameFormatterItemModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/nameformatter/NameFormatterItemModel.java diff --git a/src/main/java/org/jabref/gui/preferences/nameformatter/NameFormatterTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/nameformatter/NameFormatterTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/nameformatter/NameFormatterTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/nameformatter/NameFormatterTab.java diff --git a/src/main/java/org/jabref/gui/preferences/nameformatter/NameFormatterTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/nameformatter/NameFormatterTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/nameformatter/NameFormatterTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/nameformatter/NameFormatterTabViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/network/CustomCertificateViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/network/CustomCertificateViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/network/CustomCertificateViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/network/CustomCertificateViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/network/NetworkTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/network/NetworkTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/network/NetworkTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/network/NetworkTab.java diff --git a/src/main/java/org/jabref/gui/preferences/network/NetworkTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/network/NetworkTabViewModel.java similarity index 99% rename from src/main/java/org/jabref/gui/preferences/network/NetworkTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/network/NetworkTabViewModel.java index 9035c8394ed..3db20e5be94 100644 --- a/src/main/java/org/jabref/gui/preferences/network/NetworkTabViewModel.java +++ b/jabgui/src/main/java/org/jabref/gui/preferences/network/NetworkTabViewModel.java @@ -2,7 +2,6 @@ import java.net.MalformedURLException; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.concurrent.atomic.AtomicBoolean; @@ -261,7 +260,7 @@ public List getRestartWarnings() { if (sslCertificatesChanged.get()) { return List.of(Localization.lang("SSL configuration changed")); } else { - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/gui/preferences/preview/PreviewTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/preview/PreviewTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/preview/PreviewTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/preview/PreviewTab.java diff --git a/src/main/java/org/jabref/gui/preferences/preview/PreviewTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/preview/PreviewTabViewModel.java similarity index 93% rename from src/main/java/org/jabref/gui/preferences/preview/PreviewTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/preview/PreviewTabViewModel.java index 758369e05dc..d0c999ae7fa 100644 --- a/src/main/java/org/jabref/gui/preferences/preview/PreviewTabViewModel.java +++ b/jabgui/src/main/java/org/jabref/gui/preferences/preview/PreviewTabViewModel.java @@ -3,9 +3,9 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.Comparator; import java.util.List; +import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -327,40 +327,40 @@ public StyleSpans> computeHighlighting(String text) { int lastKeywordEnd = 0; StyleSpansBuilder> spansBuilder = new StyleSpansBuilder<>(); while (matcher.find()) { - spansBuilder.add(Collections.emptyList(), matcher.start() - lastKeywordEnd); + spansBuilder.add(List.of(), matcher.start() - lastKeywordEnd); if (matcher.group("COMMENT") != null) { - spansBuilder.add(Collections.singleton("comment"), matcher.end() - matcher.start()); + spansBuilder.add(Set.of("comment"), matcher.end() - matcher.start()); } else { if (matcher.group("ELEMENT") != null) { String attributesText = matcher.group(GROUP_ATTRIBUTES_SECTION); - spansBuilder.add(Collections.singleton("tagmark"), matcher.end(GROUP_OPEN_BRACKET) - matcher.start(GROUP_OPEN_BRACKET)); - spansBuilder.add(Collections.singleton("anytag"), matcher.end(GROUP_ELEMENT_NAME) - matcher.end(GROUP_OPEN_BRACKET)); + spansBuilder.add(Set.of("tagmark"), matcher.end(GROUP_OPEN_BRACKET) - matcher.start(GROUP_OPEN_BRACKET)); + spansBuilder.add(Set.of("anytag"), matcher.end(GROUP_ELEMENT_NAME) - matcher.end(GROUP_OPEN_BRACKET)); if (!attributesText.isEmpty()) { lastKeywordEnd = 0; Matcher attributesMatcher = ATTRIBUTES.matcher(attributesText); while (attributesMatcher.find()) { - spansBuilder.add(Collections.emptyList(), attributesMatcher.start() - lastKeywordEnd); - spansBuilder.add(Collections.singleton("attribute"), attributesMatcher.end(GROUP_ATTRIBUTE_NAME) - attributesMatcher.start(GROUP_ATTRIBUTE_NAME)); - spansBuilder.add(Collections.singleton("tagmark"), attributesMatcher.end(GROUP_EQUAL_SYMBOL) - attributesMatcher.end(GROUP_ATTRIBUTE_NAME)); - spansBuilder.add(Collections.singleton("avalue"), attributesMatcher.end(GROUP_ATTRIBUTE_VALUE) - attributesMatcher.end(GROUP_EQUAL_SYMBOL)); + spansBuilder.add(List.of(), attributesMatcher.start() - lastKeywordEnd); + spansBuilder.add(Set.of("attribute"), attributesMatcher.end(GROUP_ATTRIBUTE_NAME) - attributesMatcher.start(GROUP_ATTRIBUTE_NAME)); + spansBuilder.add(Set.of("tagmark"), attributesMatcher.end(GROUP_EQUAL_SYMBOL) - attributesMatcher.end(GROUP_ATTRIBUTE_NAME)); + spansBuilder.add(Set.of("avalue"), attributesMatcher.end(GROUP_ATTRIBUTE_VALUE) - attributesMatcher.end(GROUP_EQUAL_SYMBOL)); lastKeywordEnd = attributesMatcher.end(); } if (attributesText.length() > lastKeywordEnd) { - spansBuilder.add(Collections.emptyList(), attributesText.length() - lastKeywordEnd); + spansBuilder.add(List.of(), attributesText.length() - lastKeywordEnd); } } lastKeywordEnd = matcher.end(GROUP_ATTRIBUTES_SECTION); - spansBuilder.add(Collections.singleton("tagmark"), matcher.end(GROUP_CLOSE_BRACKET) - lastKeywordEnd); + spansBuilder.add(Set.of("tagmark"), matcher.end(GROUP_CLOSE_BRACKET) - lastKeywordEnd); } } lastKeywordEnd = matcher.end(); } - spansBuilder.add(Collections.emptyList(), text.length() - lastKeywordEnd); + spansBuilder.add(List.of(), text.length() - lastKeywordEnd); return spansBuilder.create(); } diff --git a/src/main/java/org/jabref/gui/preferences/protectedterms/NewProtectedTermsFileDialog.java b/jabgui/src/main/java/org/jabref/gui/preferences/protectedterms/NewProtectedTermsFileDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/protectedterms/NewProtectedTermsFileDialog.java rename to jabgui/src/main/java/org/jabref/gui/preferences/protectedterms/NewProtectedTermsFileDialog.java diff --git a/src/main/java/org/jabref/gui/preferences/protectedterms/ProtectedTermsListItemModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/protectedterms/ProtectedTermsListItemModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/protectedterms/ProtectedTermsListItemModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/protectedterms/ProtectedTermsListItemModel.java diff --git a/src/main/java/org/jabref/gui/preferences/protectedterms/ProtectedTermsTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/protectedterms/ProtectedTermsTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/protectedterms/ProtectedTermsTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/protectedterms/ProtectedTermsTab.java diff --git a/src/main/java/org/jabref/gui/preferences/protectedterms/ProtectedTermsTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/protectedterms/ProtectedTermsTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/protectedterms/ProtectedTermsTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/protectedterms/ProtectedTermsTabViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/table/TableTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/table/TableTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/table/TableTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/table/TableTab.java diff --git a/src/main/java/org/jabref/gui/preferences/table/TableTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/table/TableTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/table/TableTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/table/TableTabViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/websearch/WebSearchTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/websearch/WebSearchTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/websearch/WebSearchTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/websearch/WebSearchTab.java diff --git a/src/main/java/org/jabref/gui/preferences/websearch/WebSearchTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/websearch/WebSearchTabViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/websearch/WebSearchTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/websearch/WebSearchTabViewModel.java diff --git a/src/main/java/org/jabref/gui/preferences/xmp/XmpPrivacyTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/xmp/XmpPrivacyTab.java similarity index 100% rename from src/main/java/org/jabref/gui/preferences/xmp/XmpPrivacyTab.java rename to jabgui/src/main/java/org/jabref/gui/preferences/xmp/XmpPrivacyTab.java diff --git a/src/main/java/org/jabref/gui/preferences/xmp/XmpPrivacyTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/xmp/XmpPrivacyTabViewModel.java similarity index 98% rename from src/main/java/org/jabref/gui/preferences/xmp/XmpPrivacyTabViewModel.java rename to jabgui/src/main/java/org/jabref/gui/preferences/xmp/XmpPrivacyTabViewModel.java index d724eb96234..dd9d7cb0b79 100644 --- a/src/main/java/org/jabref/gui/preferences/xmp/XmpPrivacyTabViewModel.java +++ b/jabgui/src/main/java/org/jabref/gui/preferences/xmp/XmpPrivacyTabViewModel.java @@ -56,7 +56,7 @@ public void setValues() { availableFieldsProperty.clear(); availableFieldsProperty.addAll(FieldFactory.getCommonFields()); - availableFieldsProperty.sort((Comparator.comparing(Field::getDisplayName))); + availableFieldsProperty.sort(Comparator.comparing(Field::getDisplayName)); } @Override diff --git a/src/main/java/org/jabref/gui/preview/ClipboardContentGenerator.java b/jabgui/src/main/java/org/jabref/gui/preview/ClipboardContentGenerator.java similarity index 97% rename from src/main/java/org/jabref/gui/preview/ClipboardContentGenerator.java rename to jabgui/src/main/java/org/jabref/gui/preview/ClipboardContentGenerator.java index 7f2f80e9795..fd95cb3d017 100644 --- a/src/main/java/org/jabref/gui/preview/ClipboardContentGenerator.java +++ b/jabgui/src/main/java/org/jabref/gui/preview/ClipboardContentGenerator.java @@ -1,7 +1,7 @@ package org.jabref.gui.preview; import java.io.IOException; -import java.io.StringReader; +import java.io.Reader; import java.util.ArrayList; import java.util.List; @@ -125,7 +125,7 @@ static ClipboardContent processHtml(List citations) { private List generateTextBasedPreviewLayoutCitations(List selectedEntries, BibDatabaseContext bibDatabaseContext) throws IOException { TextBasedPreviewLayout customPreviewLayout = previewPreferences.getCustomPreviewLayout(); - StringReader customLayoutReader = new StringReader(customPreviewLayout.getText().replace("__NEWLINE__", "\n")); + Reader customLayoutReader = Reader.of(customPreviewLayout.getText().replace("__NEWLINE__", "\n")); Layout layout = new LayoutHelper(customLayoutReader, layoutFormatterPreferences, abbreviationRepository).getLayoutFromText(); List citations = new ArrayList<>(selectedEntries.size()); for (BibEntry entry : selectedEntries) { diff --git a/src/main/java/org/jabref/gui/preview/CopyCitationAction.java b/jabgui/src/main/java/org/jabref/gui/preview/CopyCitationAction.java similarity index 100% rename from src/main/java/org/jabref/gui/preview/CopyCitationAction.java rename to jabgui/src/main/java/org/jabref/gui/preview/CopyCitationAction.java diff --git a/src/main/java/org/jabref/gui/preview/PreviewControls.java b/jabgui/src/main/java/org/jabref/gui/preview/PreviewControls.java similarity index 100% rename from src/main/java/org/jabref/gui/preview/PreviewControls.java rename to jabgui/src/main/java/org/jabref/gui/preview/PreviewControls.java diff --git a/src/main/java/org/jabref/gui/preview/PreviewPanel.java b/jabgui/src/main/java/org/jabref/gui/preview/PreviewPanel.java similarity index 99% rename from src/main/java/org/jabref/gui/preview/PreviewPanel.java rename to jabgui/src/main/java/org/jabref/gui/preview/PreviewPanel.java index 23871aac343..b420270019d 100644 --- a/src/main/java/org/jabref/gui/preview/PreviewPanel.java +++ b/jabgui/src/main/java/org/jabref/gui/preview/PreviewPanel.java @@ -33,7 +33,7 @@ import org.jabref.model.database.BibDatabaseContext; import org.jabref.model.entry.BibEntry; -import jakarta.annotation.Nullable; +import org.jspecify.annotations.Nullable; /// Displays the entry preview /// diff --git a/src/main/java/org/jabref/gui/preview/PreviewPreferences.java b/jabgui/src/main/java/org/jabref/gui/preview/PreviewPreferences.java similarity index 100% rename from src/main/java/org/jabref/gui/preview/PreviewPreferences.java rename to jabgui/src/main/java/org/jabref/gui/preview/PreviewPreferences.java diff --git a/src/main/java/org/jabref/gui/preview/PreviewViewer.java b/jabgui/src/main/java/org/jabref/gui/preview/PreviewViewer.java similarity index 99% rename from src/main/java/org/jabref/gui/preview/PreviewViewer.java rename to jabgui/src/main/java/org/jabref/gui/preview/PreviewViewer.java index e032f7b1bdd..dc9c3baf5ef 100644 --- a/src/main/java/org/jabref/gui/preview/PreviewViewer.java +++ b/jabgui/src/main/java/org/jabref/gui/preview/PreviewViewer.java @@ -24,14 +24,14 @@ import org.jabref.gui.desktop.os.NativeDesktop; import org.jabref.gui.exporter.ExportToClipboardAction; import org.jabref.gui.preferences.GuiPreferences; +import org.jabref.gui.search.Highlighter; import org.jabref.gui.theme.ThemeManager; +import org.jabref.gui.util.WebViewStore; import org.jabref.logic.l10n.Localization; import org.jabref.logic.layout.format.Number; import org.jabref.logic.preview.PreviewLayout; -import org.jabref.logic.search.retrieval.Highlighter; import org.jabref.logic.util.BackgroundTask; import org.jabref.logic.util.TaskExecutor; -import org.jabref.logic.util.WebViewStore; import org.jabref.model.database.BibDatabaseContext; import org.jabref.model.entry.BibEntry; import org.jabref.model.search.query.SearchQuery; diff --git a/src/main/java/org/jabref/gui/push/AbstractPushToApplication.java b/jabgui/src/main/java/org/jabref/gui/push/AbstractPushToApplication.java similarity index 100% rename from src/main/java/org/jabref/gui/push/AbstractPushToApplication.java rename to jabgui/src/main/java/org/jabref/gui/push/AbstractPushToApplication.java diff --git a/src/main/java/org/jabref/gui/push/PushToApplication.java b/jabgui/src/main/java/org/jabref/gui/push/PushToApplication.java similarity index 100% rename from src/main/java/org/jabref/gui/push/PushToApplication.java rename to jabgui/src/main/java/org/jabref/gui/push/PushToApplication.java diff --git a/src/main/java/org/jabref/gui/push/PushToApplicationCommand.java b/jabgui/src/main/java/org/jabref/gui/push/PushToApplicationCommand.java similarity index 100% rename from src/main/java/org/jabref/gui/push/PushToApplicationCommand.java rename to jabgui/src/main/java/org/jabref/gui/push/PushToApplicationCommand.java diff --git a/src/main/java/org/jabref/gui/push/PushToApplicationPreferences.java b/jabgui/src/main/java/org/jabref/gui/push/PushToApplicationPreferences.java similarity index 100% rename from src/main/java/org/jabref/gui/push/PushToApplicationPreferences.java rename to jabgui/src/main/java/org/jabref/gui/push/PushToApplicationPreferences.java diff --git a/src/main/java/org/jabref/gui/push/PushToApplicationSettings.java b/jabgui/src/main/java/org/jabref/gui/push/PushToApplicationSettings.java similarity index 100% rename from src/main/java/org/jabref/gui/push/PushToApplicationSettings.java rename to jabgui/src/main/java/org/jabref/gui/push/PushToApplicationSettings.java diff --git a/src/main/java/org/jabref/gui/push/PushToApplications.java b/jabgui/src/main/java/org/jabref/gui/push/PushToApplications.java similarity index 100% rename from src/main/java/org/jabref/gui/push/PushToApplications.java rename to jabgui/src/main/java/org/jabref/gui/push/PushToApplications.java diff --git a/src/main/java/org/jabref/gui/push/PushToEmacs.java b/jabgui/src/main/java/org/jabref/gui/push/PushToEmacs.java similarity index 100% rename from src/main/java/org/jabref/gui/push/PushToEmacs.java rename to jabgui/src/main/java/org/jabref/gui/push/PushToEmacs.java diff --git a/src/main/java/org/jabref/gui/push/PushToEmacsSettings.java b/jabgui/src/main/java/org/jabref/gui/push/PushToEmacsSettings.java similarity index 100% rename from src/main/java/org/jabref/gui/push/PushToEmacsSettings.java rename to jabgui/src/main/java/org/jabref/gui/push/PushToEmacsSettings.java diff --git a/src/main/java/org/jabref/gui/push/PushToLyx.java b/jabgui/src/main/java/org/jabref/gui/push/PushToLyx.java similarity index 83% rename from src/main/java/org/jabref/gui/push/PushToLyx.java rename to jabgui/src/main/java/org/jabref/gui/push/PushToLyx.java index 0bcb7795fc8..f2ff670d0f4 100644 --- a/src/main/java/org/jabref/gui/push/PushToLyx.java +++ b/jabgui/src/main/java/org/jabref/gui/push/PushToLyx.java @@ -1,10 +1,10 @@ package org.jabref.gui.push; import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; import java.io.IOException; import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.List; import org.jabref.gui.DialogService; @@ -70,23 +70,20 @@ public void pushEntries(BibDatabaseContext database, final List entrie return; } - if (!commandPath.endsWith(".in")) { - commandPath = commandPath + ".in"; - } - File lp = new File(commandPath); // this needs to fixed because it gives "asdf" when going prefs.get("lyxpipe") - if (!lp.exists() || !lp.canWrite()) { + Path lp = Path.of(commandPath); // this needs to fixed because it gives "asdf" when going prefs.get("lyxpipe") + if (!Files.exists(lp) || !Files.isWritable(lp)) { // See if it helps to append ".in": - lp = new File(commandPath + ".in"); - if (!lp.exists() || !lp.canWrite()) { + lp = Path.of(commandPath + ".in"); + if (!Files.exists(lp) || !Files.isWritable(lp)) { couldNotPush = true; return; } } - final File lyxpipe = lp; + final Path lyxPipe = lp; HeadlessExecutorService.INSTANCE.executeAndWait(() -> { - try (FileWriter fw = new FileWriter(lyxpipe, StandardCharsets.UTF_8); BufferedWriter lyxOut = new BufferedWriter(fw)) { + try (BufferedWriter lyxOut = Files.newBufferedWriter(lyxPipe, StandardCharsets.UTF_8)) { String citeStr = "LYXCMD:sampleclient:citation-insert:" + keyString; lyxOut.write(citeStr + "\n"); } catch (IOException excep) { diff --git a/src/main/java/org/jabref/gui/push/PushToLyxSettings.java b/jabgui/src/main/java/org/jabref/gui/push/PushToLyxSettings.java similarity index 100% rename from src/main/java/org/jabref/gui/push/PushToLyxSettings.java rename to jabgui/src/main/java/org/jabref/gui/push/PushToLyxSettings.java diff --git a/src/main/java/org/jabref/gui/push/PushToSublimeText.java b/jabgui/src/main/java/org/jabref/gui/push/PushToSublimeText.java similarity index 100% rename from src/main/java/org/jabref/gui/push/PushToSublimeText.java rename to jabgui/src/main/java/org/jabref/gui/push/PushToSublimeText.java diff --git a/src/main/java/org/jabref/gui/push/PushToTeXstudio.java b/jabgui/src/main/java/org/jabref/gui/push/PushToTeXstudio.java similarity index 100% rename from src/main/java/org/jabref/gui/push/PushToTeXstudio.java rename to jabgui/src/main/java/org/jabref/gui/push/PushToTeXstudio.java diff --git a/src/main/java/org/jabref/gui/push/PushToTeXworks.java b/jabgui/src/main/java/org/jabref/gui/push/PushToTeXworks.java similarity index 100% rename from src/main/java/org/jabref/gui/push/PushToTeXworks.java rename to jabgui/src/main/java/org/jabref/gui/push/PushToTeXworks.java diff --git a/src/main/java/org/jabref/gui/push/PushToTexShop.java b/jabgui/src/main/java/org/jabref/gui/push/PushToTexShop.java similarity index 100% rename from src/main/java/org/jabref/gui/push/PushToTexShop.java rename to jabgui/src/main/java/org/jabref/gui/push/PushToTexShop.java diff --git a/src/main/java/org/jabref/gui/push/PushToTexmaker.java b/jabgui/src/main/java/org/jabref/gui/push/PushToTexmaker.java similarity index 100% rename from src/main/java/org/jabref/gui/push/PushToTexmaker.java rename to jabgui/src/main/java/org/jabref/gui/push/PushToTexmaker.java diff --git a/src/main/java/org/jabref/gui/push/PushToVScode.java b/jabgui/src/main/java/org/jabref/gui/push/PushToVScode.java similarity index 100% rename from src/main/java/org/jabref/gui/push/PushToVScode.java rename to jabgui/src/main/java/org/jabref/gui/push/PushToVScode.java diff --git a/src/main/java/org/jabref/gui/push/PushToVim.java b/jabgui/src/main/java/org/jabref/gui/push/PushToVim.java similarity index 100% rename from src/main/java/org/jabref/gui/push/PushToVim.java rename to jabgui/src/main/java/org/jabref/gui/push/PushToVim.java diff --git a/src/main/java/org/jabref/gui/push/PushToVimSettings.java b/jabgui/src/main/java/org/jabref/gui/push/PushToVimSettings.java similarity index 100% rename from src/main/java/org/jabref/gui/push/PushToVimSettings.java rename to jabgui/src/main/java/org/jabref/gui/push/PushToVimSettings.java diff --git a/src/main/java/org/jabref/gui/push/PushToWinEdt.java b/jabgui/src/main/java/org/jabref/gui/push/PushToWinEdt.java similarity index 100% rename from src/main/java/org/jabref/gui/push/PushToWinEdt.java rename to jabgui/src/main/java/org/jabref/gui/push/PushToWinEdt.java diff --git a/src/main/java/org/jabref/gui/remote/CLIMessageHandler.java b/jabgui/src/main/java/org/jabref/gui/remote/CLIMessageHandler.java similarity index 100% rename from src/main/java/org/jabref/gui/remote/CLIMessageHandler.java rename to jabgui/src/main/java/org/jabref/gui/remote/CLIMessageHandler.java diff --git a/src/main/java/org/jabref/gui/search/GlobalSearchBar.java b/jabgui/src/main/java/org/jabref/gui/search/GlobalSearchBar.java similarity index 100% rename from src/main/java/org/jabref/gui/search/GlobalSearchBar.java rename to jabgui/src/main/java/org/jabref/gui/search/GlobalSearchBar.java diff --git a/src/main/java/org/jabref/gui/search/GlobalSearchResultDialog.java b/jabgui/src/main/java/org/jabref/gui/search/GlobalSearchResultDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/search/GlobalSearchResultDialog.java rename to jabgui/src/main/java/org/jabref/gui/search/GlobalSearchResultDialog.java diff --git a/src/main/java/org/jabref/gui/search/GlobalSearchResultDialogViewModel.java b/jabgui/src/main/java/org/jabref/gui/search/GlobalSearchResultDialogViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/search/GlobalSearchResultDialogViewModel.java rename to jabgui/src/main/java/org/jabref/gui/search/GlobalSearchResultDialogViewModel.java diff --git a/src/main/java/org/jabref/logic/search/retrieval/Highlighter.java b/jabgui/src/main/java/org/jabref/gui/search/Highlighter.java similarity index 99% rename from src/main/java/org/jabref/logic/search/retrieval/Highlighter.java rename to jabgui/src/main/java/org/jabref/gui/search/Highlighter.java index 092b1f4e1fe..4f53e7c4434 100644 --- a/src/main/java/org/jabref/logic/search/retrieval/Highlighter.java +++ b/jabgui/src/main/java/org/jabref/gui/search/Highlighter.java @@ -1,4 +1,4 @@ -package org.jabref.logic.search.retrieval; +package org.jabref.gui.search; import java.sql.Connection; import java.sql.PreparedStatement; diff --git a/src/main/java/org/jabref/gui/search/MatchCategory.java b/jabgui/src/main/java/org/jabref/gui/search/MatchCategory.java similarity index 100% rename from src/main/java/org/jabref/gui/search/MatchCategory.java rename to jabgui/src/main/java/org/jabref/gui/search/MatchCategory.java diff --git a/src/main/java/org/jabref/gui/search/RebuildFulltextSearchIndexAction.java b/jabgui/src/main/java/org/jabref/gui/search/RebuildFulltextSearchIndexAction.java similarity index 100% rename from src/main/java/org/jabref/gui/search/RebuildFulltextSearchIndexAction.java rename to jabgui/src/main/java/org/jabref/gui/search/RebuildFulltextSearchIndexAction.java diff --git a/src/main/java/org/jabref/gui/search/SearchFieldRightClickMenu.java b/jabgui/src/main/java/org/jabref/gui/search/SearchFieldRightClickMenu.java similarity index 100% rename from src/main/java/org/jabref/gui/search/SearchFieldRightClickMenu.java rename to jabgui/src/main/java/org/jabref/gui/search/SearchFieldRightClickMenu.java diff --git a/src/main/java/org/jabref/gui/search/SearchResultsTable.java b/jabgui/src/main/java/org/jabref/gui/search/SearchResultsTable.java similarity index 100% rename from src/main/java/org/jabref/gui/search/SearchResultsTable.java rename to jabgui/src/main/java/org/jabref/gui/search/SearchResultsTable.java diff --git a/src/main/java/org/jabref/gui/search/SearchResultsTableDataModel.java b/jabgui/src/main/java/org/jabref/gui/search/SearchResultsTableDataModel.java similarity index 100% rename from src/main/java/org/jabref/gui/search/SearchResultsTableDataModel.java rename to jabgui/src/main/java/org/jabref/gui/search/SearchResultsTableDataModel.java diff --git a/src/main/java/org/jabref/gui/search/SearchTextField.java b/jabgui/src/main/java/org/jabref/gui/search/SearchTextField.java similarity index 100% rename from src/main/java/org/jabref/gui/search/SearchTextField.java rename to jabgui/src/main/java/org/jabref/gui/search/SearchTextField.java diff --git a/src/main/java/org/jabref/gui/search/SearchType.java b/jabgui/src/main/java/org/jabref/gui/search/SearchType.java similarity index 100% rename from src/main/java/org/jabref/gui/search/SearchType.java rename to jabgui/src/main/java/org/jabref/gui/search/SearchType.java diff --git a/src/main/java/org/jabref/gui/shared/ConnectToSharedDatabaseCommand.java b/jabgui/src/main/java/org/jabref/gui/shared/ConnectToSharedDatabaseCommand.java similarity index 100% rename from src/main/java/org/jabref/gui/shared/ConnectToSharedDatabaseCommand.java rename to jabgui/src/main/java/org/jabref/gui/shared/ConnectToSharedDatabaseCommand.java diff --git a/src/main/java/org/jabref/gui/shared/PullChangesFromSharedAction.java b/jabgui/src/main/java/org/jabref/gui/shared/PullChangesFromSharedAction.java similarity index 100% rename from src/main/java/org/jabref/gui/shared/PullChangesFromSharedAction.java rename to jabgui/src/main/java/org/jabref/gui/shared/PullChangesFromSharedAction.java diff --git a/src/main/java/org/jabref/gui/shared/SharedDatabaseLoginDialogView.java b/jabgui/src/main/java/org/jabref/gui/shared/SharedDatabaseLoginDialogView.java similarity index 100% rename from src/main/java/org/jabref/gui/shared/SharedDatabaseLoginDialogView.java rename to jabgui/src/main/java/org/jabref/gui/shared/SharedDatabaseLoginDialogView.java diff --git a/src/main/java/org/jabref/gui/shared/SharedDatabaseLoginDialogViewModel.java b/jabgui/src/main/java/org/jabref/gui/shared/SharedDatabaseLoginDialogViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/shared/SharedDatabaseLoginDialogViewModel.java rename to jabgui/src/main/java/org/jabref/gui/shared/SharedDatabaseLoginDialogViewModel.java diff --git a/src/main/java/org/jabref/gui/shared/SharedDatabaseUIManager.java b/jabgui/src/main/java/org/jabref/gui/shared/SharedDatabaseUIManager.java similarity index 99% rename from src/main/java/org/jabref/gui/shared/SharedDatabaseUIManager.java rename to jabgui/src/main/java/org/jabref/gui/shared/SharedDatabaseUIManager.java index 999dae62379..5cc7884ab35 100644 --- a/src/main/java/org/jabref/gui/shared/SharedDatabaseUIManager.java +++ b/jabgui/src/main/java/org/jabref/gui/shared/SharedDatabaseUIManager.java @@ -1,7 +1,7 @@ package org.jabref.gui.shared; import java.sql.SQLException; -import java.util.Collections; +import java.util.List; import java.util.Optional; import javax.swing.undo.UndoManager; @@ -151,7 +151,7 @@ public void listen(SharedEntriesNotPresentEvent event) { + "\n" + Localization.lang("You can restore the entry using the \"Undo\" operation.")); - stateManager.setSelectedEntries(Collections.emptyList()); + stateManager.setSelectedEntries(List.of()); } } diff --git a/src/main/java/org/jabref/gui/sidepane/GroupsSidePaneComponent.java b/jabgui/src/main/java/org/jabref/gui/sidepane/GroupsSidePaneComponent.java similarity index 100% rename from src/main/java/org/jabref/gui/sidepane/GroupsSidePaneComponent.java rename to jabgui/src/main/java/org/jabref/gui/sidepane/GroupsSidePaneComponent.java diff --git a/src/main/java/org/jabref/gui/sidepane/SidePane.java b/jabgui/src/main/java/org/jabref/gui/sidepane/SidePane.java similarity index 100% rename from src/main/java/org/jabref/gui/sidepane/SidePane.java rename to jabgui/src/main/java/org/jabref/gui/sidepane/SidePane.java diff --git a/src/main/java/org/jabref/gui/sidepane/SidePaneComponent.java b/jabgui/src/main/java/org/jabref/gui/sidepane/SidePaneComponent.java similarity index 100% rename from src/main/java/org/jabref/gui/sidepane/SidePaneComponent.java rename to jabgui/src/main/java/org/jabref/gui/sidepane/SidePaneComponent.java diff --git a/src/main/java/org/jabref/gui/sidepane/SidePaneContentFactory.java b/jabgui/src/main/java/org/jabref/gui/sidepane/SidePaneContentFactory.java similarity index 95% rename from src/main/java/org/jabref/gui/sidepane/SidePaneContentFactory.java rename to jabgui/src/main/java/org/jabref/gui/sidepane/SidePaneContentFactory.java index 33ac7d903f0..790f15adea2 100644 --- a/src/main/java/org/jabref/gui/sidepane/SidePaneContentFactory.java +++ b/jabgui/src/main/java/org/jabref/gui/sidepane/SidePaneContentFactory.java @@ -19,6 +19,8 @@ import org.jabref.model.entry.BibEntryTypesManager; import org.jabref.model.util.FileUpdateMonitor; +import com.airhacks.afterburner.injection.Injector; + public class SidePaneContentFactory { private final LibraryTabContainer tabContainer; private final GuiPreferences preferences; @@ -69,7 +71,7 @@ public Node create(SidePaneType sidePaneType) { case OPEN_OFFICE -> new OpenOfficePanel( tabContainer, preferences, - preferences.getOpenOfficePreferences(), + preferences.getOpenOfficePreferences(Injector.instantiateModelOrService(JournalAbbreviationRepository.class)), preferences.getExternalApplicationsPreferences(), preferences.getLayoutFormatterPreferences(), preferences.getCitationKeyPatternPreferences(), diff --git a/src/main/java/org/jabref/gui/sidepane/SidePaneType.java b/jabgui/src/main/java/org/jabref/gui/sidepane/SidePaneType.java similarity index 100% rename from src/main/java/org/jabref/gui/sidepane/SidePaneType.java rename to jabgui/src/main/java/org/jabref/gui/sidepane/SidePaneType.java diff --git a/src/main/java/org/jabref/gui/sidepane/SidePaneViewModel.java b/jabgui/src/main/java/org/jabref/gui/sidepane/SidePaneViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/sidepane/SidePaneViewModel.java rename to jabgui/src/main/java/org/jabref/gui/sidepane/SidePaneViewModel.java diff --git a/src/main/java/org/jabref/gui/sidepane/TogglePaneAction.java b/jabgui/src/main/java/org/jabref/gui/sidepane/TogglePaneAction.java similarity index 100% rename from src/main/java/org/jabref/gui/sidepane/TogglePaneAction.java rename to jabgui/src/main/java/org/jabref/gui/sidepane/TogglePaneAction.java diff --git a/src/main/java/org/jabref/gui/slr/EditExistingStudyAction.java b/jabgui/src/main/java/org/jabref/gui/slr/EditExistingStudyAction.java similarity index 100% rename from src/main/java/org/jabref/gui/slr/EditExistingStudyAction.java rename to jabgui/src/main/java/org/jabref/gui/slr/EditExistingStudyAction.java diff --git a/src/main/java/org/jabref/gui/slr/ExistingStudySearchAction.java b/jabgui/src/main/java/org/jabref/gui/slr/ExistingStudySearchAction.java similarity index 100% rename from src/main/java/org/jabref/gui/slr/ExistingStudySearchAction.java rename to jabgui/src/main/java/org/jabref/gui/slr/ExistingStudySearchAction.java diff --git a/src/main/java/org/jabref/gui/slr/ManageStudyDefinitionView.java b/jabgui/src/main/java/org/jabref/gui/slr/ManageStudyDefinitionView.java similarity index 100% rename from src/main/java/org/jabref/gui/slr/ManageStudyDefinitionView.java rename to jabgui/src/main/java/org/jabref/gui/slr/ManageStudyDefinitionView.java diff --git a/src/main/java/org/jabref/gui/slr/ManageStudyDefinitionViewModel.java b/jabgui/src/main/java/org/jabref/gui/slr/ManageStudyDefinitionViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/slr/ManageStudyDefinitionViewModel.java rename to jabgui/src/main/java/org/jabref/gui/slr/ManageStudyDefinitionViewModel.java diff --git a/src/main/java/org/jabref/gui/slr/SlrStudyAndDirectory.java b/jabgui/src/main/java/org/jabref/gui/slr/SlrStudyAndDirectory.java similarity index 100% rename from src/main/java/org/jabref/gui/slr/SlrStudyAndDirectory.java rename to jabgui/src/main/java/org/jabref/gui/slr/SlrStudyAndDirectory.java diff --git a/src/main/java/org/jabref/gui/slr/StartNewStudyAction.java b/jabgui/src/main/java/org/jabref/gui/slr/StartNewStudyAction.java similarity index 100% rename from src/main/java/org/jabref/gui/slr/StartNewStudyAction.java rename to jabgui/src/main/java/org/jabref/gui/slr/StartNewStudyAction.java diff --git a/src/main/java/org/jabref/gui/slr/StudyCatalogItem.java b/jabgui/src/main/java/org/jabref/gui/slr/StudyCatalogItem.java similarity index 100% rename from src/main/java/org/jabref/gui/slr/StudyCatalogItem.java rename to jabgui/src/main/java/org/jabref/gui/slr/StudyCatalogItem.java diff --git a/src/main/java/org/jabref/gui/specialfields/SpecialFieldAction.java b/jabgui/src/main/java/org/jabref/gui/specialfields/SpecialFieldAction.java similarity index 96% rename from src/main/java/org/jabref/gui/specialfields/SpecialFieldAction.java rename to jabgui/src/main/java/org/jabref/gui/specialfields/SpecialFieldAction.java index 9e6bcc3d95a..a38baf4c6be 100644 --- a/src/main/java/org/jabref/gui/specialfields/SpecialFieldAction.java +++ b/jabgui/src/main/java/org/jabref/gui/specialfields/SpecialFieldAction.java @@ -106,9 +106,8 @@ private String getTextDone(SpecialField field, String... params) { // Single value fields can be toggled only return Localization.lang("Toggled '%0' for %1 entries", viewModel.getLocalization(), params[0]); } else if (!field.isSingleValueField() && (params.length == 2) && (params[0] != null) && (params[1] != null)) { - // setting a multi value special field - the setted value is displayed, too - String[] allParams = {viewModel.getLocalization(), params[0], params[1]}; - return Localization.lang("Set '%0' to '%1' for %2 entries", allParams); + // setting a multi value special field - the set value is displayed, too + return Localization.lang("Set '%0' to '%1' for %2 entries", viewModel.getLocalization(), params[0], params[1]); } else if (!field.isSingleValueField() && (params.length == 1) && (params[0] != null)) { // clearing a multi value specialfield return Localization.lang("Cleared '%0' for %1 entries", viewModel.getLocalization(), params[0]); diff --git a/src/main/java/org/jabref/gui/specialfields/SpecialFieldMenuItemFactory.java b/jabgui/src/main/java/org/jabref/gui/specialfields/SpecialFieldMenuItemFactory.java similarity index 100% rename from src/main/java/org/jabref/gui/specialfields/SpecialFieldMenuItemFactory.java rename to jabgui/src/main/java/org/jabref/gui/specialfields/SpecialFieldMenuItemFactory.java diff --git a/src/main/java/org/jabref/gui/specialfields/SpecialFieldValueViewModel.java b/jabgui/src/main/java/org/jabref/gui/specialfields/SpecialFieldValueViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/specialfields/SpecialFieldValueViewModel.java rename to jabgui/src/main/java/org/jabref/gui/specialfields/SpecialFieldValueViewModel.java diff --git a/src/main/java/org/jabref/gui/specialfields/SpecialFieldViewModel.java b/jabgui/src/main/java/org/jabref/gui/specialfields/SpecialFieldViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/specialfields/SpecialFieldViewModel.java rename to jabgui/src/main/java/org/jabref/gui/specialfields/SpecialFieldViewModel.java diff --git a/src/main/java/org/jabref/gui/specialfields/SpecialFieldsPreferences.java b/jabgui/src/main/java/org/jabref/gui/specialfields/SpecialFieldsPreferences.java similarity index 100% rename from src/main/java/org/jabref/gui/specialfields/SpecialFieldsPreferences.java rename to jabgui/src/main/java/org/jabref/gui/specialfields/SpecialFieldsPreferences.java diff --git a/src/main/java/org/jabref/gui/texparser/CitationsDisplay.java b/jabgui/src/main/java/org/jabref/gui/texparser/CitationsDisplay.java similarity index 100% rename from src/main/java/org/jabref/gui/texparser/CitationsDisplay.java rename to jabgui/src/main/java/org/jabref/gui/texparser/CitationsDisplay.java diff --git a/src/main/java/org/jabref/gui/texparser/ParseLatexAction.java b/jabgui/src/main/java/org/jabref/gui/texparser/ParseLatexAction.java similarity index 100% rename from src/main/java/org/jabref/gui/texparser/ParseLatexAction.java rename to jabgui/src/main/java/org/jabref/gui/texparser/ParseLatexAction.java diff --git a/src/main/java/org/jabref/gui/texparser/ParseLatexDialogView.java b/jabgui/src/main/java/org/jabref/gui/texparser/ParseLatexDialogView.java similarity index 100% rename from src/main/java/org/jabref/gui/texparser/ParseLatexDialogView.java rename to jabgui/src/main/java/org/jabref/gui/texparser/ParseLatexDialogView.java diff --git a/src/main/java/org/jabref/gui/texparser/ParseLatexDialogViewModel.java b/jabgui/src/main/java/org/jabref/gui/texparser/ParseLatexDialogViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/texparser/ParseLatexDialogViewModel.java rename to jabgui/src/main/java/org/jabref/gui/texparser/ParseLatexDialogViewModel.java diff --git a/src/main/java/org/jabref/gui/texparser/ParseLatexResultView.java b/jabgui/src/main/java/org/jabref/gui/texparser/ParseLatexResultView.java similarity index 100% rename from src/main/java/org/jabref/gui/texparser/ParseLatexResultView.java rename to jabgui/src/main/java/org/jabref/gui/texparser/ParseLatexResultView.java diff --git a/src/main/java/org/jabref/gui/texparser/ParseLatexResultViewModel.java b/jabgui/src/main/java/org/jabref/gui/texparser/ParseLatexResultViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/texparser/ParseLatexResultViewModel.java rename to jabgui/src/main/java/org/jabref/gui/texparser/ParseLatexResultViewModel.java diff --git a/src/main/java/org/jabref/gui/texparser/ReferenceViewModel.java b/jabgui/src/main/java/org/jabref/gui/texparser/ReferenceViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/texparser/ReferenceViewModel.java rename to jabgui/src/main/java/org/jabref/gui/texparser/ReferenceViewModel.java diff --git a/src/main/java/org/jabref/gui/theme/StyleSheet.java b/jabgui/src/main/java/org/jabref/gui/theme/StyleSheet.java similarity index 100% rename from src/main/java/org/jabref/gui/theme/StyleSheet.java rename to jabgui/src/main/java/org/jabref/gui/theme/StyleSheet.java diff --git a/src/main/java/org/jabref/gui/theme/StyleSheetDataUrl.java b/jabgui/src/main/java/org/jabref/gui/theme/StyleSheetDataUrl.java similarity index 100% rename from src/main/java/org/jabref/gui/theme/StyleSheetDataUrl.java rename to jabgui/src/main/java/org/jabref/gui/theme/StyleSheetDataUrl.java diff --git a/src/main/java/org/jabref/gui/theme/StyleSheetFile.java b/jabgui/src/main/java/org/jabref/gui/theme/StyleSheetFile.java similarity index 100% rename from src/main/java/org/jabref/gui/theme/StyleSheetFile.java rename to jabgui/src/main/java/org/jabref/gui/theme/StyleSheetFile.java diff --git a/src/main/java/org/jabref/gui/theme/StyleSheetResource.java b/jabgui/src/main/java/org/jabref/gui/theme/StyleSheetResource.java similarity index 100% rename from src/main/java/org/jabref/gui/theme/StyleSheetResource.java rename to jabgui/src/main/java/org/jabref/gui/theme/StyleSheetResource.java diff --git a/src/main/java/org/jabref/gui/theme/Theme.java b/jabgui/src/main/java/org/jabref/gui/theme/Theme.java similarity index 100% rename from src/main/java/org/jabref/gui/theme/Theme.java rename to jabgui/src/main/java/org/jabref/gui/theme/Theme.java diff --git a/src/main/java/org/jabref/gui/theme/ThemeManager.java b/jabgui/src/main/java/org/jabref/gui/theme/ThemeManager.java similarity index 100% rename from src/main/java/org/jabref/gui/theme/ThemeManager.java rename to jabgui/src/main/java/org/jabref/gui/theme/ThemeManager.java diff --git a/src/main/java/org/jabref/gui/theme/ThemeTypes.java b/jabgui/src/main/java/org/jabref/gui/theme/ThemeTypes.java similarity index 100% rename from src/main/java/org/jabref/gui/theme/ThemeTypes.java rename to jabgui/src/main/java/org/jabref/gui/theme/ThemeTypes.java diff --git a/src/main/java/org/jabref/gui/undo/AbstractUndoableJabRefEdit.java b/jabgui/src/main/java/org/jabref/gui/undo/AbstractUndoableJabRefEdit.java similarity index 100% rename from src/main/java/org/jabref/gui/undo/AbstractUndoableJabRefEdit.java rename to jabgui/src/main/java/org/jabref/gui/undo/AbstractUndoableJabRefEdit.java diff --git a/src/main/java/org/jabref/gui/undo/CountingUndoManager.java b/jabgui/src/main/java/org/jabref/gui/undo/CountingUndoManager.java similarity index 100% rename from src/main/java/org/jabref/gui/undo/CountingUndoManager.java rename to jabgui/src/main/java/org/jabref/gui/undo/CountingUndoManager.java diff --git a/src/main/java/org/jabref/gui/undo/NamedCompound.java b/jabgui/src/main/java/org/jabref/gui/undo/NamedCompound.java similarity index 100% rename from src/main/java/org/jabref/gui/undo/NamedCompound.java rename to jabgui/src/main/java/org/jabref/gui/undo/NamedCompound.java diff --git a/src/main/java/org/jabref/gui/undo/RedoAction.java b/jabgui/src/main/java/org/jabref/gui/undo/RedoAction.java similarity index 100% rename from src/main/java/org/jabref/gui/undo/RedoAction.java rename to jabgui/src/main/java/org/jabref/gui/undo/RedoAction.java diff --git a/src/main/java/org/jabref/gui/undo/UndoAction.java b/jabgui/src/main/java/org/jabref/gui/undo/UndoAction.java similarity index 100% rename from src/main/java/org/jabref/gui/undo/UndoAction.java rename to jabgui/src/main/java/org/jabref/gui/undo/UndoAction.java diff --git a/src/main/java/org/jabref/gui/undo/UndoableChangeType.java b/jabgui/src/main/java/org/jabref/gui/undo/UndoableChangeType.java similarity index 100% rename from src/main/java/org/jabref/gui/undo/UndoableChangeType.java rename to jabgui/src/main/java/org/jabref/gui/undo/UndoableChangeType.java diff --git a/src/main/java/org/jabref/gui/undo/UndoableFieldChange.java b/jabgui/src/main/java/org/jabref/gui/undo/UndoableFieldChange.java similarity index 100% rename from src/main/java/org/jabref/gui/undo/UndoableFieldChange.java rename to jabgui/src/main/java/org/jabref/gui/undo/UndoableFieldChange.java diff --git a/src/main/java/org/jabref/gui/undo/UndoableInsertEntries.java b/jabgui/src/main/java/org/jabref/gui/undo/UndoableInsertEntries.java similarity index 96% rename from src/main/java/org/jabref/gui/undo/UndoableInsertEntries.java rename to jabgui/src/main/java/org/jabref/gui/undo/UndoableInsertEntries.java index 79803f1265d..6d02fa37523 100644 --- a/src/main/java/org/jabref/gui/undo/UndoableInsertEntries.java +++ b/jabgui/src/main/java/org/jabref/gui/undo/UndoableInsertEntries.java @@ -1,6 +1,5 @@ package org.jabref.gui.undo; -import java.util.Collections; import java.util.List; import org.jabref.logic.l10n.Localization; @@ -24,7 +23,7 @@ public class UndoableInsertEntries extends AbstractUndoableJabRefEdit { private final boolean paste; public UndoableInsertEntries(BibDatabase database, BibEntry entry) { - this(database, Collections.singletonList(entry)); + this(database, List.of(entry)); } public UndoableInsertEntries(BibDatabase database, List entries) { diff --git a/src/main/java/org/jabref/gui/undo/UndoableInsertString.java b/jabgui/src/main/java/org/jabref/gui/undo/UndoableInsertString.java similarity index 100% rename from src/main/java/org/jabref/gui/undo/UndoableInsertString.java rename to jabgui/src/main/java/org/jabref/gui/undo/UndoableInsertString.java diff --git a/src/main/java/org/jabref/gui/undo/UndoableKeyChange.java b/jabgui/src/main/java/org/jabref/gui/undo/UndoableKeyChange.java similarity index 100% rename from src/main/java/org/jabref/gui/undo/UndoableKeyChange.java rename to jabgui/src/main/java/org/jabref/gui/undo/UndoableKeyChange.java diff --git a/src/main/java/org/jabref/gui/undo/UndoablePreambleChange.java b/jabgui/src/main/java/org/jabref/gui/undo/UndoablePreambleChange.java similarity index 100% rename from src/main/java/org/jabref/gui/undo/UndoablePreambleChange.java rename to jabgui/src/main/java/org/jabref/gui/undo/UndoablePreambleChange.java diff --git a/src/main/java/org/jabref/gui/undo/UndoableRemoveEntries.java b/jabgui/src/main/java/org/jabref/gui/undo/UndoableRemoveEntries.java similarity index 96% rename from src/main/java/org/jabref/gui/undo/UndoableRemoveEntries.java rename to jabgui/src/main/java/org/jabref/gui/undo/UndoableRemoveEntries.java index 133c44a81dd..c095f740f3b 100644 --- a/src/main/java/org/jabref/gui/undo/UndoableRemoveEntries.java +++ b/jabgui/src/main/java/org/jabref/gui/undo/UndoableRemoveEntries.java @@ -1,6 +1,5 @@ package org.jabref.gui.undo; -import java.util.Collections; import java.util.List; import org.jabref.logic.l10n.Localization; @@ -27,7 +26,7 @@ public class UndoableRemoveEntries extends AbstractUndoableJabRefEdit { private final boolean cut; public UndoableRemoveEntries(BibDatabase base, BibEntry entry) { - this(base, Collections.singletonList(entry)); + this(base, List.of(entry)); } public UndoableRemoveEntries(BibDatabase base, List entries) { diff --git a/src/main/java/org/jabref/gui/undo/UndoableRemoveString.java b/jabgui/src/main/java/org/jabref/gui/undo/UndoableRemoveString.java similarity index 100% rename from src/main/java/org/jabref/gui/undo/UndoableRemoveString.java rename to jabgui/src/main/java/org/jabref/gui/undo/UndoableRemoveString.java diff --git a/src/main/java/org/jabref/gui/undo/UndoableStringChange.java b/jabgui/src/main/java/org/jabref/gui/undo/UndoableStringChange.java similarity index 100% rename from src/main/java/org/jabref/gui/undo/UndoableStringChange.java rename to jabgui/src/main/java/org/jabref/gui/undo/UndoableStringChange.java diff --git a/src/main/java/org/jabref/gui/util/BaseDialog.java b/jabgui/src/main/java/org/jabref/gui/util/BaseDialog.java similarity index 100% rename from src/main/java/org/jabref/gui/util/BaseDialog.java rename to jabgui/src/main/java/org/jabref/gui/util/BaseDialog.java diff --git a/src/main/java/org/jabref/gui/util/BaseWindow.java b/jabgui/src/main/java/org/jabref/gui/util/BaseWindow.java similarity index 100% rename from src/main/java/org/jabref/gui/util/BaseWindow.java rename to jabgui/src/main/java/org/jabref/gui/util/BaseWindow.java diff --git a/src/main/java/org/jabref/gui/util/BindingsHelper.java b/jabgui/src/main/java/org/jabref/gui/util/BindingsHelper.java similarity index 100% rename from src/main/java/org/jabref/gui/util/BindingsHelper.java rename to jabgui/src/main/java/org/jabref/gui/util/BindingsHelper.java diff --git a/src/main/java/org/jabref/gui/util/ColorUtil.java b/jabgui/src/main/java/org/jabref/gui/util/ColorUtil.java similarity index 100% rename from src/main/java/org/jabref/gui/util/ColorUtil.java rename to jabgui/src/main/java/org/jabref/gui/util/ColorUtil.java diff --git a/src/main/java/org/jabref/gui/util/ControlHelper.java b/jabgui/src/main/java/org/jabref/gui/util/ControlHelper.java similarity index 98% rename from src/main/java/org/jabref/gui/util/ControlHelper.java rename to jabgui/src/main/java/org/jabref/gui/util/ControlHelper.java index 1526b816f7b..d998764cfb7 100644 --- a/src/main/java/org/jabref/gui/util/ControlHelper.java +++ b/jabgui/src/main/java/org/jabref/gui/util/ControlHelper.java @@ -25,10 +25,10 @@ public enum EllipsisPosition { BEGINNING, CENTER, ENDING } public static void setAction(ButtonType buttonType, DialogPane dialogPane, Consumer consumer) { Button button = (Button) dialogPane.lookupButton(buttonType); - button.addEventFilter(ActionEvent.ACTION, (event -> { + button.addEventFilter(ActionEvent.ACTION, event -> { consumer.accept(event); event.consume(); - })); + }); } public static boolean childIsFocused(Parent node) { diff --git a/src/main/java/org/jabref/gui/util/CustomLocalDragboard.java b/jabgui/src/main/java/org/jabref/gui/util/CustomLocalDragboard.java similarity index 96% rename from src/main/java/org/jabref/gui/util/CustomLocalDragboard.java rename to jabgui/src/main/java/org/jabref/gui/util/CustomLocalDragboard.java index 7a35d42e311..e0d790f85db 100644 --- a/src/main/java/org/jabref/gui/util/CustomLocalDragboard.java +++ b/jabgui/src/main/java/org/jabref/gui/util/CustomLocalDragboard.java @@ -1,6 +1,5 @@ package org.jabref.gui.util; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -65,7 +64,7 @@ public List getBibEntries() { if (hasBibEntries()) { return getValue(BIB_ENTRIES); } - return Collections.emptyList(); + return List.of(); } public boolean hasBibEntries() { @@ -90,6 +89,6 @@ public List getPreviewLayouts() { if (hasType(DragAndDropDataFormats.PREVIEWLAYOUT_LIST_CLASS)) { return getValue(DragAndDropDataFormats.PREVIEWLAYOUT_LIST_CLASS); } - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/gui/util/CustomRatingSkin.java b/jabgui/src/main/java/org/jabref/gui/util/CustomRatingSkin.java similarity index 100% rename from src/main/java/org/jabref/gui/util/CustomRatingSkin.java rename to jabgui/src/main/java/org/jabref/gui/util/CustomRatingSkin.java diff --git a/src/main/java/org/jabref/gui/util/CustomTitledPaneSkin.java b/jabgui/src/main/java/org/jabref/gui/util/CustomTitledPaneSkin.java similarity index 100% rename from src/main/java/org/jabref/gui/util/CustomTitledPaneSkin.java rename to jabgui/src/main/java/org/jabref/gui/util/CustomTitledPaneSkin.java diff --git a/src/main/java/org/jabref/gui/util/DefaultFileUpdateMonitor.java b/jabgui/src/main/java/org/jabref/gui/util/DefaultFileUpdateMonitor.java similarity index 100% rename from src/main/java/org/jabref/gui/util/DefaultFileUpdateMonitor.java rename to jabgui/src/main/java/org/jabref/gui/util/DefaultFileUpdateMonitor.java diff --git a/src/main/java/org/jabref/gui/util/DialogWindowState.java b/jabgui/src/main/java/org/jabref/gui/util/DialogWindowState.java similarity index 100% rename from src/main/java/org/jabref/gui/util/DialogWindowState.java rename to jabgui/src/main/java/org/jabref/gui/util/DialogWindowState.java diff --git a/src/main/java/org/jabref/gui/util/DirectoryDialogConfiguration.java b/jabgui/src/main/java/org/jabref/gui/util/DirectoryDialogConfiguration.java similarity index 100% rename from src/main/java/org/jabref/gui/util/DirectoryDialogConfiguration.java rename to jabgui/src/main/java/org/jabref/gui/util/DirectoryDialogConfiguration.java diff --git a/src/main/java/org/jabref/gui/util/DirectoryMonitor.java b/jabgui/src/main/java/org/jabref/gui/util/DirectoryMonitor.java similarity index 100% rename from src/main/java/org/jabref/gui/util/DirectoryMonitor.java rename to jabgui/src/main/java/org/jabref/gui/util/DirectoryMonitor.java diff --git a/src/main/java/org/jabref/gui/util/DragDrop.java b/jabgui/src/main/java/org/jabref/gui/util/DragDrop.java similarity index 100% rename from src/main/java/org/jabref/gui/util/DragDrop.java rename to jabgui/src/main/java/org/jabref/gui/util/DragDrop.java diff --git a/src/main/java/org/jabref/gui/util/DroppingMouseLocation.java b/jabgui/src/main/java/org/jabref/gui/util/DroppingMouseLocation.java similarity index 100% rename from src/main/java/org/jabref/gui/util/DroppingMouseLocation.java rename to jabgui/src/main/java/org/jabref/gui/util/DroppingMouseLocation.java diff --git a/src/main/java/org/jabref/gui/util/DynamicallyChangeableNode.java b/jabgui/src/main/java/org/jabref/gui/util/DynamicallyChangeableNode.java similarity index 100% rename from src/main/java/org/jabref/gui/util/DynamicallyChangeableNode.java rename to jabgui/src/main/java/org/jabref/gui/util/DynamicallyChangeableNode.java diff --git a/src/main/java/org/jabref/gui/util/FieldsUtil.java b/jabgui/src/main/java/org/jabref/gui/util/FieldsUtil.java similarity index 100% rename from src/main/java/org/jabref/gui/util/FieldsUtil.java rename to jabgui/src/main/java/org/jabref/gui/util/FieldsUtil.java diff --git a/src/main/java/org/jabref/gui/util/FileDialogConfiguration.java b/jabgui/src/main/java/org/jabref/gui/util/FileDialogConfiguration.java similarity index 100% rename from src/main/java/org/jabref/gui/util/FileDialogConfiguration.java rename to jabgui/src/main/java/org/jabref/gui/util/FileDialogConfiguration.java diff --git a/src/main/java/org/jabref/gui/util/FileFilterConverter.java b/jabgui/src/main/java/org/jabref/gui/util/FileFilterConverter.java similarity index 100% rename from src/main/java/org/jabref/gui/util/FileFilterConverter.java rename to jabgui/src/main/java/org/jabref/gui/util/FileFilterConverter.java diff --git a/src/main/java/org/jabref/gui/util/FileNodeViewModel.java b/jabgui/src/main/java/org/jabref/gui/util/FileNodeViewModel.java similarity index 100% rename from src/main/java/org/jabref/gui/util/FileNodeViewModel.java rename to jabgui/src/main/java/org/jabref/gui/util/FileNodeViewModel.java diff --git a/src/main/java/org/jabref/gui/util/FilteredListProxy.java b/jabgui/src/main/java/org/jabref/gui/util/FilteredListProxy.java similarity index 100% rename from src/main/java/org/jabref/gui/util/FilteredListProxy.java rename to jabgui/src/main/java/org/jabref/gui/util/FilteredListProxy.java diff --git a/src/main/java/org/jabref/gui/util/IconValidationDecorator.java b/jabgui/src/main/java/org/jabref/gui/util/IconValidationDecorator.java similarity index 91% rename from src/main/java/org/jabref/gui/util/IconValidationDecorator.java rename to jabgui/src/main/java/org/jabref/gui/util/IconValidationDecorator.java index 2f7b1292244..4fdc492d228 100644 --- a/src/main/java/org/jabref/gui/util/IconValidationDecorator.java +++ b/jabgui/src/main/java/org/jabref/gui/util/IconValidationDecorator.java @@ -1,7 +1,7 @@ package org.jabref.gui.util; import java.util.Collection; -import java.util.Collections; +import java.util.List; import javafx.geometry.Pos; import javafx.scene.Node; @@ -47,7 +47,7 @@ public Node createDecorationNode(ValidationMessage message) { label.setTooltip(createTooltip(message)); label.setAlignment(position); // Prevent label from stretching - label.setMaxHeight(Control.USE_PREF_SIZE); + label.setMaxHeight(Control.USE_PREF_SIZE); return label; } @@ -60,6 +60,6 @@ protected Tooltip createTooltip(ValidationMessage message) { @Override protected Collection createValidationDecorations(ValidationMessage message) { - return Collections.singletonList(new GraphicDecoration(createDecorationNode(message), position)); + return List.of(new GraphicDecoration(createDecorationNode(message), position)); } } diff --git a/src/main/java/org/jabref/gui/util/JabRefResourceLocator.java b/jabgui/src/main/java/org/jabref/gui/util/JabRefResourceLocator.java similarity index 100% rename from src/main/java/org/jabref/gui/util/JabRefResourceLocator.java rename to jabgui/src/main/java/org/jabref/gui/util/JabRefResourceLocator.java diff --git a/src/main/java/org/jabref/gui/util/NoSelectionModel.java b/jabgui/src/main/java/org/jabref/gui/util/NoSelectionModel.java similarity index 100% rename from src/main/java/org/jabref/gui/util/NoSelectionModel.java rename to jabgui/src/main/java/org/jabref/gui/util/NoSelectionModel.java diff --git a/src/main/java/org/jabref/gui/util/OnlyIntegerFormatter.java b/jabgui/src/main/java/org/jabref/gui/util/OnlyIntegerFormatter.java similarity index 100% rename from src/main/java/org/jabref/gui/util/OnlyIntegerFormatter.java rename to jabgui/src/main/java/org/jabref/gui/util/OnlyIntegerFormatter.java diff --git a/src/main/java/org/jabref/gui/util/OptionalObjectProperty.java b/jabgui/src/main/java/org/jabref/gui/util/OptionalObjectProperty.java similarity index 100% rename from src/main/java/org/jabref/gui/util/OptionalObjectProperty.java rename to jabgui/src/main/java/org/jabref/gui/util/OptionalObjectProperty.java diff --git a/src/main/java/org/jabref/gui/util/OptionalValueTableCellFactory.java b/jabgui/src/main/java/org/jabref/gui/util/OptionalValueTableCellFactory.java similarity index 100% rename from src/main/java/org/jabref/gui/util/OptionalValueTableCellFactory.java rename to jabgui/src/main/java/org/jabref/gui/util/OptionalValueTableCellFactory.java diff --git a/src/main/java/org/jabref/gui/util/RecursiveTreeItem.java b/jabgui/src/main/java/org/jabref/gui/util/RecursiveTreeItem.java similarity index 100% rename from src/main/java/org/jabref/gui/util/RecursiveTreeItem.java rename to jabgui/src/main/java/org/jabref/gui/util/RecursiveTreeItem.java diff --git a/src/main/java/org/jabref/gui/util/StreamGobbler.java b/jabgui/src/main/java/org/jabref/gui/util/StreamGobbler.java similarity index 100% rename from src/main/java/org/jabref/gui/util/StreamGobbler.java rename to jabgui/src/main/java/org/jabref/gui/util/StreamGobbler.java diff --git a/src/main/java/org/jabref/gui/util/TextFlowLimited.java b/jabgui/src/main/java/org/jabref/gui/util/TextFlowLimited.java similarity index 100% rename from src/main/java/org/jabref/gui/util/TextFlowLimited.java rename to jabgui/src/main/java/org/jabref/gui/util/TextFlowLimited.java diff --git a/src/main/java/org/jabref/gui/util/TooltipTextUtil.java b/jabgui/src/main/java/org/jabref/gui/util/TooltipTextUtil.java similarity index 100% rename from src/main/java/org/jabref/gui/util/TooltipTextUtil.java rename to jabgui/src/main/java/org/jabref/gui/util/TooltipTextUtil.java diff --git a/src/main/java/org/jabref/gui/util/URLs.java b/jabgui/src/main/java/org/jabref/gui/util/URLs.java similarity index 100% rename from src/main/java/org/jabref/gui/util/URLs.java rename to jabgui/src/main/java/org/jabref/gui/util/URLs.java diff --git a/src/main/java/org/jabref/gui/util/UiTaskExecutor.java b/jabgui/src/main/java/org/jabref/gui/util/UiTaskExecutor.java similarity index 100% rename from src/main/java/org/jabref/gui/util/UiTaskExecutor.java rename to jabgui/src/main/java/org/jabref/gui/util/UiTaskExecutor.java diff --git a/src/main/java/org/jabref/gui/util/UiThreadList.java b/jabgui/src/main/java/org/jabref/gui/util/UiThreadList.java similarity index 100% rename from src/main/java/org/jabref/gui/util/UiThreadList.java rename to jabgui/src/main/java/org/jabref/gui/util/UiThreadList.java diff --git a/src/main/java/org/jabref/gui/util/ValueTableCellFactory.java b/jabgui/src/main/java/org/jabref/gui/util/ValueTableCellFactory.java similarity index 100% rename from src/main/java/org/jabref/gui/util/ValueTableCellFactory.java rename to jabgui/src/main/java/org/jabref/gui/util/ValueTableCellFactory.java diff --git a/src/main/java/org/jabref/gui/util/ViewModelListCellFactory.java b/jabgui/src/main/java/org/jabref/gui/util/ViewModelListCellFactory.java similarity index 100% rename from src/main/java/org/jabref/gui/util/ViewModelListCellFactory.java rename to jabgui/src/main/java/org/jabref/gui/util/ViewModelListCellFactory.java diff --git a/src/main/java/org/jabref/gui/util/ViewModelTableRowFactory.java b/jabgui/src/main/java/org/jabref/gui/util/ViewModelTableRowFactory.java similarity index 100% rename from src/main/java/org/jabref/gui/util/ViewModelTableRowFactory.java rename to jabgui/src/main/java/org/jabref/gui/util/ViewModelTableRowFactory.java diff --git a/src/main/java/org/jabref/gui/util/ViewModelTextFieldTableCellVisualizationFactory.java b/jabgui/src/main/java/org/jabref/gui/util/ViewModelTextFieldTableCellVisualizationFactory.java similarity index 100% rename from src/main/java/org/jabref/gui/util/ViewModelTextFieldTableCellVisualizationFactory.java rename to jabgui/src/main/java/org/jabref/gui/util/ViewModelTextFieldTableCellVisualizationFactory.java diff --git a/src/main/java/org/jabref/gui/util/ViewModelTreeCellFactory.java b/jabgui/src/main/java/org/jabref/gui/util/ViewModelTreeCellFactory.java similarity index 100% rename from src/main/java/org/jabref/gui/util/ViewModelTreeCellFactory.java rename to jabgui/src/main/java/org/jabref/gui/util/ViewModelTreeCellFactory.java diff --git a/src/main/java/org/jabref/gui/util/ViewModelTreeTableCellFactory.java b/jabgui/src/main/java/org/jabref/gui/util/ViewModelTreeTableCellFactory.java similarity index 100% rename from src/main/java/org/jabref/gui/util/ViewModelTreeTableCellFactory.java rename to jabgui/src/main/java/org/jabref/gui/util/ViewModelTreeTableCellFactory.java diff --git a/src/main/java/org/jabref/gui/util/ViewModelTreeTableRowFactory.java b/jabgui/src/main/java/org/jabref/gui/util/ViewModelTreeTableRowFactory.java similarity index 100% rename from src/main/java/org/jabref/gui/util/ViewModelTreeTableRowFactory.java rename to jabgui/src/main/java/org/jabref/gui/util/ViewModelTreeTableRowFactory.java diff --git a/src/main/java/org/jabref/logic/util/WebViewStore.java b/jabgui/src/main/java/org/jabref/gui/util/WebViewStore.java similarity index 98% rename from src/main/java/org/jabref/logic/util/WebViewStore.java rename to jabgui/src/main/java/org/jabref/gui/util/WebViewStore.java index 9015196ee73..a683f3e9430 100644 --- a/src/main/java/org/jabref/logic/util/WebViewStore.java +++ b/jabgui/src/main/java/org/jabref/gui/util/WebViewStore.java @@ -1,4 +1,4 @@ -package org.jabref.logic.util; +package org.jabref.gui.util; import java.util.ArrayDeque; import java.util.Queue; diff --git a/src/main/java/org/jabref/gui/util/ZipFileChooser.java b/jabgui/src/main/java/org/jabref/gui/util/ZipFileChooser.java similarity index 100% rename from src/main/java/org/jabref/gui/util/ZipFileChooser.java rename to jabgui/src/main/java/org/jabref/gui/util/ZipFileChooser.java diff --git a/src/main/java/org/jabref/gui/util/comparator/NumericFieldComparator.java b/jabgui/src/main/java/org/jabref/gui/util/comparator/NumericFieldComparator.java similarity index 100% rename from src/main/java/org/jabref/gui/util/comparator/NumericFieldComparator.java rename to jabgui/src/main/java/org/jabref/gui/util/comparator/NumericFieldComparator.java diff --git a/src/main/java/org/jabref/gui/util/comparator/RankingFieldComparator.java b/jabgui/src/main/java/org/jabref/gui/util/comparator/RankingFieldComparator.java similarity index 100% rename from src/main/java/org/jabref/gui/util/comparator/RankingFieldComparator.java rename to jabgui/src/main/java/org/jabref/gui/util/comparator/RankingFieldComparator.java diff --git a/src/main/java/org/jabref/gui/util/comparator/SpecialFieldComparator.java b/jabgui/src/main/java/org/jabref/gui/util/comparator/SpecialFieldComparator.java similarity index 100% rename from src/main/java/org/jabref/gui/util/comparator/SpecialFieldComparator.java rename to jabgui/src/main/java/org/jabref/gui/util/comparator/SpecialFieldComparator.java diff --git a/src/main/java/org/jabref/gui/util/component/TemporalAccessorPicker.java b/jabgui/src/main/java/org/jabref/gui/util/component/TemporalAccessorPicker.java similarity index 100% rename from src/main/java/org/jabref/gui/util/component/TemporalAccessorPicker.java rename to jabgui/src/main/java/org/jabref/gui/util/component/TemporalAccessorPicker.java diff --git a/src/main/java/org/jabref/gui/util/uithreadaware/UiThreadBinding.java b/jabgui/src/main/java/org/jabref/gui/util/uithreadaware/UiThreadBinding.java similarity index 100% rename from src/main/java/org/jabref/gui/util/uithreadaware/UiThreadBinding.java rename to jabgui/src/main/java/org/jabref/gui/util/uithreadaware/UiThreadBinding.java diff --git a/src/main/java/org/jabref/gui/util/uithreadaware/UiThreadChangeListener.java b/jabgui/src/main/java/org/jabref/gui/util/uithreadaware/UiThreadChangeListener.java similarity index 100% rename from src/main/java/org/jabref/gui/util/uithreadaware/UiThreadChangeListener.java rename to jabgui/src/main/java/org/jabref/gui/util/uithreadaware/UiThreadChangeListener.java diff --git a/src/main/java/org/jabref/gui/util/uithreadaware/UiThreadHelper.java b/jabgui/src/main/java/org/jabref/gui/util/uithreadaware/UiThreadHelper.java similarity index 100% rename from src/main/java/org/jabref/gui/util/uithreadaware/UiThreadHelper.java rename to jabgui/src/main/java/org/jabref/gui/util/uithreadaware/UiThreadHelper.java diff --git a/src/main/java/org/jabref/gui/util/uithreadaware/UiThreadInvalidationListener.java b/jabgui/src/main/java/org/jabref/gui/util/uithreadaware/UiThreadInvalidationListener.java similarity index 100% rename from src/main/java/org/jabref/gui/util/uithreadaware/UiThreadInvalidationListener.java rename to jabgui/src/main/java/org/jabref/gui/util/uithreadaware/UiThreadInvalidationListener.java diff --git a/src/main/java/org/jabref/gui/util/uithreadaware/UiThreadListChangeListener.java b/jabgui/src/main/java/org/jabref/gui/util/uithreadaware/UiThreadListChangeListener.java similarity index 100% rename from src/main/java/org/jabref/gui/util/uithreadaware/UiThreadListChangeListener.java rename to jabgui/src/main/java/org/jabref/gui/util/uithreadaware/UiThreadListChangeListener.java diff --git a/src/main/java/org/jabref/gui/util/uithreadaware/UiThreadObservableList.java b/jabgui/src/main/java/org/jabref/gui/util/uithreadaware/UiThreadObservableList.java similarity index 100% rename from src/main/java/org/jabref/gui/util/uithreadaware/UiThreadObservableList.java rename to jabgui/src/main/java/org/jabref/gui/util/uithreadaware/UiThreadObservableList.java diff --git a/src/main/java/org/jabref/gui/util/uithreadaware/UiThreadStringProperty.java b/jabgui/src/main/java/org/jabref/gui/util/uithreadaware/UiThreadStringProperty.java similarity index 100% rename from src/main/java/org/jabref/gui/util/uithreadaware/UiThreadStringProperty.java rename to jabgui/src/main/java/org/jabref/gui/util/uithreadaware/UiThreadStringProperty.java diff --git a/src/main/java/org/jabref/migrations/ConvertLegacyExplicitGroups.java b/jabgui/src/main/java/org/jabref/migrations/ConvertLegacyExplicitGroups.java similarity index 100% rename from src/main/java/org/jabref/migrations/ConvertLegacyExplicitGroups.java rename to jabgui/src/main/java/org/jabref/migrations/ConvertLegacyExplicitGroups.java diff --git a/src/main/java/org/jabref/migrations/ConvertMarkingToGroups.java b/jabgui/src/main/java/org/jabref/migrations/ConvertMarkingToGroups.java similarity index 100% rename from src/main/java/org/jabref/migrations/ConvertMarkingToGroups.java rename to jabgui/src/main/java/org/jabref/migrations/ConvertMarkingToGroups.java diff --git a/src/main/java/org/jabref/migrations/CustomEntryTypePreferenceMigration.java b/jabgui/src/main/java/org/jabref/migrations/CustomEntryTypePreferenceMigration.java similarity index 100% rename from src/main/java/org/jabref/migrations/CustomEntryTypePreferenceMigration.java rename to jabgui/src/main/java/org/jabref/migrations/CustomEntryTypePreferenceMigration.java diff --git a/src/main/java/org/jabref/migrations/MergeReviewIntoCommentMigration.java b/jabgui/src/main/java/org/jabref/migrations/MergeReviewIntoCommentMigration.java similarity index 100% rename from src/main/java/org/jabref/migrations/MergeReviewIntoCommentMigration.java rename to jabgui/src/main/java/org/jabref/migrations/MergeReviewIntoCommentMigration.java diff --git a/jabgui/src/main/java/org/jabref/migrations/PerformLoadDatabaseMigrations.java b/jabgui/src/main/java/org/jabref/migrations/PerformLoadDatabaseMigrations.java new file mode 100644 index 00000000000..e53b5b14ecc --- /dev/null +++ b/jabgui/src/main/java/org/jabref/migrations/PerformLoadDatabaseMigrations.java @@ -0,0 +1,24 @@ +package org.jabref.migrations; + +import java.util.Arrays; +import java.util.List; + +import org.jabref.logic.importer.ParserResult; + +public class PerformLoadDatabaseMigrations { + + // FIXME: Should be called somewhere + // Typical call: performLoadDatabaseMigrations(result, importFormatPreferences.bibEntryPreferences().getKeywordSeparator()); + public static void performLoadDatabaseMigrations(ParserResult parserResult, + Character keywordDelimited) { + List postOpenMigrations = Arrays.asList( + new ConvertLegacyExplicitGroups(), + new ConvertMarkingToGroups(), + new SpecialFieldsToSeparateFields(keywordDelimited) + ); + + for (PostOpenMigration migration : postOpenMigrations) { + migration.performMigration(parserResult); + } + } +} diff --git a/src/main/java/org/jabref/migrations/PostOpenMigration.java b/jabgui/src/main/java/org/jabref/migrations/PostOpenMigration.java similarity index 100% rename from src/main/java/org/jabref/migrations/PostOpenMigration.java rename to jabgui/src/main/java/org/jabref/migrations/PostOpenMigration.java diff --git a/src/main/java/org/jabref/migrations/PreferencesMigrations.java b/jabgui/src/main/java/org/jabref/migrations/PreferencesMigrations.java similarity index 99% rename from src/main/java/org/jabref/migrations/PreferencesMigrations.java rename to jabgui/src/main/java/org/jabref/migrations/PreferencesMigrations.java index 10d0eb4e30f..41a617b9444 100644 --- a/src/main/java/org/jabref/migrations/PreferencesMigrations.java +++ b/jabgui/src/main/java/org/jabref/migrations/PreferencesMigrations.java @@ -1,7 +1,6 @@ package org.jabref.migrations; import java.util.ArrayList; -import java.util.Collections; import java.util.EnumSet; import java.util.HashMap; import java.util.LinkedHashSet; @@ -448,7 +447,7 @@ static void restoreVariablesForBackwardCompatibility(JabRefCliPreferences prefer if (!fieldColumnNames.isEmpty()) { preferences.putStringList("columnNames", fieldColumnNames); - List fieldColumnWidths = new ArrayList<>(Collections.emptyList()); + List fieldColumnWidths = new ArrayList<>(List.of()); for (int i = 0; i < fieldColumnNames.size(); i++) { fieldColumnWidths.add("100"); } diff --git a/src/main/java/org/jabref/migrations/SpecialFieldsToSeparateFields.java b/jabgui/src/main/java/org/jabref/migrations/SpecialFieldsToSeparateFields.java similarity index 100% rename from src/main/java/org/jabref/migrations/SpecialFieldsToSeparateFields.java rename to jabgui/src/main/java/org/jabref/migrations/SpecialFieldsToSeparateFields.java diff --git a/jabgui/src/main/resources/META-INF/services/com.airhacks.afterburner.views.ResourceLocator b/jabgui/src/main/resources/META-INF/services/com.airhacks.afterburner.views.ResourceLocator new file mode 100644 index 00000000000..2186ff90c9e --- /dev/null +++ b/jabgui/src/main/resources/META-INF/services/com.airhacks.afterburner.views.ResourceLocator @@ -0,0 +1 @@ +org.jabref.gui.l10n.LocalizationLocator diff --git a/src/main/resources/META-INF/services/org.kordamp.ikonli.IkonHandler b/jabgui/src/main/resources/META-INF/services/org.kordamp.ikonli.IkonHandler similarity index 100% rename from src/main/resources/META-INF/services/org.kordamp.ikonli.IkonHandler rename to jabgui/src/main/resources/META-INF/services/org.kordamp.ikonli.IkonHandler diff --git a/src/main/resources/META-INF/services/org.kordamp.ikonli.IkonProvider b/jabgui/src/main/resources/META-INF/services/org.kordamp.ikonli.IkonProvider similarity index 100% rename from src/main/resources/META-INF/services/org.kordamp.ikonli.IkonProvider rename to jabgui/src/main/resources/META-INF/services/org.kordamp.ikonli.IkonProvider diff --git a/src/main/resources/META-INF/services/org.tinylog.writers.Writer b/jabgui/src/main/resources/META-INF/services/org.tinylog.writers.Writer similarity index 100% rename from src/main/resources/META-INF/services/org.tinylog.writers.Writer rename to jabgui/src/main/resources/META-INF/services/org.tinylog.writers.Writer diff --git a/src/main/resources/fonts/JabRefMaterialDesign.ttf b/jabgui/src/main/resources/fonts/JabRefMaterialDesign.ttf similarity index 100% rename from src/main/resources/fonts/JabRefMaterialDesign.ttf rename to jabgui/src/main/resources/fonts/JabRefMaterialDesign.ttf diff --git a/src/main/resources/fonts/materialdesignicons-webfont.ttf b/jabgui/src/main/resources/fonts/materialdesignicons-webfont.ttf similarity index 100% rename from src/main/resources/fonts/materialdesignicons-webfont.ttf rename to jabgui/src/main/resources/fonts/materialdesignicons-webfont.ttf diff --git a/src/main/resources/icons/JabRef-icon-64.png b/jabgui/src/main/resources/icons/JabRef-icon-64.png similarity index 100% rename from src/main/resources/icons/JabRef-icon-64.png rename to jabgui/src/main/resources/icons/JabRef-icon-64.png diff --git a/src/main/resources/icons/JabRef-linux-icon-64.png b/jabgui/src/main/resources/icons/JabRef-linux-icon-64.png similarity index 100% rename from src/main/resources/icons/JabRef-linux-icon-64.png rename to jabgui/src/main/resources/icons/JabRef-linux-icon-64.png diff --git a/src/main/resources/icons/jabref.icns b/jabgui/src/main/resources/icons/jabref.icns similarity index 100% rename from src/main/resources/icons/jabref.icns rename to jabgui/src/main/resources/icons/jabref.icns diff --git a/src/main/resources/icons/jabref.ico b/jabgui/src/main/resources/icons/jabref.ico similarity index 100% rename from src/main/resources/icons/jabref.ico rename to jabgui/src/main/resources/icons/jabref.ico diff --git a/src/main/resources/icons/jabref.svg b/jabgui/src/main/resources/icons/jabref.svg similarity index 100% rename from src/main/resources/icons/jabref.svg rename to jabgui/src/main/resources/icons/jabref.svg diff --git a/src/main/resources/icons/svg2icns.sh b/jabgui/src/main/resources/icons/svg2icns.sh old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/icons/svg2icns.sh rename to jabgui/src/main/resources/icons/svg2icns.sh diff --git a/src/main/resources/images/Icons.properties b/jabgui/src/main/resources/images/Icons.properties similarity index 100% rename from src/main/resources/images/Icons.properties rename to jabgui/src/main/resources/images/Icons.properties diff --git a/src/main/resources/images/external/JabRef-icon-128.png b/jabgui/src/main/resources/images/external/JabRef-icon-128.png similarity index 100% rename from src/main/resources/images/external/JabRef-icon-128.png rename to jabgui/src/main/resources/images/external/JabRef-icon-128.png diff --git a/src/main/resources/images/external/JabRef-icon-16.png b/jabgui/src/main/resources/images/external/JabRef-icon-16.png similarity index 100% rename from src/main/resources/images/external/JabRef-icon-16.png rename to jabgui/src/main/resources/images/external/JabRef-icon-16.png diff --git a/src/main/resources/images/external/JabRef-icon-20.png b/jabgui/src/main/resources/images/external/JabRef-icon-20.png similarity index 100% rename from src/main/resources/images/external/JabRef-icon-20.png rename to jabgui/src/main/resources/images/external/JabRef-icon-20.png diff --git a/src/main/resources/images/external/JabRef-icon-32.png b/jabgui/src/main/resources/images/external/JabRef-icon-32.png similarity index 100% rename from src/main/resources/images/external/JabRef-icon-32.png rename to jabgui/src/main/resources/images/external/JabRef-icon-32.png diff --git a/src/main/resources/images/external/JabRef-icon-40.png b/jabgui/src/main/resources/images/external/JabRef-icon-40.png similarity index 100% rename from src/main/resources/images/external/JabRef-icon-40.png rename to jabgui/src/main/resources/images/external/JabRef-icon-40.png diff --git a/src/main/resources/images/external/JabRef-icon-48.png b/jabgui/src/main/resources/images/external/JabRef-icon-48.png similarity index 100% rename from src/main/resources/images/external/JabRef-icon-48.png rename to jabgui/src/main/resources/images/external/JabRef-icon-48.png diff --git a/src/main/resources/images/external/JabRef-icon-64.png b/jabgui/src/main/resources/images/external/JabRef-icon-64.png similarity index 100% rename from src/main/resources/images/external/JabRef-icon-64.png rename to jabgui/src/main/resources/images/external/JabRef-icon-64.png diff --git a/src/main/resources/images/external/red.png b/jabgui/src/main/resources/images/external/red.png similarity index 100% rename from src/main/resources/images/external/red.png rename to jabgui/src/main/resources/images/external/red.png diff --git a/src/main/java/org/jabref/gui/Base.css b/jabgui/src/main/resources/org/jabref/gui/Base.css similarity index 100% rename from src/main/java/org/jabref/gui/Base.css rename to jabgui/src/main/resources/org/jabref/gui/Base.css diff --git a/src/main/java/org/jabref/gui/Dark.css b/jabgui/src/main/resources/org/jabref/gui/Dark.css similarity index 100% rename from src/main/java/org/jabref/gui/Dark.css rename to jabgui/src/main/resources/org/jabref/gui/Dark.css diff --git a/src/main/java/org/jabref/gui/ai/components/aichat/AiChatComponent.fxml b/jabgui/src/main/resources/org/jabref/gui/ai/components/aichat/AiChatComponent.fxml similarity index 100% rename from src/main/java/org/jabref/gui/ai/components/aichat/AiChatComponent.fxml rename to jabgui/src/main/resources/org/jabref/gui/ai/components/aichat/AiChatComponent.fxml diff --git a/src/main/java/org/jabref/gui/ai/components/aichat/chathistory/ChatHistoryComponent.fxml b/jabgui/src/main/resources/org/jabref/gui/ai/components/aichat/chathistory/ChatHistoryComponent.fxml similarity index 100% rename from src/main/java/org/jabref/gui/ai/components/aichat/chathistory/ChatHistoryComponent.fxml rename to jabgui/src/main/resources/org/jabref/gui/ai/components/aichat/chathistory/ChatHistoryComponent.fxml diff --git a/src/main/java/org/jabref/gui/ai/components/aichat/chatmessage/ChatMessageComponent.fxml b/jabgui/src/main/resources/org/jabref/gui/ai/components/aichat/chatmessage/ChatMessageComponent.fxml similarity index 100% rename from src/main/java/org/jabref/gui/ai/components/aichat/chatmessage/ChatMessageComponent.fxml rename to jabgui/src/main/resources/org/jabref/gui/ai/components/aichat/chatmessage/ChatMessageComponent.fxml diff --git a/src/main/java/org/jabref/gui/ai/components/aichat/chatprompt/ChatPromptComponent.fxml b/jabgui/src/main/resources/org/jabref/gui/ai/components/aichat/chatprompt/ChatPromptComponent.fxml similarity index 100% rename from src/main/java/org/jabref/gui/ai/components/aichat/chatprompt/ChatPromptComponent.fxml rename to jabgui/src/main/resources/org/jabref/gui/ai/components/aichat/chatprompt/ChatPromptComponent.fxml diff --git a/src/main/java/org/jabref/gui/ai/components/privacynotice/PrivacyNoticeComponent.fxml b/jabgui/src/main/resources/org/jabref/gui/ai/components/privacynotice/PrivacyNoticeComponent.fxml similarity index 100% rename from src/main/java/org/jabref/gui/ai/components/privacynotice/PrivacyNoticeComponent.fxml rename to jabgui/src/main/resources/org/jabref/gui/ai/components/privacynotice/PrivacyNoticeComponent.fxml diff --git a/src/main/java/org/jabref/gui/ai/components/summary/SummaryShowingComponent.fxml b/jabgui/src/main/resources/org/jabref/gui/ai/components/summary/SummaryShowingComponent.fxml similarity index 100% rename from src/main/java/org/jabref/gui/ai/components/summary/SummaryShowingComponent.fxml rename to jabgui/src/main/resources/org/jabref/gui/ai/components/summary/SummaryShowingComponent.fxml diff --git a/src/main/java/org/jabref/gui/ai/components/util/errorstate/ErrorStateComponent.fxml b/jabgui/src/main/resources/org/jabref/gui/ai/components/util/errorstate/ErrorStateComponent.fxml similarity index 100% rename from src/main/java/org/jabref/gui/ai/components/util/errorstate/ErrorStateComponent.fxml rename to jabgui/src/main/resources/org/jabref/gui/ai/components/util/errorstate/ErrorStateComponent.fxml diff --git a/src/main/java/org/jabref/gui/auximport/FromAuxDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/auximport/FromAuxDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/auximport/FromAuxDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/auximport/FromAuxDialog.fxml diff --git a/src/main/java/org/jabref/gui/cleanup/CleanupPresetPanel.fxml b/jabgui/src/main/resources/org/jabref/gui/cleanup/CleanupPresetPanel.fxml similarity index 100% rename from src/main/java/org/jabref/gui/cleanup/CleanupPresetPanel.fxml rename to jabgui/src/main/resources/org/jabref/gui/cleanup/CleanupPresetPanel.fxml diff --git a/src/main/java/org/jabref/gui/collab/DatabaseChangesResolverDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/collab/DatabaseChangesResolverDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/collab/DatabaseChangesResolverDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/collab/DatabaseChangesResolverDialog.fxml diff --git a/src/main/java/org/jabref/gui/commonfxcontrols/CitationKeyPatternsPanel.fxml b/jabgui/src/main/resources/org/jabref/gui/commonfxcontrols/CitationKeyPatternsPanel.fxml similarity index 100% rename from src/main/java/org/jabref/gui/commonfxcontrols/CitationKeyPatternsPanel.fxml rename to jabgui/src/main/resources/org/jabref/gui/commonfxcontrols/CitationKeyPatternsPanel.fxml diff --git a/src/main/java/org/jabref/gui/commonfxcontrols/FieldFormatterCleanupsPanel.fxml b/jabgui/src/main/resources/org/jabref/gui/commonfxcontrols/FieldFormatterCleanupsPanel.fxml similarity index 100% rename from src/main/java/org/jabref/gui/commonfxcontrols/FieldFormatterCleanupsPanel.fxml rename to jabgui/src/main/resources/org/jabref/gui/commonfxcontrols/FieldFormatterCleanupsPanel.fxml diff --git a/src/main/java/org/jabref/gui/commonfxcontrols/SaveOrderConfigPanel.fxml b/jabgui/src/main/resources/org/jabref/gui/commonfxcontrols/SaveOrderConfigPanel.fxml similarity index 100% rename from src/main/java/org/jabref/gui/commonfxcontrols/SaveOrderConfigPanel.fxml rename to jabgui/src/main/resources/org/jabref/gui/commonfxcontrols/SaveOrderConfigPanel.fxml diff --git a/src/main/java/org/jabref/gui/consistency/ConsistencyCheckDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/consistency/ConsistencyCheckDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/consistency/ConsistencyCheckDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/consistency/ConsistencyCheckDialog.fxml diff --git a/src/main/java/org/jabref/gui/consistency/ConsistencySymbolsDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/consistency/ConsistencySymbolsDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/consistency/ConsistencySymbolsDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/consistency/ConsistencySymbolsDialog.fxml diff --git a/src/main/java/org/jabref/gui/copyfiles/CopyFilesDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/copyfiles/CopyFilesDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/copyfiles/CopyFilesDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/copyfiles/CopyFilesDialog.fxml diff --git a/src/main/java/org/jabref/gui/documentviewer/DocumentViewer.fxml b/jabgui/src/main/resources/org/jabref/gui/documentviewer/DocumentViewer.fxml similarity index 100% rename from src/main/java/org/jabref/gui/documentviewer/DocumentViewer.fxml rename to jabgui/src/main/resources/org/jabref/gui/documentviewer/DocumentViewer.fxml diff --git a/src/main/java/org/jabref/gui/edit/ManageKeywordsDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/edit/ManageKeywordsDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/edit/ManageKeywordsDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/edit/ManageKeywordsDialog.fxml diff --git a/src/main/java/org/jabref/gui/edit/ReplaceString.fxml b/jabgui/src/main/resources/org/jabref/gui/edit/ReplaceString.fxml similarity index 100% rename from src/main/java/org/jabref/gui/edit/ReplaceString.fxml rename to jabgui/src/main/resources/org/jabref/gui/edit/ReplaceString.fxml diff --git a/src/main/java/org/jabref/gui/edit/automaticfiededitor/AutomaticFieldEditorDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/edit/automaticfiededitor/AutomaticFieldEditorDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/edit/automaticfiededitor/AutomaticFieldEditorDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/edit/automaticfiededitor/AutomaticFieldEditorDialog.fxml diff --git a/src/main/java/org/jabref/gui/edit/automaticfiededitor/copyormovecontent/CopyOrMoveFieldContentTab.fxml b/jabgui/src/main/resources/org/jabref/gui/edit/automaticfiededitor/copyormovecontent/CopyOrMoveFieldContentTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/edit/automaticfiededitor/copyormovecontent/CopyOrMoveFieldContentTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/edit/automaticfiededitor/copyormovecontent/CopyOrMoveFieldContentTab.fxml diff --git a/src/main/java/org/jabref/gui/edit/automaticfiededitor/editfieldcontent/EditFieldContentTab.fxml b/jabgui/src/main/resources/org/jabref/gui/edit/automaticfiededitor/editfieldcontent/EditFieldContentTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/edit/automaticfiededitor/editfieldcontent/EditFieldContentTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/edit/automaticfiededitor/editfieldcontent/EditFieldContentTab.fxml diff --git a/src/main/java/org/jabref/gui/edit/automaticfiededitor/renamefield/RenameFieldTab.fxml b/jabgui/src/main/resources/org/jabref/gui/edit/automaticfiededitor/renamefield/RenameFieldTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/edit/automaticfiededitor/renamefield/RenameFieldTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/edit/automaticfiededitor/renamefield/RenameFieldTab.fxml diff --git a/src/main/java/org/jabref/gui/entryeditor/EntryEditor.fxml b/jabgui/src/main/resources/org/jabref/gui/entryeditor/EntryEditor.fxml similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/EntryEditor.fxml rename to jabgui/src/main/resources/org/jabref/gui/entryeditor/EntryEditor.fxml diff --git a/src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTab.fxml b/jabgui/src/main/resources/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTab.fxml diff --git a/src/main/java/org/jabref/gui/entrytype/EntryType.fxml b/jabgui/src/main/resources/org/jabref/gui/entrytype/EntryType.fxml similarity index 100% rename from src/main/java/org/jabref/gui/entrytype/EntryType.fxml rename to jabgui/src/main/resources/org/jabref/gui/entrytype/EntryType.fxml diff --git a/src/main/java/org/jabref/gui/errorconsole/ErrorConsole.fxml b/jabgui/src/main/resources/org/jabref/gui/errorconsole/ErrorConsole.fxml similarity index 100% rename from src/main/java/org/jabref/gui/errorconsole/ErrorConsole.fxml rename to jabgui/src/main/resources/org/jabref/gui/errorconsole/ErrorConsole.fxml diff --git a/src/main/java/org/jabref/gui/exporter/CreateModifyExporterDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/exporter/CreateModifyExporterDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/exporter/CreateModifyExporterDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/exporter/CreateModifyExporterDialog.fxml diff --git a/src/main/java/org/jabref/gui/externalfiles/UnlinkedFilesDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/externalfiles/UnlinkedFilesDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/externalfiles/UnlinkedFilesDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/externalfiles/UnlinkedFilesDialog.fxml diff --git a/src/main/java/org/jabref/gui/fieldeditors/CitationKeyEditor.fxml b/jabgui/src/main/resources/org/jabref/gui/fieldeditors/CitationKeyEditor.fxml similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/CitationKeyEditor.fxml rename to jabgui/src/main/resources/org/jabref/gui/fieldeditors/CitationKeyEditor.fxml diff --git a/src/main/java/org/jabref/gui/fieldeditors/DateEditor.fxml b/jabgui/src/main/resources/org/jabref/gui/fieldeditors/DateEditor.fxml similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/DateEditor.fxml rename to jabgui/src/main/resources/org/jabref/gui/fieldeditors/DateEditor.fxml diff --git a/src/main/java/org/jabref/gui/fieldeditors/ISSNEditor.fxml b/jabgui/src/main/resources/org/jabref/gui/fieldeditors/ISSNEditor.fxml similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/ISSNEditor.fxml rename to jabgui/src/main/resources/org/jabref/gui/fieldeditors/ISSNEditor.fxml diff --git a/src/main/java/org/jabref/gui/fieldeditors/JournalEditor.fxml b/jabgui/src/main/resources/org/jabref/gui/fieldeditors/JournalEditor.fxml similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/JournalEditor.fxml rename to jabgui/src/main/resources/org/jabref/gui/fieldeditors/JournalEditor.fxml diff --git a/src/main/java/org/jabref/gui/fieldeditors/KeywordsEditor.fxml b/jabgui/src/main/resources/org/jabref/gui/fieldeditors/KeywordsEditor.fxml similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/KeywordsEditor.fxml rename to jabgui/src/main/resources/org/jabref/gui/fieldeditors/KeywordsEditor.fxml diff --git a/src/main/java/org/jabref/gui/fieldeditors/LinkedEntriesEditor.fxml b/jabgui/src/main/resources/org/jabref/gui/fieldeditors/LinkedEntriesEditor.fxml similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/LinkedEntriesEditor.fxml rename to jabgui/src/main/resources/org/jabref/gui/fieldeditors/LinkedEntriesEditor.fxml diff --git a/src/main/java/org/jabref/gui/fieldeditors/LinkedFilesEditor.fxml b/jabgui/src/main/resources/org/jabref/gui/fieldeditors/LinkedFilesEditor.fxml similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/LinkedFilesEditor.fxml rename to jabgui/src/main/resources/org/jabref/gui/fieldeditors/LinkedFilesEditor.fxml diff --git a/src/main/java/org/jabref/gui/fieldeditors/OwnerEditor.fxml b/jabgui/src/main/resources/org/jabref/gui/fieldeditors/OwnerEditor.fxml similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/OwnerEditor.fxml rename to jabgui/src/main/resources/org/jabref/gui/fieldeditors/OwnerEditor.fxml diff --git a/src/main/java/org/jabref/gui/fieldeditors/UrlEditor.fxml b/jabgui/src/main/resources/org/jabref/gui/fieldeditors/UrlEditor.fxml similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/UrlEditor.fxml rename to jabgui/src/main/resources/org/jabref/gui/fieldeditors/UrlEditor.fxml diff --git a/src/main/java/org/jabref/gui/fieldeditors/identifier/IdentifierEditor.fxml b/jabgui/src/main/resources/org/jabref/gui/fieldeditors/identifier/IdentifierEditor.fxml similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/identifier/IdentifierEditor.fxml rename to jabgui/src/main/resources/org/jabref/gui/fieldeditors/identifier/IdentifierEditor.fxml diff --git a/src/main/java/org/jabref/gui/fieldeditors/journalinfo/JournalInfo.fxml b/jabgui/src/main/resources/org/jabref/gui/fieldeditors/journalinfo/JournalInfo.fxml similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/journalinfo/JournalInfo.fxml rename to jabgui/src/main/resources/org/jabref/gui/fieldeditors/journalinfo/JournalInfo.fxml diff --git a/src/main/java/org/jabref/gui/fieldeditors/optioneditors/OptionEditor.fxml b/jabgui/src/main/resources/org/jabref/gui/fieldeditors/optioneditors/OptionEditor.fxml similarity index 100% rename from src/main/java/org/jabref/gui/fieldeditors/optioneditors/OptionEditor.fxml rename to jabgui/src/main/resources/org/jabref/gui/fieldeditors/optioneditors/OptionEditor.fxml diff --git a/src/main/java/org/jabref/gui/groups/GroupDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/groups/GroupDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/groups/GroupDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/groups/GroupDialog.fxml diff --git a/src/main/java/org/jabref/gui/help/AboutDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/help/AboutDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/help/AboutDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/help/AboutDialog.fxml diff --git a/src/main/java/org/jabref/gui/importer/GenerateEntryFromIdDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/importer/GenerateEntryFromIdDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/importer/GenerateEntryFromIdDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/importer/GenerateEntryFromIdDialog.fxml diff --git a/src/main/java/org/jabref/gui/importer/ImportCustomEntryTypesDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/importer/ImportCustomEntryTypesDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/importer/ImportCustomEntryTypesDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/importer/ImportCustomEntryTypesDialog.fxml diff --git a/src/main/java/org/jabref/gui/importer/ImportEntriesDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/importer/ImportEntriesDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/importer/ImportEntriesDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/importer/ImportEntriesDialog.fxml diff --git a/src/main/java/org/jabref/gui/integrity/BibLogSettingsPane.fxml b/jabgui/src/main/resources/org/jabref/gui/integrity/BibLogSettingsPane.fxml similarity index 100% rename from src/main/java/org/jabref/gui/integrity/BibLogSettingsPane.fxml rename to jabgui/src/main/resources/org/jabref/gui/integrity/BibLogSettingsPane.fxml diff --git a/src/main/java/org/jabref/gui/integrity/IntegrityCheckDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/integrity/IntegrityCheckDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/integrity/IntegrityCheckDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/integrity/IntegrityCheckDialog.fxml diff --git a/src/main/java/org/jabref/gui/libraryproperties/LibraryProperties.fxml b/jabgui/src/main/resources/org/jabref/gui/libraryproperties/LibraryProperties.fxml similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/LibraryProperties.fxml rename to jabgui/src/main/resources/org/jabref/gui/libraryproperties/LibraryProperties.fxml diff --git a/src/main/java/org/jabref/gui/libraryproperties/constants/ConstantsProperties.fxml b/jabgui/src/main/resources/org/jabref/gui/libraryproperties/constants/ConstantsProperties.fxml similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/constants/ConstantsProperties.fxml rename to jabgui/src/main/resources/org/jabref/gui/libraryproperties/constants/ConstantsProperties.fxml diff --git a/src/main/java/org/jabref/gui/libraryproperties/contentselectors/ContentSelector.fxml b/jabgui/src/main/resources/org/jabref/gui/libraryproperties/contentselectors/ContentSelector.fxml similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/contentselectors/ContentSelector.fxml rename to jabgui/src/main/resources/org/jabref/gui/libraryproperties/contentselectors/ContentSelector.fxml diff --git a/src/main/java/org/jabref/gui/libraryproperties/general/GeneralProperties.fxml b/jabgui/src/main/resources/org/jabref/gui/libraryproperties/general/GeneralProperties.fxml similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/general/GeneralProperties.fxml rename to jabgui/src/main/resources/org/jabref/gui/libraryproperties/general/GeneralProperties.fxml diff --git a/src/main/java/org/jabref/gui/libraryproperties/keypattern/KeyPatternProperties.fxml b/jabgui/src/main/resources/org/jabref/gui/libraryproperties/keypattern/KeyPatternProperties.fxml similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/keypattern/KeyPatternProperties.fxml rename to jabgui/src/main/resources/org/jabref/gui/libraryproperties/keypattern/KeyPatternProperties.fxml diff --git a/src/main/java/org/jabref/gui/libraryproperties/preamble/PreambleProperties.fxml b/jabgui/src/main/resources/org/jabref/gui/libraryproperties/preamble/PreambleProperties.fxml similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/preamble/PreambleProperties.fxml rename to jabgui/src/main/resources/org/jabref/gui/libraryproperties/preamble/PreambleProperties.fxml diff --git a/src/main/java/org/jabref/gui/libraryproperties/saving/SavingProperties.fxml b/jabgui/src/main/resources/org/jabref/gui/libraryproperties/saving/SavingProperties.fxml similarity index 100% rename from src/main/java/org/jabref/gui/libraryproperties/saving/SavingProperties.fxml rename to jabgui/src/main/resources/org/jabref/gui/libraryproperties/saving/SavingProperties.fxml diff --git a/src/main/java/org/jabref/gui/linkedfile/LinkedFileEditDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/linkedfile/LinkedFileEditDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/linkedfile/LinkedFileEditDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/linkedfile/LinkedFileEditDialog.fxml diff --git a/src/main/java/org/jabref/gui/mergeentries/MultiMergeEntries.fxml b/jabgui/src/main/resources/org/jabref/gui/mergeentries/MultiMergeEntries.fxml similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/MultiMergeEntries.fxml rename to jabgui/src/main/resources/org/jabref/gui/mergeentries/MultiMergeEntries.fxml diff --git a/src/main/java/org/jabref/gui/mergeentries/newmergedialog/toolbar/ThreeWayMergeToolbar.fxml b/jabgui/src/main/resources/org/jabref/gui/mergeentries/newmergedialog/toolbar/ThreeWayMergeToolbar.fxml similarity index 100% rename from src/main/java/org/jabref/gui/mergeentries/newmergedialog/toolbar/ThreeWayMergeToolbar.fxml rename to jabgui/src/main/resources/org/jabref/gui/mergeentries/newmergedialog/toolbar/ThreeWayMergeToolbar.fxml diff --git a/src/main/java/org/jabref/gui/openoffice/AdvancedCiteDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/openoffice/AdvancedCiteDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/openoffice/AdvancedCiteDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/openoffice/AdvancedCiteDialog.fxml diff --git a/src/main/java/org/jabref/gui/openoffice/ManageCitationsDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/openoffice/ManageCitationsDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/openoffice/ManageCitationsDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/openoffice/ManageCitationsDialog.fxml diff --git a/src/main/java/org/jabref/gui/openoffice/ModifyCSLBibliographyTitleDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/openoffice/ModifyCSLBibliographyTitleDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/openoffice/ModifyCSLBibliographyTitleDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/openoffice/ModifyCSLBibliographyTitleDialog.fxml diff --git a/src/main/java/org/jabref/gui/openoffice/StyleSelectDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/openoffice/StyleSelectDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/openoffice/StyleSelectDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/openoffice/StyleSelectDialog.fxml diff --git a/src/main/java/org/jabref/gui/plaincitationparser/PlainCitationParserDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/plaincitationparser/PlainCitationParserDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/plaincitationparser/PlainCitationParserDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/plaincitationparser/PlainCitationParserDialog.fxml diff --git a/src/main/java/org/jabref/gui/preferences/PreferencesDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/PreferencesDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/PreferencesDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/PreferencesDialog.fxml diff --git a/src/main/java/org/jabref/gui/preferences/PreferencesFilterDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/PreferencesFilterDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/PreferencesFilterDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/PreferencesFilterDialog.fxml diff --git a/src/main/java/org/jabref/gui/preferences/ai/AiTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/ai/AiTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/ai/AiTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/ai/AiTab.fxml diff --git a/src/main/java/org/jabref/gui/preferences/autocompletion/AutoCompletionTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/autocompletion/AutoCompletionTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/autocompletion/AutoCompletionTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/autocompletion/AutoCompletionTab.fxml diff --git a/src/main/java/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTab.fxml diff --git a/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.fxml diff --git a/src/main/java/org/jabref/gui/preferences/customexporter/CustomExporterTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/customexporter/CustomExporterTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/customexporter/CustomExporterTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/customexporter/CustomExporterTab.fxml diff --git a/src/main/java/org/jabref/gui/preferences/customimporter/CustomImporterTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/customimporter/CustomImporterTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/customimporter/CustomImporterTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/customimporter/CustomImporterTab.fxml diff --git a/src/main/java/org/jabref/gui/preferences/entry/EntryTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/entry/EntryTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/entry/EntryTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/entry/EntryTab.fxml diff --git a/src/main/java/org/jabref/gui/preferences/entryeditor/EntryEditorTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/entryeditor/EntryEditorTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/entryeditor/EntryEditorTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/entryeditor/EntryEditorTab.fxml diff --git a/src/main/java/org/jabref/gui/preferences/export/ExportTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/export/ExportTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/export/ExportTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/export/ExportTab.fxml diff --git a/src/main/java/org/jabref/gui/preferences/external/ExternalTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/external/ExternalTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/external/ExternalTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/external/ExternalTab.fxml diff --git a/src/main/java/org/jabref/gui/preferences/externalfiletypes/EditExternalFileTypeEntryDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/externalfiletypes/EditExternalFileTypeEntryDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/externalfiletypes/EditExternalFileTypeEntryDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/externalfiletypes/EditExternalFileTypeEntryDialog.fxml diff --git a/src/main/java/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypesTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypesTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypesTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypesTab.fxml diff --git a/src/main/java/org/jabref/gui/preferences/general/GeneralTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/general/GeneralTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/general/GeneralTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/general/GeneralTab.fxml diff --git a/src/main/java/org/jabref/gui/preferences/groups/GroupsTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/groups/GroupsTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/groups/GroupsTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/groups/GroupsTab.fxml diff --git a/src/main/java/org/jabref/gui/preferences/journals/JournalAbbreviationsTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/journals/JournalAbbreviationsTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/journals/JournalAbbreviationsTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/journals/JournalAbbreviationsTab.fxml diff --git a/src/main/java/org/jabref/gui/preferences/keybindings/KeyBindingsTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/keybindings/KeyBindingsTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/keybindings/KeyBindingsTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/keybindings/KeyBindingsTab.fxml diff --git a/src/main/java/org/jabref/gui/preferences/linkedfiles/LinkedFilesTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/linkedfiles/LinkedFilesTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/linkedfiles/LinkedFilesTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/linkedfiles/LinkedFilesTab.fxml diff --git a/src/main/java/org/jabref/gui/preferences/nameformatter/NameFormatterTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/nameformatter/NameFormatterTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/nameformatter/NameFormatterTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/nameformatter/NameFormatterTab.fxml diff --git a/src/main/java/org/jabref/gui/preferences/network/NetworkTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/network/NetworkTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/network/NetworkTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/network/NetworkTab.fxml diff --git a/src/main/java/org/jabref/gui/preferences/preview/PreviewTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/preview/PreviewTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/preview/PreviewTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/preview/PreviewTab.fxml diff --git a/src/main/java/org/jabref/gui/preferences/protectedterms/ProtectedTermsTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/protectedterms/ProtectedTermsTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/protectedterms/ProtectedTermsTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/protectedterms/ProtectedTermsTab.fxml diff --git a/src/main/java/org/jabref/gui/preferences/table/TableTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/table/TableTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/table/TableTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/table/TableTab.fxml diff --git a/src/main/java/org/jabref/gui/preferences/websearch/WebSearchTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/websearch/WebSearchTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/websearch/WebSearchTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/websearch/WebSearchTab.fxml diff --git a/src/main/java/org/jabref/gui/preferences/xmp/XmpPrivacyTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/xmp/XmpPrivacyTab.fxml similarity index 100% rename from src/main/java/org/jabref/gui/preferences/xmp/XmpPrivacyTab.fxml rename to jabgui/src/main/resources/org/jabref/gui/preferences/xmp/XmpPrivacyTab.fxml diff --git a/src/main/java/org/jabref/gui/search/GlobalSearchResultDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/search/GlobalSearchResultDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/search/GlobalSearchResultDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/search/GlobalSearchResultDialog.fxml diff --git a/src/main/java/org/jabref/gui/shared/SharedDatabaseLoginDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/shared/SharedDatabaseLoginDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/shared/SharedDatabaseLoginDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/shared/SharedDatabaseLoginDialog.fxml diff --git a/src/main/java/org/jabref/gui/slr/ManageStudyDefinition.fxml b/jabgui/src/main/resources/org/jabref/gui/slr/ManageStudyDefinition.fxml similarity index 100% rename from src/main/java/org/jabref/gui/slr/ManageStudyDefinition.fxml rename to jabgui/src/main/resources/org/jabref/gui/slr/ManageStudyDefinition.fxml diff --git a/src/main/java/org/jabref/gui/texparser/ParseLatexDialog.fxml b/jabgui/src/main/resources/org/jabref/gui/texparser/ParseLatexDialog.fxml similarity index 100% rename from src/main/java/org/jabref/gui/texparser/ParseLatexDialog.fxml rename to jabgui/src/main/resources/org/jabref/gui/texparser/ParseLatexDialog.fxml diff --git a/src/main/java/org/jabref/gui/texparser/ParseLatexResult.fxml b/jabgui/src/main/resources/org/jabref/gui/texparser/ParseLatexResult.fxml similarity index 100% rename from src/main/java/org/jabref/gui/texparser/ParseLatexResult.fxml rename to jabgui/src/main/resources/org/jabref/gui/texparser/ParseLatexResult.fxml diff --git a/src/main/resources/tinylog.properties b/jabgui/src/main/resources/tinylog.properties similarity index 100% rename from src/main/resources/tinylog.properties rename to jabgui/src/main/resources/tinylog.properties diff --git a/src/test/java/module-info.test b/jabgui/src/test/java/module-info.test similarity index 83% rename from src/test/java/module-info.test rename to jabgui/src/test/java/module-info.test index dce9470c385..ea55bd35be4 100644 --- a/src/test/java/module-info.test +++ b/jabgui/src/test/java/module-info.test @@ -4,6 +4,7 @@ --add-reads // Make testfx module visible org.jabref=org.testfx.junit5 + --add-opens javafx.base/com.sun.javafx.beans=net.bytebuddy --add-opens @@ -15,9 +16,14 @@ --add-modules io.github.classgraph - --add-reads org.jabref=io.github.classgraph --add-modules org.kordamp.ikonli.core,org.kordamp.ikonli.javafx,org.kordamp.ikonli.materialdesign2 + +--add-reads + org.mockito=java.prefs + +--add-exports + javafx.controls/com.sun.javafx.scene.control=org.jabref diff --git a/src/test/java/org/jabref/IconsPropertiesTest.java b/jabgui/src/test/java/org/jabref/IconsPropertiesTest.java similarity index 100% rename from src/test/java/org/jabref/IconsPropertiesTest.java rename to jabgui/src/test/java/org/jabref/IconsPropertiesTest.java diff --git a/src/test/java/org/jabref/gui/ClipBoardManagerTest.java b/jabgui/src/test/java/org/jabref/gui/ClipBoardManagerTest.java similarity index 100% rename from src/test/java/org/jabref/gui/ClipBoardManagerTest.java rename to jabgui/src/test/java/org/jabref/gui/ClipBoardManagerTest.java diff --git a/src/test/java/org/jabref/gui/UpdateTimestampListenerTest.java b/jabgui/src/test/java/org/jabref/gui/UpdateTimestampListenerTest.java similarity index 100% rename from src/test/java/org/jabref/gui/UpdateTimestampListenerTest.java rename to jabgui/src/test/java/org/jabref/gui/UpdateTimestampListenerTest.java diff --git a/src/test/java/org/jabref/gui/autocompleter/AppendPersonNamesStrategyTest.java b/jabgui/src/test/java/org/jabref/gui/autocompleter/AppendPersonNamesStrategyTest.java similarity index 100% rename from src/test/java/org/jabref/gui/autocompleter/AppendPersonNamesStrategyTest.java rename to jabgui/src/test/java/org/jabref/gui/autocompleter/AppendPersonNamesStrategyTest.java diff --git a/src/test/java/org/jabref/gui/autocompleter/AutoCompleterUtil.java b/jabgui/src/test/java/org/jabref/gui/autocompleter/AutoCompleterUtil.java similarity index 100% rename from src/test/java/org/jabref/gui/autocompleter/AutoCompleterUtil.java rename to jabgui/src/test/java/org/jabref/gui/autocompleter/AutoCompleterUtil.java diff --git a/src/test/java/org/jabref/gui/autocompleter/BibEntrySuggestionProviderTest.java b/jabgui/src/test/java/org/jabref/gui/autocompleter/BibEntrySuggestionProviderTest.java similarity index 86% rename from src/test/java/org/jabref/gui/autocompleter/BibEntrySuggestionProviderTest.java rename to jabgui/src/test/java/org/jabref/gui/autocompleter/BibEntrySuggestionProviderTest.java index 7b641e987dd..410baf7af27 100644 --- a/src/test/java/org/jabref/gui/autocompleter/BibEntrySuggestionProviderTest.java +++ b/jabgui/src/test/java/org/jabref/gui/autocompleter/BibEntrySuggestionProviderTest.java @@ -2,7 +2,7 @@ import java.util.Arrays; import java.util.Collection; -import java.util.Collections; +import java.util.List; import org.jabref.model.database.BibDatabase; import org.jabref.model.entry.BibEntry; @@ -20,7 +20,7 @@ class BibEntrySuggestionProviderTest { private BibDatabase database; @BeforeEach - void setUp() throws Exception { + void setUp() { database = new BibDatabase(); autoCompleter = new BibEntrySuggestionProvider(database); } @@ -28,7 +28,7 @@ void setUp() throws Exception { @Test void completeWithoutAddingAnythingReturnsNothing() { Collection result = autoCompleter.provideSuggestions(getRequest("test")); - assertEquals(Collections.emptyList(), result); + assertEquals(List.of(), result); } @Test @@ -37,7 +37,7 @@ void completeAfterAddingEmptyEntryReturnsNothing() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("test")); - assertEquals(Collections.emptyList(), result); + assertEquals(List.of(), result); } @Test @@ -47,7 +47,7 @@ void completeKeyReturnsKey() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("testKey")); - assertEquals(Collections.singletonList(entry), result); + assertEquals(List.of(entry), result); } @Test @@ -57,7 +57,7 @@ void completeBeginningOfKeyReturnsKey() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("test")); - assertEquals(Collections.singletonList(entry), result); + assertEquals(List.of(entry), result); } @Test @@ -67,7 +67,7 @@ void completeLowercaseKeyReturnsKey() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("testkey")); - assertEquals(Collections.singletonList(entry), result); + assertEquals(List.of(entry), result); } @Test @@ -86,7 +86,7 @@ void completeEmptyStringReturnsNothing() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("")); - assertEquals(Collections.emptyList(), result); + assertEquals(List.of(), result); } @Test @@ -109,6 +109,6 @@ void completeShortKeyReturnsKey() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("k")); - assertEquals(Collections.singletonList(entry), result); + assertEquals(List.of(entry), result); } } diff --git a/src/test/java/org/jabref/gui/autocompleter/ContentSelectorSuggestionProviderTest.java b/jabgui/src/test/java/org/jabref/gui/autocompleter/ContentSelectorSuggestionProviderTest.java similarity index 84% rename from src/test/java/org/jabref/gui/autocompleter/ContentSelectorSuggestionProviderTest.java rename to jabgui/src/test/java/org/jabref/gui/autocompleter/ContentSelectorSuggestionProviderTest.java index 004fa2e57ca..8359b3c9470 100644 --- a/src/test/java/org/jabref/gui/autocompleter/ContentSelectorSuggestionProviderTest.java +++ b/jabgui/src/test/java/org/jabref/gui/autocompleter/ContentSelectorSuggestionProviderTest.java @@ -2,7 +2,7 @@ import java.util.Arrays; import java.util.Collection; -import java.util.Collections; +import java.util.List; import org.jabref.model.database.BibDatabase; import org.jabref.model.entry.BibEntry; @@ -21,9 +21,9 @@ class ContentSelectorSuggestionProviderTest { @Test void completeWithoutAddingAnythingReturnsNothing() { SuggestionProvider suggestionProvider = new EmptySuggestionProvider(); - autoCompleter = new ContentSelectorSuggestionProvider(suggestionProvider, Collections.emptyList()); + autoCompleter = new ContentSelectorSuggestionProvider(suggestionProvider, List.of()); - Collection expected = Collections.emptyList(); + Collection expected = List.of(); Collection result = autoCompleter.provideSuggestions(getRequest("test")); assertEquals(expected, result); @@ -32,9 +32,9 @@ void completeWithoutAddingAnythingReturnsNothing() { @Test void completeKeywordReturnsKeyword() { SuggestionProvider suggestionProvider = new EmptySuggestionProvider(); - autoCompleter = new ContentSelectorSuggestionProvider(suggestionProvider, Collections.singletonList("test")); + autoCompleter = new ContentSelectorSuggestionProvider(suggestionProvider, List.of("test")); - Collection expected = Collections.singletonList("test"); + Collection expected = List.of("test"); Collection result = autoCompleter.provideSuggestions(getRequest("test")); assertEquals(expected, result); @@ -43,9 +43,9 @@ void completeKeywordReturnsKeyword() { @Test void completeBeginningOfKeywordReturnsKeyword() { SuggestionProvider suggestionProvider = new EmptySuggestionProvider(); - autoCompleter = new ContentSelectorSuggestionProvider(suggestionProvider, Collections.singletonList("test")); + autoCompleter = new ContentSelectorSuggestionProvider(suggestionProvider, List.of("test")); - Collection expected = Collections.singletonList("test"); + Collection expected = List.of("test"); Collection result = autoCompleter.provideSuggestions(getRequest("te")); assertEquals(expected, result); @@ -59,9 +59,9 @@ void completeKeywordReturnsKeywordFromDatabase() { database.insertEntry(bibEntry); SuggestionProvider suggestionProvider = new WordSuggestionProvider(StandardField.KEYWORDS, database); - autoCompleter = new ContentSelectorSuggestionProvider(suggestionProvider, Collections.emptyList()); + autoCompleter = new ContentSelectorSuggestionProvider(suggestionProvider, List.of()); - Collection expected = Collections.singletonList("test"); + Collection expected = List.of("test"); Collection result = autoCompleter.provideSuggestions(getRequest("test")); assertEquals(expected, result); @@ -70,9 +70,9 @@ void completeKeywordReturnsKeywordFromDatabase() { @Test void completeUppercaseBeginningOfNameReturnsName() { SuggestionProvider suggestionProvider = new EmptySuggestionProvider(); - autoCompleter = new ContentSelectorSuggestionProvider(suggestionProvider, Collections.singletonList("test")); + autoCompleter = new ContentSelectorSuggestionProvider(suggestionProvider, List.of("test")); - Collection expected = Collections.singletonList("test"); + Collection expected = List.of("test"); Collection result = autoCompleter.provideSuggestions(getRequest("TE")); assertEquals(expected, result); @@ -86,9 +86,9 @@ void completeNullThrowsException() { @Test void completeEmptyStringReturnsNothing() { SuggestionProvider suggestionProvider = new EmptySuggestionProvider(); - autoCompleter = new ContentSelectorSuggestionProvider(suggestionProvider, Collections.singletonList("test")); + autoCompleter = new ContentSelectorSuggestionProvider(suggestionProvider, List.of("test")); - Collection expected = Collections.emptyList(); + Collection expected = List.of(); Collection result = autoCompleter.provideSuggestions(getRequest("")); assertEquals(expected, result); @@ -102,7 +102,7 @@ void completeReturnsMultipleResults() { database.insertEntry(bibEntry); SuggestionProvider suggestionProvider = new WordSuggestionProvider(StandardField.KEYWORDS, database); - autoCompleter = new ContentSelectorSuggestionProvider(suggestionProvider, Collections.singletonList("testb")); + autoCompleter = new ContentSelectorSuggestionProvider(suggestionProvider, List.of("testb")); Collection expected = Arrays.asList("testa", "testb"); Collection result = autoCompleter.provideSuggestions(getRequest("test")); diff --git a/src/test/java/org/jabref/gui/autocompleter/DefaultAutoCompleterTest.java b/jabgui/src/test/java/org/jabref/gui/autocompleter/DefaultAutoCompleterTest.java similarity index 87% rename from src/test/java/org/jabref/gui/autocompleter/DefaultAutoCompleterTest.java rename to jabgui/src/test/java/org/jabref/gui/autocompleter/DefaultAutoCompleterTest.java index 767eff82374..1950df2d16f 100644 --- a/src/test/java/org/jabref/gui/autocompleter/DefaultAutoCompleterTest.java +++ b/jabgui/src/test/java/org/jabref/gui/autocompleter/DefaultAutoCompleterTest.java @@ -2,7 +2,7 @@ import java.util.Arrays; import java.util.Collection; -import java.util.Collections; +import java.util.List; import org.jabref.model.database.BibDatabase; import org.jabref.model.entry.BibEntry; @@ -21,7 +21,7 @@ class DefaultAutoCompleterTest { private BibDatabase database; @BeforeEach - void setUp() throws Exception { + void setUp() { database = new BibDatabase(); autoCompleter = new WordSuggestionProvider(StandardField.TITLE, database); } @@ -34,7 +34,7 @@ void initAutoCompleterWithNullFieldThrowsException() { @Test void completeWithoutAddingAnythingReturnsNothing() { Collection result = autoCompleter.provideSuggestions(getRequest("test")); - assertEquals(Collections.emptyList(), result); + assertEquals(List.of(), result); } @Test @@ -43,7 +43,7 @@ void completeAfterAddingEmptyEntryReturnsNothing() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("test")); - assertEquals(Collections.emptyList(), result); + assertEquals(List.of(), result); } @Test @@ -53,7 +53,7 @@ void completeAfterAddingEntryWithoutFieldReturnsNothing() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("test")); - assertEquals(Collections.emptyList(), result); + assertEquals(List.of(), result); } @Test @@ -63,7 +63,7 @@ void completeValueReturnsValue() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("testValue")); - assertEquals(Arrays.asList("testValue"), result); + assertEquals(List.of("testValue"), result); } @Test @@ -73,7 +73,7 @@ void completeBeginningOfValueReturnsValue() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("test")); - assertEquals(Arrays.asList("testValue"), result); + assertEquals(List.of("testValue"), result); } @Test @@ -83,7 +83,7 @@ void completeLowercaseValueReturnsValue() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("testvalue")); - assertEquals(Arrays.asList("testValue"), result); + assertEquals(List.of("testValue"), result); } @Test @@ -102,7 +102,7 @@ void completeEmptyStringReturnsNothing() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("")); - assertEquals(Collections.emptyList(), result); + assertEquals(List.of(), result); } @Test @@ -125,7 +125,7 @@ void completeShortStringReturnsValue() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("va")); - assertEquals(Collections.singletonList("val"), result); + assertEquals(List.of("val"), result); } @Test @@ -135,7 +135,7 @@ void completeBeginnigOfSecondWordReturnsWord() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("val")); - assertEquals(Collections.singletonList("value"), result); + assertEquals(List.of("value"), result); } @Test @@ -145,6 +145,6 @@ void completePartOfWordReturnsValue() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("lue")); - assertEquals(Collections.singletonList("value"), result); + assertEquals(List.of("value"), result); } } diff --git a/src/test/java/org/jabref/gui/autocompleter/FieldValueSuggestionProviderTest.java b/jabgui/src/test/java/org/jabref/gui/autocompleter/FieldValueSuggestionProviderTest.java similarity index 91% rename from src/test/java/org/jabref/gui/autocompleter/FieldValueSuggestionProviderTest.java rename to jabgui/src/test/java/org/jabref/gui/autocompleter/FieldValueSuggestionProviderTest.java index e4baeeb3405..fba4acb67c0 100644 --- a/src/test/java/org/jabref/gui/autocompleter/FieldValueSuggestionProviderTest.java +++ b/jabgui/src/test/java/org/jabref/gui/autocompleter/FieldValueSuggestionProviderTest.java @@ -2,7 +2,6 @@ import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.Set; @@ -41,7 +40,7 @@ void initAutoCompleterWithNullFieldThrowsException() { @Test void completeWithoutAddingAnythingReturnsNothing() { Collection result = autoCompleter.provideSuggestions(getRequest("test")); - assertEquals(Collections.emptyList(), result); + assertEquals(List.of(), result); } @Test @@ -50,7 +49,7 @@ void completeAfterAddingEmptyEntryReturnsNothing() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("test")); - assertEquals(Collections.emptyList(), result); + assertEquals(List.of(), result); } @Test @@ -60,7 +59,7 @@ void completeAfterAddingEntryWithoutFieldReturnsNothing() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("test")); - assertEquals(Collections.emptyList(), result); + assertEquals(List.of(), result); } @Test @@ -77,7 +76,7 @@ void completeOnIgnoredFieldReturnsNothing() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("testValue")); - assertEquals(Collections.emptyList(), result); + assertEquals(List.of(), result); } @Test @@ -126,7 +125,7 @@ void completeEmptyStringReturnsNothing() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("")); - assertEquals(Collections.emptyList(), result); + assertEquals(List.of(), result); } @Test @@ -149,7 +148,7 @@ void completeShortStringReturnsFieldValue() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("va")); - assertEquals(Collections.singletonList("val"), result); + assertEquals(List.of("val"), result); } @Test @@ -159,7 +158,7 @@ void completeBeginnigOfSecondWordReturnsWholeFieldValue() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("val")); - assertEquals(Collections.singletonList("test value"), result); + assertEquals(List.of("test value"), result); } @Test @@ -169,7 +168,7 @@ void completePartOfWordReturnsWholeFieldValue() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("lue")); - assertEquals(Collections.singletonList("test value"), result); + assertEquals(List.of("test value"), result); } @Test @@ -179,6 +178,6 @@ void completeReturnsWholeFieldValue() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("te")); - assertEquals(Collections.singletonList("test value"), result); + assertEquals(List.of("test value"), result); } } diff --git a/src/test/java/org/jabref/gui/autocompleter/PersonNameStringConverterTest.java b/jabgui/src/test/java/org/jabref/gui/autocompleter/PersonNameStringConverterTest.java similarity index 97% rename from src/test/java/org/jabref/gui/autocompleter/PersonNameStringConverterTest.java rename to jabgui/src/test/java/org/jabref/gui/autocompleter/PersonNameStringConverterTest.java index c38a604dfab..a2b735a81bd 100644 --- a/src/test/java/org/jabref/gui/autocompleter/PersonNameStringConverterTest.java +++ b/jabgui/src/test/java/org/jabref/gui/autocompleter/PersonNameStringConverterTest.java @@ -1,6 +1,6 @@ package org.jabref.gui.autocompleter; -import java.util.Collections; +import java.util.Set; import org.jabref.logic.preferences.AutoCompleteFirstNameMode; import org.jabref.model.entry.Author; @@ -67,7 +67,7 @@ void toStringWithAutoCompletePreferences(boolean shouldAutoComplete, shouldAutoComplete, firstNameMode, nameFormat, - Collections.emptySet()); + Set.of()); PersonNameStringConverter converter = new PersonNameStringConverter(preferences); String formattedStr = converter.toString(author); assertEquals(expectedResult, formattedStr); diff --git a/src/test/java/org/jabref/gui/autocompleter/PersonNameSuggestionProviderTest.java b/jabgui/src/test/java/org/jabref/gui/autocompleter/PersonNameSuggestionProviderTest.java similarity index 84% rename from src/test/java/org/jabref/gui/autocompleter/PersonNameSuggestionProviderTest.java rename to jabgui/src/test/java/org/jabref/gui/autocompleter/PersonNameSuggestionProviderTest.java index 980868f7306..a05b394b89c 100644 --- a/src/test/java/org/jabref/gui/autocompleter/PersonNameSuggestionProviderTest.java +++ b/jabgui/src/test/java/org/jabref/gui/autocompleter/PersonNameSuggestionProviderTest.java @@ -2,7 +2,7 @@ import java.util.Arrays; import java.util.Collection; -import java.util.Collections; +import java.util.List; import org.jabref.model.database.BibDatabase; import org.jabref.model.entry.Author; @@ -25,7 +25,7 @@ class PersonNameSuggestionProviderTest { private BibDatabase database; @BeforeEach - void setUp() throws Exception { + void setUp() { database = new BibDatabase(); autoCompleter = new PersonNameSuggestionProvider(StandardField.AUTHOR, database); @@ -41,7 +41,7 @@ void initAutoCompleterWithNullFieldThrowsException() { @Test void completeWithoutAddingAnythingReturnsNothing() { Collection result = autoCompleter.provideSuggestions(getRequest("test")); - assertEquals(Collections.emptyList(), result); + assertEquals(List.of(), result); } @Test @@ -50,7 +50,7 @@ void completeAfterAddingEmptyEntryReturnsNothing() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("test")); - assertEquals(Collections.emptyList(), result); + assertEquals(List.of(), result); } @Test @@ -60,7 +60,7 @@ void completeAfterAddingEntryWithoutFieldReturnsNothing() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("test")); - assertEquals(Collections.emptyList(), result); + assertEquals(List.of(), result); } @Test @@ -68,7 +68,7 @@ void completeNameReturnsName() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("Kostakos")); - assertEquals(Collections.singletonList(vassilisKostakos), result); + assertEquals(List.of(vassilisKostakos), result); } @Test @@ -76,7 +76,7 @@ void completeBeginningOfNameReturnsName() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("Kosta")); - assertEquals(Collections.singletonList(vassilisKostakos), result); + assertEquals(List.of(vassilisKostakos), result); } @Test @@ -84,7 +84,7 @@ void completeLowercaseBeginningOfNameReturnsName() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("kosta")); - assertEquals(Collections.singletonList(vassilisKostakos), result); + assertEquals(List.of(vassilisKostakos), result); } @Test @@ -97,7 +97,7 @@ void completeEmptyStringReturnsNothing() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("")); - assertEquals(Collections.emptyList(), result); + assertEquals(List.of(), result); } @Test @@ -117,7 +117,7 @@ void completePartOfNameReturnsName() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("osta")); - assertEquals(Collections.singletonList(vassilisKostakos), result); + assertEquals(List.of(vassilisKostakos), result); } @Test @@ -125,7 +125,7 @@ void completeBeginningOfFirstNameReturnsName() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("Vas")); - assertEquals(Collections.singletonList(vassilisKostakos), result); + assertEquals(List.of(vassilisKostakos), result); } @Test @@ -136,7 +136,7 @@ void completeBeginningOfFirstNameReturnsNameWithJr() { Author author = new Author("Joseph M.", "J. M.", "", "Reagle", "Jr."); Collection result = autoCompleter.provideSuggestions(getRequest("Jos")); - assertEquals(Collections.singletonList(author), result); + assertEquals(List.of(author), result); } @Test @@ -147,7 +147,7 @@ void completeBeginningOfFirstNameReturnsNameWithVon() { Author author = new Author("Eric", "E.", "von", "Hippel", ""); Collection result = autoCompleter.provideSuggestions(getRequest("Eric")); - assertEquals(Collections.singletonList(author), result); + assertEquals(List.of(author), result); } @Test @@ -158,7 +158,7 @@ void completeBeginningOfLastNameReturnsNameWithUmlauts() { Author author = new Author("Honig", "H.", "", "Bär", ""); Collection result = autoCompleter.provideSuggestions(getRequest("Bä")); - assertEquals(Collections.singletonList(author), result); + assertEquals(List.of(author), result); } @Test @@ -169,7 +169,7 @@ void completeVonReturnsName() { Author author = new Author("Eric", "E.", "von", "Hippel", ""); Collection result = autoCompleter.provideSuggestions(getRequest("von")); - assertEquals(Collections.singletonList(author), result); + assertEquals(List.of(author), result); } @Test @@ -179,6 +179,6 @@ void completeBeginningOfFullNameReturnsName() { database.insertEntry(entry); Collection result = autoCompleter.provideSuggestions(getRequest("Kostakos, Va")); - assertEquals(Collections.singletonList(vassilisKostakos), result); + assertEquals(List.of(vassilisKostakos), result); } } diff --git a/src/test/java/org/jabref/gui/autocompleter/SuggestionProvidersTest.java b/jabgui/src/test/java/org/jabref/gui/autocompleter/SuggestionProvidersTest.java similarity index 100% rename from src/test/java/org/jabref/gui/autocompleter/SuggestionProvidersTest.java rename to jabgui/src/test/java/org/jabref/gui/autocompleter/SuggestionProvidersTest.java diff --git a/src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerDiscardedTest.java b/jabgui/src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerDiscardedTest.java similarity index 93% rename from src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerDiscardedTest.java rename to jabgui/src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerDiscardedTest.java index 7619e0c9ae2..2f47b10d957 100644 --- a/src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerDiscardedTest.java +++ b/jabgui/src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerDiscardedTest.java @@ -43,7 +43,7 @@ class BackupManagerDiscardedTest { private Path backupDir; @BeforeEach - void setup(@TempDir Path tempDir) throws Exception { + void setup(@TempDir Path tempDir) throws IOException { this.backupDir = tempDir.resolve("backups"); Files.createDirectories(backupDir); @@ -85,14 +85,14 @@ private void makeBackup() { } @Test - void noDiscardingAChangeLeadsToNewerBackupBeReported() throws Exception { + void noDiscardingAChangeLeadsToNewerBackupBeReported() { databaseModification(); makeBackup(); assertTrue(BackupManager.backupFileDiffers(testBib, backupDir)); } @Test - void noDiscardingASavedChange() throws Exception { + void noDiscardingASavedChange() throws IOException { databaseModification(); makeBackup(); saveDatabase(); @@ -100,7 +100,7 @@ void noDiscardingASavedChange() throws Exception { } @Test - void discardingAChangeLeadsToNewerBackupToBeIgnored() throws Exception { + void discardingAChangeLeadsToNewerBackupToBeIgnored() { databaseModification(); makeBackup(); backupManager.discardBackup(backupDir); diff --git a/src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerTest.java b/jabgui/src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerTest.java similarity index 92% rename from src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerTest.java rename to jabgui/src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerTest.java index a45d7cbb9c1..ac2d024d62e 100644 --- a/src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerTest.java +++ b/jabgui/src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerTest.java @@ -1,10 +1,11 @@ package org.jabref.gui.autosaveandbackup; +import java.io.IOException; +import java.net.URISyntaxException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardCopyOption; import java.nio.file.attribute.FileTime; -import java.util.Collections; import java.util.List; import java.util.Optional; @@ -53,13 +54,13 @@ void backupFileNameIsCorrectlyGeneratedInAppDataDirectory() { } @Test - void backupFileIsEqualForNonExistingBackup() throws Exception { + void backupFileIsEqualForNonExistingBackup() throws URISyntaxException { Path originalFile = Path.of(BackupManagerTest.class.getResource("no-autosave.bib").toURI()); assertFalse(BackupManager.backupFileDiffers(originalFile, backupDir)); } @Test - void backupFileIsEqual() throws Exception { + void backupFileIsEqual() throws URISyntaxException, IOException { // Prepare test: Create backup file on "right" path Path source = Path.of(BackupManagerTest.class.getResource("no-changes.bib.bak").toURI()); Path target = BackupFileUtil.getPathForNewBackupFileAndCreateDirectory(Path.of(BackupManagerTest.class.getResource("no-changes.bib").toURI()), BackupFileType.BACKUP, backupDir); @@ -70,7 +71,7 @@ void backupFileIsEqual() throws Exception { } @Test - void backupFileDiffers() throws Exception { + void backupFileDiffers() throws URISyntaxException, IOException { // Prepare test: Create backup file on "right" path Path source = Path.of(BackupManagerTest.class.getResource("changes.bib.bak").toURI()); Path target = BackupFileUtil.getPathForNewBackupFileAndCreateDirectory(Path.of(BackupManagerTest.class.getResource("changes.bib").toURI()), BackupFileType.BACKUP, backupDir); @@ -81,7 +82,7 @@ void backupFileDiffers() throws Exception { } @Test - void correctBackupFileDeterminedForMultipleBakFiles() throws Exception { + void correctBackupFileDeterminedForMultipleBakFiles() throws URISyntaxException, IOException { Path noChangesBib = Path.of(BackupManagerTest.class.getResource("no-changes.bib").toURI()); Path noChangesBibBak = Path.of(BackupManagerTest.class.getResource("no-changes.bib.bak").toURI()); @@ -94,7 +95,7 @@ void correctBackupFileDeterminedForMultipleBakFiles() throws Exception { for (int i = 0; i < 10; i++) { Path changesBibBak = Path.of(BackupManagerTest.class.getResource("changes.bib").toURI()); Path directory = backupDir; - String timeSuffix = "2020-02-03--00.00.0" + Integer.toString(i); + String timeSuffix = "2020-02-03--00.00.0" + i; String fileName = BackupFileUtil.getUniqueFilePrefix(noChangesBib) + "--no-changes.bib--" + timeSuffix + ".bak"; target = directory.resolve(fileName); Files.copy(changesBibBak, target, StandardCopyOption.REPLACE_EXISTING); @@ -105,7 +106,7 @@ void correctBackupFileDeterminedForMultipleBakFiles() throws Exception { } @Test - void bakFileWithNewerTimeStampLeadsToDiff() throws Exception { + void bakFileWithNewerTimeStampLeadsToDiff() throws URISyntaxException, IOException { Path changesBib = Path.of(BackupManagerTest.class.getResource("changes.bib").toURI()); Path changesBibBak = Path.of(BackupManagerTest.class.getResource("changes.bib.bak").toURI()); @@ -116,7 +117,7 @@ void bakFileWithNewerTimeStampLeadsToDiff() throws Exception { } @Test - void bakFileWithOlderTimeStampDoesNotLeadToDiff() throws Exception { + void bakFileWithOlderTimeStampDoesNotLeadToDiff() throws URISyntaxException, IOException { Path changesBib = Path.of(BackupManagerTest.class.getResource("changes.bib").toURI()); Path changesBibBak = Path.of(BackupManagerTest.class.getResource("changes.bib.bak").toURI()); @@ -130,7 +131,7 @@ void bakFileWithOlderTimeStampDoesNotLeadToDiff() throws Exception { } @Test - void shouldNotCreateABackup(@TempDir Path customDir) throws Exception { + void shouldNotCreateABackup(@TempDir Path customDir) throws URISyntaxException, IOException { Path backupDir = customDir.resolve("subBackupDir"); Files.createDirectories(backupDir); @@ -153,11 +154,11 @@ void shouldNotCreateABackup(@TempDir Path customDir) throws Exception { BackupManager.shutdown(database, filePreferences.getBackupDirectory(), filePreferences.shouldCreateBackup()); List files = Files.list(backupDir).toList(); - assertEquals(Collections.emptyList(), files); + assertEquals(List.of(), files); } @Test - void shouldCreateABackup(@TempDir Path customDir) throws Exception { + void shouldCreateABackup(@TempDir Path customDir) throws IOException { Path backupDir = customDir.resolve("subBackupDir"); Files.createDirectories(backupDir); diff --git a/src/test/java/org/jabref/gui/commonfxcontrols/SaveOrderPanelViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/commonfxcontrols/SaveOrderPanelViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/commonfxcontrols/SaveOrderPanelViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/commonfxcontrols/SaveOrderPanelViewModelTest.java diff --git a/jabgui/src/test/java/org/jabref/gui/desktop/os/BibDatbaseContextTest.java b/jabgui/src/test/java/org/jabref/gui/desktop/os/BibDatbaseContextTest.java new file mode 100644 index 00000000000..f7dee26e3eb --- /dev/null +++ b/jabgui/src/test/java/org/jabref/gui/desktop/os/BibDatbaseContextTest.java @@ -0,0 +1,37 @@ +package org.jabref.gui.desktop.os; + +import java.nio.file.Path; +import java.util.List; +import java.util.Optional; + +import org.jabref.logic.FilePreferences; +import org.jabref.model.database.BibDatabaseContext; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public class BibDatbaseContextTest { + + private FilePreferences fileDirPrefs; + + @BeforeEach + void setUp() { + fileDirPrefs = mock(FilePreferences.class); + when(fileDirPrefs.shouldStoreFilesRelativeToBibFile()).thenReturn(true); + } + + @Test + void getUserFileDirectoryIfAllAreEmpty() { + when(fileDirPrefs.shouldStoreFilesRelativeToBibFile()).thenReturn(false); + Path userDirJabRef = NativeDesktop.get().getDefaultFileChooserDirectory(); + + when(fileDirPrefs.getMainFileDirectory()).thenReturn(Optional.of(userDirJabRef)); + BibDatabaseContext database = new BibDatabaseContext(); + database.setDatabasePath(Path.of("biblio.bib")); + assertEquals(List.of(userDirJabRef), database.getFileDirectories(fileDirPrefs)); + } +} diff --git a/src/test/java/org/jabref/gui/documentviewer/PdfDocumentViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/documentviewer/PdfDocumentViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/documentviewer/PdfDocumentViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/documentviewer/PdfDocumentViewModelTest.java diff --git a/src/test/java/org/jabref/gui/edit/CopyMoreActionTest.java b/jabgui/src/test/java/org/jabref/gui/edit/CopyMoreActionTest.java similarity index 100% rename from src/test/java/org/jabref/gui/edit/CopyMoreActionTest.java rename to jabgui/src/test/java/org/jabref/gui/edit/CopyMoreActionTest.java diff --git a/src/test/java/org/jabref/gui/edit/CopyOrMoveFieldContentTabViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/edit/CopyOrMoveFieldContentTabViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/edit/CopyOrMoveFieldContentTabViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/edit/CopyOrMoveFieldContentTabViewModelTest.java diff --git a/src/test/java/org/jabref/gui/edit/CopyToTest.java b/jabgui/src/test/java/org/jabref/gui/edit/CopyToTest.java similarity index 100% rename from src/test/java/org/jabref/gui/edit/CopyToTest.java rename to jabgui/src/test/java/org/jabref/gui/edit/CopyToTest.java diff --git a/src/test/java/org/jabref/gui/edit/EditFieldContentTabViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/edit/EditFieldContentTabViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/edit/EditFieldContentTabViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/edit/EditFieldContentTabViewModelTest.java diff --git a/src/test/java/org/jabref/gui/edit/ManageKeywordsViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/edit/ManageKeywordsViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/edit/ManageKeywordsViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/edit/ManageKeywordsViewModelTest.java diff --git a/src/test/java/org/jabref/gui/edit/RenameFieldViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/edit/RenameFieldViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/edit/RenameFieldViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/edit/RenameFieldViewModelTest.java diff --git a/src/test/java/org/jabref/gui/edit/ReplaceStringViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/edit/ReplaceStringViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/edit/ReplaceStringViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/edit/ReplaceStringViewModelTest.java diff --git a/src/test/java/org/jabref/gui/entryeditor/CommentsTabTest.java b/jabgui/src/test/java/org/jabref/gui/entryeditor/CommentsTabTest.java similarity index 99% rename from src/test/java/org/jabref/gui/entryeditor/CommentsTabTest.java rename to jabgui/src/test/java/org/jabref/gui/entryeditor/CommentsTabTest.java index e0a51e365c9..62acd958905 100644 --- a/src/test/java/org/jabref/gui/entryeditor/CommentsTabTest.java +++ b/jabgui/src/test/java/org/jabref/gui/entryeditor/CommentsTabTest.java @@ -25,7 +25,6 @@ import org.jabref.model.entry.field.StandardField; import org.jabref.model.entry.field.UserSpecificCommentField; import org.jabref.model.entry.types.StandardEntryType; -import org.jabref.testutils.category.GUITest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -42,7 +41,6 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -@GUITest @ExtendWith(ApplicationExtension.class) class CommentsTabTest { diff --git a/src/test/java/org/jabref/model/entry/field/FieldEditorsMultilinePropertyTest.java b/jabgui/src/test/java/org/jabref/gui/entryeditor/FieldEditorsMultilinePropertyTest.java similarity index 96% rename from src/test/java/org/jabref/model/entry/field/FieldEditorsMultilinePropertyTest.java rename to jabgui/src/test/java/org/jabref/gui/entryeditor/FieldEditorsMultilinePropertyTest.java index f41d94549f3..f98a3e48b35 100644 --- a/src/test/java/org/jabref/model/entry/field/FieldEditorsMultilinePropertyTest.java +++ b/jabgui/src/test/java/org/jabref/gui/entryeditor/FieldEditorsMultilinePropertyTest.java @@ -1,7 +1,6 @@ -package org.jabref.model.entry.field; +package org.jabref.gui.entryeditor; import java.nio.file.Path; -import java.nio.file.Paths; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -11,6 +10,10 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.jabref.model.entry.field.FieldProperty; +import org.jabref.model.entry.field.InternalField; +import org.jabref.model.entry.field.StandardField; + import com.github.javaparser.JavaParser; import com.github.javaparser.ParserConfiguration; import com.github.javaparser.ast.CompilationUnit; @@ -90,7 +93,7 @@ public void fieldEditorsMatchMultilineProperty() throws Exception { private static Map> getEditorsWithPropertiesInFieldEditors() throws Exception { final String filePath = "src/main/java/org/jabref/gui/fieldeditors/FieldEditors.java"; Map> result = new HashMap<>(); - CompilationUnit cu = PARSER.parse(Paths.get(filePath)) + CompilationUnit cu = PARSER.parse(Path.of(filePath)) .getResult() .orElseThrow(() -> new NullPointerException("Failed to parse FieldEditors.java")); @@ -146,10 +149,10 @@ private static Map> getEditorsWithPropertiesInFieldEdi .findFirst() .ifPresentOrElse(importDeclaration -> { String classPath = importDeclaration.getNameAsString(); - Path classFilePath = Paths.get("src/main/java/" + classPath.replace(".", "/") + ".java"); + Path classFilePath = Path.of("src/main/java/" + classPath.replace(".", "/") + ".java"); result.put(classFilePath, properties); }, () -> { - Path classFilePath = Paths.get("src/main/java/org/jabref/gui/fieldeditors/" + createdClassName + ".java"); + Path classFilePath = Path.of("src/main/java/org/jabref/gui/fieldeditors/" + createdClassName + ".java"); result.put(classFilePath, properties); }); }); diff --git a/src/test/java/org/jabref/gui/entryeditor/SciteTabTest.java b/jabgui/src/test/java/org/jabref/gui/entryeditor/SciteTabTest.java similarity index 97% rename from src/test/java/org/jabref/gui/entryeditor/SciteTabTest.java rename to jabgui/src/test/java/org/jabref/gui/entryeditor/SciteTabTest.java index e82b20d0d2c..6b47fd1ff9d 100644 --- a/src/test/java/org/jabref/gui/entryeditor/SciteTabTest.java +++ b/jabgui/src/test/java/org/jabref/gui/entryeditor/SciteTabTest.java @@ -5,7 +5,6 @@ import org.jabref.logic.util.TaskExecutor; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; -import org.jabref.testutils.category.GUITest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -20,7 +19,6 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -@GUITest @ExtendWith(ApplicationExtension.class) public class SciteTabTest { diff --git a/src/test/java/org/jabref/gui/entryeditor/SciteTabViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/entryeditor/SciteTabViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/entryeditor/SciteTabViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/entryeditor/SciteTabViewModelTest.java diff --git a/src/test/java/org/jabref/gui/entryeditor/SourceTabTest.java b/jabgui/src/test/java/org/jabref/gui/entryeditor/SourceTabTest.java similarity index 96% rename from src/test/java/org/jabref/gui/entryeditor/SourceTabTest.java rename to jabgui/src/test/java/org/jabref/gui/entryeditor/SourceTabTest.java index 250ff92136d..fd43e6f70c0 100644 --- a/src/test/java/org/jabref/gui/entryeditor/SourceTabTest.java +++ b/jabgui/src/test/java/org/jabref/gui/entryeditor/SourceTabTest.java @@ -1,6 +1,6 @@ package org.jabref.gui.entryeditor; -import java.util.Collections; +import java.util.List; import javafx.beans.property.StringProperty; import javafx.collections.FXCollections; @@ -22,7 +22,6 @@ import org.jabref.model.entry.BibEntryTypesManager; import org.jabref.model.entry.field.UnknownField; import org.jabref.model.util.DummyFileUpdateMonitor; -import org.jabref.testutils.category.GUITest; import org.fxmisc.richtext.CodeArea; import org.junit.jupiter.api.Test; @@ -35,7 +34,6 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -@GUITest @ExtendWith(ApplicationExtension.class) class SourceTabTest { @@ -53,7 +51,7 @@ public void onStart(Stage stage) { when(stateManager.activeSearchQuery(SearchType.NORMAL_SEARCH)).thenReturn(OptionalObjectProperty.empty()); when(stateManager.searchQueryProperty()).thenReturn(mock(StringProperty.class)); when(stateManager.activeTabProperty()).thenReturn(OptionalObjectProperty.empty()); - KeyBindingRepository keyBindingRepository = new KeyBindingRepository(Collections.emptyList(), Collections.emptyList()); + KeyBindingRepository keyBindingRepository = new KeyBindingRepository(List.of(), List.of()); ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); when(importFormatPreferences.bibEntryPreferences().getKeywordSeparator()).thenReturn(','); FieldPreferences fieldPreferences = mock(FieldPreferences.class); diff --git a/src/test/java/org/jabref/gui/entryeditor/citationrelationtab/BibEntryRelationsRepositoryTest.java b/jabgui/src/test/java/org/jabref/gui/entryeditor/citationrelationtab/BibEntryRelationsRepositoryTest.java similarity index 91% rename from src/test/java/org/jabref/gui/entryeditor/citationrelationtab/BibEntryRelationsRepositoryTest.java rename to jabgui/src/test/java/org/jabref/gui/entryeditor/citationrelationtab/BibEntryRelationsRepositoryTest.java index 41106d57a6b..8a242caefba 100644 --- a/src/test/java/org/jabref/gui/entryeditor/citationrelationtab/BibEntryRelationsRepositoryTest.java +++ b/jabgui/src/test/java/org/jabref/gui/entryeditor/citationrelationtab/BibEntryRelationsRepositoryTest.java @@ -2,7 +2,8 @@ import java.util.List; -import org.jabref.gui.entryeditor.citationrelationtab.semanticscholar.SemanticScholarFetcher; +import org.jabref.logic.importer.FetcherException; +import org.jabref.logic.importer.fetcher.citation.semanticscholar.SemanticScholarFetcher; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; @@ -36,7 +37,7 @@ private BibEntry createCitingBibEntry(BibEntry citedEntry) { } @Test - void getCitations() throws Exception { + void getCitations() throws FetcherException { SemanticScholarFetcher semanticScholarFetcher = mock(SemanticScholarFetcher.class); when(semanticScholarFetcher.searchCitedBy(any(BibEntry.class))).thenAnswer(invocation -> { BibEntry entry = invocation.getArgument(0); diff --git a/src/test/java/org/jabref/gui/entryeditor/citationrelationtab/CitationsRelationsTabViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/entryeditor/citationrelationtab/CitationsRelationsTabViewModelTest.java similarity index 98% rename from src/test/java/org/jabref/gui/entryeditor/citationrelationtab/CitationsRelationsTabViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/entryeditor/citationrelationtab/CitationsRelationsTabViewModelTest.java index b58fc4e9fae..b82c1d0347c 100644 --- a/src/test/java/org/jabref/gui/entryeditor/citationrelationtab/CitationsRelationsTabViewModelTest.java +++ b/jabgui/src/test/java/org/jabref/gui/entryeditor/citationrelationtab/CitationsRelationsTabViewModelTest.java @@ -9,7 +9,6 @@ import org.jabref.gui.DialogService; import org.jabref.gui.StateManager; -import org.jabref.gui.entryeditor.citationrelationtab.semanticscholar.CitationFetcher; import org.jabref.gui.externalfiles.ImportHandler; import org.jabref.gui.preferences.GuiPreferences; import org.jabref.logic.FilePreferences; @@ -19,6 +18,7 @@ import org.jabref.logic.database.DuplicateCheck; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.logic.importer.ImporterPreferences; +import org.jabref.logic.importer.fetcher.citation.CitationFetcher; import org.jabref.logic.preferences.OwnerPreferences; import org.jabref.logic.preferences.TimestampPreferences; import org.jabref.logic.util.CurrentThreadTaskExecutor; diff --git a/src/test/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationViewModelTest.java diff --git a/src/test/java/org/jabref/gui/exporter/ExportToClipboardActionTest.java b/jabgui/src/test/java/org/jabref/gui/exporter/ExportToClipboardActionTest.java similarity index 100% rename from src/test/java/org/jabref/gui/exporter/ExportToClipboardActionTest.java rename to jabgui/src/test/java/org/jabref/gui/exporter/ExportToClipboardActionTest.java diff --git a/src/test/java/org/jabref/gui/exporter/SaveDatabaseActionTest.java b/jabgui/src/test/java/org/jabref/gui/exporter/SaveDatabaseActionTest.java similarity index 98% rename from src/test/java/org/jabref/gui/exporter/SaveDatabaseActionTest.java rename to jabgui/src/test/java/org/jabref/gui/exporter/SaveDatabaseActionTest.java index f8f8b448686..bd8ae13fa25 100644 --- a/src/test/java/org/jabref/gui/exporter/SaveDatabaseActionTest.java +++ b/jabgui/src/test/java/org/jabref/gui/exporter/SaveDatabaseActionTest.java @@ -3,7 +3,6 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -139,7 +138,7 @@ private SaveDatabaseAction createSaveDatabaseActionForBibDatabase(BibDatabase da } @Test - void saveKeepsChangedFlag() throws Exception { + void saveKeepsChangedFlag() throws IOException { BibEntry firstEntry = new BibEntry().withField(StandardField.AUTHOR, "first"); firstEntry.setChanged(true); BibEntry secondEntry = new BibEntry().withField(StandardField.AUTHOR, "second"); @@ -152,7 +151,7 @@ void saveKeepsChangedFlag() throws Exception { assertEquals(database .getEntries().stream() .map(BibEntry::hasChanged).filter(changed -> false).collect(Collectors.toList()), - Collections.emptyList()); + List.of()); } @Test diff --git a/src/test/java/org/jabref/gui/externalfiles/AutoSetFileLinksUtilTest.java b/jabgui/src/test/java/org/jabref/gui/externalfiles/AutoSetFileLinksUtilTest.java similarity index 87% rename from src/test/java/org/jabref/gui/externalfiles/AutoSetFileLinksUtilTest.java rename to jabgui/src/test/java/org/jabref/gui/externalfiles/AutoSetFileLinksUtilTest.java index 937b42d601a..2f5752cfa0e 100644 --- a/src/test/java/org/jabref/gui/externalfiles/AutoSetFileLinksUtilTest.java +++ b/jabgui/src/test/java/org/jabref/gui/externalfiles/AutoSetFileLinksUtilTest.java @@ -1,8 +1,8 @@ package org.jabref.gui.externalfiles; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.TreeSet; @@ -40,7 +40,7 @@ class AutoSetFileLinksUtilTest { private Path path = null; @BeforeEach - void setUp(@TempDir Path folder) throws Exception { + void setUp(@TempDir Path folder) throws IOException { path = folder.resolve("CiteKey.pdf"); Files.createFile(path); entry.setCitationKey("CiteKey"); @@ -49,19 +49,19 @@ void setUp(@TempDir Path folder) throws Exception { } @Test - void findAssociatedNotLinkedFilesSuccess() throws Exception { - when(databaseContext.getFileDirectories(any())).thenReturn(Collections.singletonList(path.getParent())); - List expected = Collections.singletonList(new LinkedFile("", Path.of("CiteKey.pdf"), "PDF")); + void findAssociatedNotLinkedFilesSuccess() throws IOException { + when(databaseContext.getFileDirectories(any())).thenReturn(List.of(path.getParent())); + List expected = List.of(new LinkedFile("", Path.of("CiteKey.pdf"), "PDF")); AutoSetFileLinksUtil util = new AutoSetFileLinksUtil(databaseContext, externalApplicationsPreferences, filePreferences, autoLinkPrefs); List actual = util.findAssociatedNotLinkedFiles(entry); assertEquals(expected, actual); } @Test - void findAssociatedNotLinkedFilesForEmptySearchDir() throws Exception { + void findAssociatedNotLinkedFilesForEmptySearchDir() throws IOException { when(filePreferences.shouldStoreFilesRelativeToBibFile()).thenReturn(false); AutoSetFileLinksUtil util = new AutoSetFileLinksUtil(databaseContext, externalApplicationsPreferences, filePreferences, autoLinkPrefs); List actual = util.findAssociatedNotLinkedFiles(entry); - assertEquals(Collections.emptyList(), actual); + assertEquals(List.of(), actual); } } diff --git a/src/test/java/org/jabref/gui/externalfiles/FileFilterUtilsTest.java b/jabgui/src/test/java/org/jabref/gui/externalfiles/FileFilterUtilsTest.java old mode 100755 new mode 100644 similarity index 97% rename from src/test/java/org/jabref/gui/externalfiles/FileFilterUtilsTest.java rename to jabgui/src/test/java/org/jabref/gui/externalfiles/FileFilterUtilsTest.java index 9faa54d6e9f..b746114a6ef --- a/src/test/java/org/jabref/gui/externalfiles/FileFilterUtilsTest.java +++ b/jabgui/src/test/java/org/jabref/gui/externalfiles/FileFilterUtilsTest.java @@ -1,5 +1,6 @@ package org.jabref.gui.externalfiles; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.attribute.FileTime; @@ -75,7 +76,7 @@ class SortingTests { /* Initialize the directory and files used in the sorting tests, and change their last edited dates. */ @BeforeEach - void setUp(@TempDir Path tempDir) throws Exception { + void setUp(@TempDir Path tempDir) throws IOException { Path firstPath = tempDir.resolve("firstFile.pdf"); Path secondPath = tempDir.resolve("secondFile.pdf"); @@ -164,7 +165,7 @@ class filteringTests { private final Set ignoreFileSet = new HashSet<>(); @BeforeEach - void setUp(@TempDir Path tempDir) throws Exception { + void setUp(@TempDir Path tempDir) throws IOException { ignoreFileSet.add(".DS_Store"); ignoreFileSet.add("Thumbs.db"); diff --git a/src/test/java/org/jabref/gui/externalfiles/FindUnlinkedFilesActionTest.java b/jabgui/src/test/java/org/jabref/gui/externalfiles/FindUnlinkedFilesActionTest.java similarity index 100% rename from src/test/java/org/jabref/gui/externalfiles/FindUnlinkedFilesActionTest.java rename to jabgui/src/test/java/org/jabref/gui/externalfiles/FindUnlinkedFilesActionTest.java diff --git a/src/test/java/org/jabref/gui/externalfiles/GitIgnoreFileFilterTest.java b/jabgui/src/test/java/org/jabref/gui/externalfiles/GitIgnoreFileFilterTest.java similarity index 87% rename from src/test/java/org/jabref/gui/externalfiles/GitIgnoreFileFilterTest.java rename to jabgui/src/test/java/org/jabref/gui/externalfiles/GitIgnoreFileFilterTest.java index c574719bdde..9a7d5cb6bbc 100644 --- a/src/test/java/org/jabref/gui/externalfiles/GitIgnoreFileFilterTest.java +++ b/jabgui/src/test/java/org/jabref/gui/externalfiles/GitIgnoreFileFilterTest.java @@ -1,5 +1,6 @@ package org.jabref.gui.externalfiles; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; @@ -12,7 +13,7 @@ class GitIgnoreFileFilterTest { @Test - void checkSimpleGitIgnore(@TempDir Path dir) throws Exception { + void checkSimpleGitIgnore(@TempDir Path dir) throws IOException { Files.writeString(dir.resolve(".gitignore"), """ *.png """); @@ -21,7 +22,7 @@ void checkSimpleGitIgnore(@TempDir Path dir) throws Exception { } @Test - void checkSimpleGitIgnoreWithAllowing(@TempDir Path dir) throws Exception { + void checkSimpleGitIgnoreWithAllowing(@TempDir Path dir) throws IOException { Files.writeString(dir.resolve(".gitignore"), """ !*.png """); @@ -30,7 +31,7 @@ void checkSimpleGitIgnoreWithAllowing(@TempDir Path dir) throws Exception { } @Test - void checkSimpleGitIgnoreWithOverwritingDefs(@TempDir Path dir) throws Exception { + void checkSimpleGitIgnoreWithOverwritingDefs(@TempDir Path dir) throws IOException { Files.writeString(dir.resolve(".gitignore"), """ !*.png *.png @@ -40,7 +41,7 @@ void checkSimpleGitIgnoreWithOverwritingDefs(@TempDir Path dir) throws Exception } @Test - void checkDirectoryGitIgnore(@TempDir Path dir) throws Exception { + void checkDirectoryGitIgnore(@TempDir Path dir) throws IOException { Files.writeString(dir.resolve(".gitignore"), """ **/*.png """); diff --git a/src/test/java/org/jabref/gui/externalfiles/ImportHandlerTest.java b/jabgui/src/test/java/org/jabref/gui/externalfiles/ImportHandlerTest.java similarity index 100% rename from src/test/java/org/jabref/gui/externalfiles/ImportHandlerTest.java rename to jabgui/src/test/java/org/jabref/gui/externalfiles/ImportHandlerTest.java diff --git a/src/test/java/org/jabref/gui/externalfiles/UnlinkedFilesCrawlerTest.java b/jabgui/src/test/java/org/jabref/gui/externalfiles/UnlinkedFilesCrawlerTest.java similarity index 97% rename from src/test/java/org/jabref/gui/externalfiles/UnlinkedFilesCrawlerTest.java rename to jabgui/src/test/java/org/jabref/gui/externalfiles/UnlinkedFilesCrawlerTest.java index 7a76317ddbd..86b7c5584e9 100644 --- a/src/test/java/org/jabref/gui/externalfiles/UnlinkedFilesCrawlerTest.java +++ b/jabgui/src/test/java/org/jabref/gui/externalfiles/UnlinkedFilesCrawlerTest.java @@ -25,7 +25,7 @@ class UnlinkedFilesCrawlerTest { @Test - void minimalGitIgnore(@TempDir Path testRoot) throws Exception { + void minimalGitIgnore(@TempDir Path testRoot) throws IOException { Files.writeString(testRoot.resolve(".gitignore"), """ *.png """); diff --git a/src/test/java/org/jabref/gui/externalfiles/UnlinkedFilesDialogViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/externalfiles/UnlinkedFilesDialogViewModelTest.java similarity index 94% rename from src/test/java/org/jabref/gui/externalfiles/UnlinkedFilesDialogViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/externalfiles/UnlinkedFilesDialogViewModelTest.java index deb3c32e43e..6225372828b 100644 --- a/src/test/java/org/jabref/gui/externalfiles/UnlinkedFilesDialogViewModelTest.java +++ b/jabgui/src/test/java/org/jabref/gui/externalfiles/UnlinkedFilesDialogViewModelTest.java @@ -1,8 +1,8 @@ package org.jabref.gui.externalfiles; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.Paths; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -49,13 +49,13 @@ public class UnlinkedFilesDialogViewModelTest { private UnlinkedFilesDialogViewModel viewModel; @BeforeEach - public void setUp() throws Exception { + public void setUp() { MockitoAnnotations.openMocks(this); // Mock a base directory FilePreferences filePreferences = mock(FilePreferences.class); when(guiPreferences.getFilePreferences()).thenReturn(filePreferences); - when(filePreferences.getWorkingDirectory()).thenReturn(Paths.get("C:/test/base")); + when(filePreferences.getWorkingDirectory()).thenReturn(Path.of("C:/test/base")); // Mock the state manager to provide an active database when(stateManager.getActiveDatabase()).thenReturn(Optional.of(bibDatabaseContext)); @@ -71,7 +71,7 @@ public void setUp() throws Exception { } @Test - public void startImportWithValidFilesTest() throws Exception { + public void startImportWithValidFilesTest() throws IOException { // Create temporary test files tempDir = Files.createTempDirectory("testDir"); subDir = tempDir.resolve("subdir"); @@ -105,7 +105,7 @@ public void startImportWithValidFilesTest() throws Exception { List fileList = checkedFileListProperty.stream() .map(item -> item.getValue().getPath()) .filter(path -> path.toFile().isFile()) - .map(path -> directory.relativize(path)) + .map(directory::relativize) .collect(Collectors.toList()); assertEquals( List.of(directory.relativize(file1), directory.relativize(file2)), diff --git a/src/test/java/org/jabref/gui/externalfiletype/ExternalFileTypesTest.java b/jabgui/src/test/java/org/jabref/gui/externalfiletype/ExternalFileTypesTest.java similarity index 100% rename from src/test/java/org/jabref/gui/externalfiletype/ExternalFileTypesTest.java rename to jabgui/src/test/java/org/jabref/gui/externalfiletype/ExternalFileTypesTest.java diff --git a/src/test/java/org/jabref/gui/fieldeditors/LinkedFileViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/fieldeditors/LinkedFileViewModelTest.java similarity index 99% rename from src/test/java/org/jabref/gui/fieldeditors/LinkedFileViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/fieldeditors/LinkedFileViewModelTest.java index 765042e5dc5..5d512a7b2fa 100644 --- a/src/test/java/org/jabref/gui/fieldeditors/LinkedFileViewModelTest.java +++ b/jabgui/src/test/java/org/jabref/gui/fieldeditors/LinkedFileViewModelTest.java @@ -31,7 +31,6 @@ import org.jabref.model.database.BibDatabaseContext; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.LinkedFile; -import org.jabref.testutils.category.GUITest; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; @@ -58,7 +57,6 @@ // Need to run on JavaFX thread since {@link org.jabref.gui.linkedfile.DeleteFileAction.execute} creates a DialogPane @ExtendWith(ApplicationExtension.class) -@GUITest class LinkedFileViewModelTest { private Path tempFile; @@ -73,7 +71,7 @@ class LinkedFileViewModelTest { private CookieManager cookieManager; @BeforeEach - void setUp(@TempDir Path tempFolder) throws Exception { + void setUp(@TempDir Path tempFolder) throws IOException { entry = new BibEntry() .withCitationKey("asdf"); diff --git a/src/test/java/org/jabref/gui/fieldeditors/LinkedFilesEditorViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/fieldeditors/LinkedFilesEditorViewModelTest.java similarity index 96% rename from src/test/java/org/jabref/gui/fieldeditors/LinkedFilesEditorViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/fieldeditors/LinkedFilesEditorViewModelTest.java index 8d72caa9a58..166f36887b5 100644 --- a/src/test/java/org/jabref/gui/fieldeditors/LinkedFilesEditorViewModelTest.java +++ b/jabgui/src/test/java/org/jabref/gui/fieldeditors/LinkedFilesEditorViewModelTest.java @@ -15,7 +15,6 @@ import org.jabref.model.database.BibDatabaseContext; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; -import org.jabref.testutils.category.FetcherTest; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; @@ -26,7 +25,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -@FetcherTest("Downloads a PDF file") +// @FetcherTest("Downloads a PDF file") class LinkedFilesEditorViewModelTest { private LinkedFilesEditorViewModel viewModel; private final GuiPreferences preferences = mock(GuiPreferences.class, Answers.RETURNS_DEEP_STUBS); diff --git a/src/test/java/org/jabref/gui/fieldeditors/contextmenu/ContextMenuFactoryTest.java b/jabgui/src/test/java/org/jabref/gui/fieldeditors/contextmenu/ContextMenuFactoryTest.java similarity index 100% rename from src/test/java/org/jabref/gui/fieldeditors/contextmenu/ContextMenuFactoryTest.java rename to jabgui/src/test/java/org/jabref/gui/fieldeditors/contextmenu/ContextMenuFactoryTest.java diff --git a/src/test/java/org/jabref/gui/fieldeditors/optioneditors/LanguageEditorViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/fieldeditors/optioneditors/LanguageEditorViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/fieldeditors/optioneditors/LanguageEditorViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/fieldeditors/optioneditors/LanguageEditorViewModelTest.java diff --git a/src/test/java/org/jabref/gui/groups/GroupColorPickerTest.java b/jabgui/src/test/java/org/jabref/gui/groups/GroupColorPickerTest.java similarity index 100% rename from src/test/java/org/jabref/gui/groups/GroupColorPickerTest.java rename to jabgui/src/test/java/org/jabref/gui/groups/GroupColorPickerTest.java diff --git a/src/test/java/org/jabref/gui/groups/GroupDialogViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/groups/GroupDialogViewModelTest.java similarity index 95% rename from src/test/java/org/jabref/gui/groups/GroupDialogViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/groups/GroupDialogViewModelTest.java index a1d1126d161..2b184888126 100644 --- a/src/test/java/org/jabref/gui/groups/GroupDialogViewModelTest.java +++ b/jabgui/src/test/java/org/jabref/gui/groups/GroupDialogViewModelTest.java @@ -1,5 +1,6 @@ package org.jabref.gui.groups; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.Optional; @@ -57,7 +58,7 @@ void setUp(@TempDir Path temporaryFolder) { } @Test - void validateExistingAbsolutePath() throws Exception { + void validateExistingAbsolutePath() throws IOException { var anAuxFile = temporaryFolder.resolve("auxfile.aux").toAbsolutePath(); Files.createFile(anAuxFile); @@ -75,7 +76,7 @@ void validateNonExistingAbsolutePath() { } @Test - void validateExistingRelativePath() throws Exception { + void validateExistingRelativePath() throws IOException { var anAuxFile = Path.of("auxfile.aux"); // The file needs to exist @@ -87,7 +88,7 @@ void validateExistingRelativePath() throws Exception { } @Test - void hierarchicalContextFromGroup() throws Exception { + void hierarchicalContextFromGroup() { GroupHierarchyType groupHierarchyType = GroupHierarchyType.INCLUDING; when(group.getHierarchicalContext()).thenReturn(groupHierarchyType); viewModel = new GroupDialogViewModel(dialogService, bibDatabaseContext, preferences, group, null, new DummyFileUpdateMonitor(), stateManager); @@ -96,7 +97,7 @@ void hierarchicalContextFromGroup() throws Exception { } @Test - void defaultHierarchicalContext() throws Exception { + void defaultHierarchicalContext() { GroupHierarchyType defaultHierarchicalContext = GroupHierarchyType.REFINING; when(preferences.getGroupsPreferences().getDefaultHierarchicalContext()).thenReturn(defaultHierarchicalContext); viewModel = new GroupDialogViewModel(dialogService, bibDatabaseContext, preferences, null, null, new DummyFileUpdateMonitor(), stateManager); diff --git a/src/test/java/org/jabref/gui/groups/GroupNodeViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/groups/GroupNodeViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/groups/GroupNodeViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/groups/GroupNodeViewModelTest.java diff --git a/src/test/java/org/jabref/gui/groups/GroupTreeViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/groups/GroupTreeViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/groups/GroupTreeViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/groups/GroupTreeViewModelTest.java diff --git a/src/test/java/org/jabref/gui/importer/NewEntryActionTest.java b/jabgui/src/test/java/org/jabref/gui/importer/NewEntryActionTest.java similarity index 100% rename from src/test/java/org/jabref/gui/importer/NewEntryActionTest.java rename to jabgui/src/test/java/org/jabref/gui/importer/NewEntryActionTest.java diff --git a/src/test/java/org/jabref/gui/importer/actions/OpenDatabaseActionTest.java b/jabgui/src/test/java/org/jabref/gui/importer/actions/OpenDatabaseActionTest.java similarity index 100% rename from src/test/java/org/jabref/gui/importer/actions/OpenDatabaseActionTest.java rename to jabgui/src/test/java/org/jabref/gui/importer/actions/OpenDatabaseActionTest.java diff --git a/src/test/java/org/jabref/gui/importer/fetcher/WebSearchPaneViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/importer/fetcher/WebSearchPaneViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/importer/fetcher/WebSearchPaneViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/importer/fetcher/WebSearchPaneViewModelTest.java diff --git a/src/test/java/org/jabref/gui/keyboard/KeyBindingRepositoryTest.java b/jabgui/src/test/java/org/jabref/gui/keyboard/KeyBindingRepositoryTest.java similarity index 100% rename from src/test/java/org/jabref/gui/keyboard/KeyBindingRepositoryTest.java rename to jabgui/src/test/java/org/jabref/gui/keyboard/KeyBindingRepositoryTest.java diff --git a/src/test/java/org/jabref/gui/keyboard/KeyBindingsTabModelTest.java b/jabgui/src/test/java/org/jabref/gui/keyboard/KeyBindingsTabModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/keyboard/KeyBindingsTabModelTest.java rename to jabgui/src/test/java/org/jabref/gui/keyboard/KeyBindingsTabModelTest.java diff --git a/src/test/java/org/jabref/gui/libraryproperties/constants/ConstantsPropertiesViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/libraryproperties/constants/ConstantsPropertiesViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/libraryproperties/constants/ConstantsPropertiesViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/libraryproperties/constants/ConstantsPropertiesViewModelTest.java diff --git a/src/test/java/org/jabref/gui/libraryproperties/contentselectors/ContentSelectorViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/libraryproperties/contentselectors/ContentSelectorViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/libraryproperties/contentselectors/ContentSelectorViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/libraryproperties/contentselectors/ContentSelectorViewModelTest.java diff --git a/src/test/java/org/jabref/gui/linkedfile/DownloadLinkedFileActionTest.java b/jabgui/src/test/java/org/jabref/gui/linkedfile/DownloadLinkedFileActionTest.java similarity index 95% rename from src/test/java/org/jabref/gui/linkedfile/DownloadLinkedFileActionTest.java rename to jabgui/src/test/java/org/jabref/gui/linkedfile/DownloadLinkedFileActionTest.java index 17e4aa28af1..109ce6d2875 100644 --- a/src/test/java/org/jabref/gui/linkedfile/DownloadLinkedFileActionTest.java +++ b/jabgui/src/test/java/org/jabref/gui/linkedfile/DownloadLinkedFileActionTest.java @@ -1,8 +1,10 @@ package org.jabref.gui.linkedfile; +import java.io.IOException; import java.net.CookieHandler; import java.net.CookieManager; import java.net.CookiePolicy; +import java.net.MalformedURLException; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; @@ -58,7 +60,7 @@ class DownloadLinkedFileActionTest { private WireMockServer wireMockServer; @BeforeEach - void setUp(@TempDir Path tempFolder) throws Exception { + void setUp(@TempDir Path tempFolder) throws IOException { entry = new BibEntry() .withCitationKey("asdf"); @@ -90,7 +92,7 @@ void tearDown() { } @Test - void replacesLinkedFiles(@TempDir Path tempFolder) throws Exception { + void replacesLinkedFiles(@TempDir Path tempFolder) throws MalformedURLException { String url = "http://arxiv.org/pdf/1207.0408v1"; LinkedFile linkedFile = new LinkedFile(URLUtil.create(url), ""); @@ -115,7 +117,7 @@ void replacesLinkedFiles(@TempDir Path tempFolder) throws Exception { @ParameterizedTest @ValueSource(booleans = {true, false}) - void doesntReplaceSourceURL(boolean keepHtml) throws Exception { + void doesntReplaceSourceURL(boolean keepHtml) throws IOException { String url = "http://arxiv.org/pdf/1207.0408v1"; LinkedFile linkedFile = new LinkedFile(URLUtil.create(url), ""); @@ -161,7 +163,7 @@ void doesntReplaceSourceURL(boolean keepHtml) throws Exception { } @Test - void keepsHtmlFileLink(@TempDir Path tempFolder) throws Exception { + void keepsHtmlFileLink(@TempDir Path tempFolder) throws MalformedURLException { stubFor(get(urlEqualTo("/html")) .willReturn(aResponse() .withStatus(200) @@ -197,7 +199,7 @@ void keepsHtmlFileLink(@TempDir Path tempFolder) throws Exception { } @Test - void removesHtmlFileLink(@TempDir Path tempFolder) throws Exception { + void removesHtmlFileLink(@TempDir Path tempFolder) throws MalformedURLException { stubFor(get(urlEqualTo("/html")) .willReturn(aResponse() .withStatus(200) diff --git a/src/test/java/org/jabref/gui/linkedfile/LinkedFileEditDialogViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/linkedfile/LinkedFileEditDialogViewModelTest.java similarity index 97% rename from src/test/java/org/jabref/gui/linkedfile/LinkedFileEditDialogViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/linkedfile/LinkedFileEditDialogViewModelTest.java index d19c5d9cbb0..9d28599bad3 100644 --- a/src/test/java/org/jabref/gui/linkedfile/LinkedFileEditDialogViewModelTest.java +++ b/jabgui/src/test/java/org/jabref/gui/linkedfile/LinkedFileEditDialogViewModelTest.java @@ -1,5 +1,6 @@ package org.jabref.gui.linkedfile; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.TreeSet; @@ -39,7 +40,7 @@ void setup() { } @Test - void badFilenameCharWillBeReplacedByUnderscore(@TempDir Path tempDir) throws Exception { + void badFilenameCharWillBeReplacedByUnderscore(@TempDir Path tempDir) throws IOException { Path invalidFile = tempDir.resolve("?invalid.pdf"); Files.createFile(invalidFile); diff --git a/src/test/java/org/jabref/gui/maintable/MainTableColumnModelTest.java b/jabgui/src/test/java/org/jabref/gui/maintable/MainTableColumnModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/maintable/MainTableColumnModelTest.java rename to jabgui/src/test/java/org/jabref/gui/maintable/MainTableColumnModelTest.java diff --git a/src/test/java/org/jabref/gui/maintable/MainTableDataModelTest.java b/jabgui/src/test/java/org/jabref/gui/maintable/MainTableDataModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/maintable/MainTableDataModelTest.java rename to jabgui/src/test/java/org/jabref/gui/maintable/MainTableDataModelTest.java diff --git a/src/test/java/org/jabref/gui/menus/FileHistoryMenuTest.java b/jabgui/src/test/java/org/jabref/gui/menus/FileHistoryMenuTest.java similarity index 100% rename from src/test/java/org/jabref/gui/menus/FileHistoryMenuTest.java rename to jabgui/src/test/java/org/jabref/gui/menus/FileHistoryMenuTest.java diff --git a/src/test/java/org/jabref/gui/mergeentries/DiffHighlightingTest.java b/jabgui/src/test/java/org/jabref/gui/mergeentries/DiffHighlightingTest.java similarity index 98% rename from src/test/java/org/jabref/gui/mergeentries/DiffHighlightingTest.java rename to jabgui/src/test/java/org/jabref/gui/mergeentries/DiffHighlightingTest.java index 8284c4c289d..3e59b3222fd 100644 --- a/src/test/java/org/jabref/gui/mergeentries/DiffHighlightingTest.java +++ b/jabgui/src/test/java/org/jabref/gui/mergeentries/DiffHighlightingTest.java @@ -6,8 +6,6 @@ import javafx.scene.text.Text; -import org.jabref.testutils.category.GUITest; - import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -15,7 +13,6 @@ import static org.junit.jupiter.api.Assertions.assertThrows; -@GUITest @ExtendWith(ApplicationExtension.class) class DiffHighlightingTest { diff --git a/src/test/java/org/jabref/gui/mergeentries/FieldRowViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/mergeentries/FieldRowViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/mergeentries/FieldRowViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/mergeentries/FieldRowViewModelTest.java diff --git a/src/test/java/org/jabref/gui/mergeentries/GroupMergerTest.java b/jabgui/src/test/java/org/jabref/gui/mergeentries/GroupMergerTest.java similarity index 100% rename from src/test/java/org/jabref/gui/mergeentries/GroupMergerTest.java rename to jabgui/src/test/java/org/jabref/gui/mergeentries/GroupMergerTest.java diff --git a/src/test/java/org/jabref/gui/mergeentries/ThreeWayMergeCellViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/mergeentries/ThreeWayMergeCellViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/mergeentries/ThreeWayMergeCellViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/mergeentries/ThreeWayMergeCellViewModelTest.java diff --git a/src/test/java/org/jabref/gui/mergeentries/ThreeWayMergeViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/mergeentries/ThreeWayMergeViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/mergeentries/ThreeWayMergeViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/mergeentries/ThreeWayMergeViewModelTest.java diff --git a/src/test/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/FileMergerTest.java b/jabgui/src/test/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/FileMergerTest.java similarity index 100% rename from src/test/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/FileMergerTest.java rename to jabgui/src/test/java/org/jabref/gui/mergeentries/newmergedialog/fieldsmerger/FileMergerTest.java diff --git a/src/test/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTabViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTabViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTabViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTabViewModelTest.java diff --git a/src/test/java/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypesTabViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypesTabViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypesTabViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/preferences/externalfiletypes/ExternalFileTypesTabViewModelTest.java diff --git a/src/test/java/org/jabref/gui/preferences/journals/AbbreviationViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/preferences/journals/AbbreviationViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/preferences/journals/AbbreviationViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/preferences/journals/AbbreviationViewModelTest.java diff --git a/src/test/java/org/jabref/gui/preferences/journals/JournalAbbreviationsViewModelTabTest.java b/jabgui/src/test/java/org/jabref/gui/preferences/journals/JournalAbbreviationsViewModelTabTest.java similarity index 99% rename from src/test/java/org/jabref/gui/preferences/journals/JournalAbbreviationsViewModelTabTest.java rename to jabgui/src/test/java/org/jabref/gui/preferences/journals/JournalAbbreviationsViewModelTabTest.java index 52702a86957..6c89ff98e0e 100644 --- a/src/test/java/org/jabref/gui/preferences/journals/JournalAbbreviationsViewModelTabTest.java +++ b/jabgui/src/test/java/org/jabref/gui/preferences/journals/JournalAbbreviationsViewModelTabTest.java @@ -175,7 +175,7 @@ public static Stream provideTestFiles() { } @BeforeEach - void setUpViewModel(@TempDir Path tempFolder) throws Exception { + void setUpViewModel(@TempDir Path tempFolder) throws IOException { JournalAbbreviationPreferences abbreviationPreferences = mock(JournalAbbreviationPreferences.class); dialogService = mock(DialogService.class); @@ -476,7 +476,7 @@ void editAbbreviationToEmptyAbbreviationResultsInException(TestData testData) th @ParameterizedTest @MethodSource("provideTestFiles") - void saveAbbreviationsToFilesCreatesNewFilesWithWrittenAbbreviations(TestData testData) throws Exception { + void saveAbbreviationsToFilesCreatesNewFilesWithWrittenAbbreviations(TestData testData) throws IOException { Path testFile2 = createTestFile(testData.csvFiles.get(2)); when(dialogService.showFileSaveDialog(any())).thenReturn(Optional.of(testFile2)); viewModel.addNewFile(); diff --git a/src/test/java/org/jabref/gui/preferences/keybindings/KeyBindingViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/preferences/keybindings/KeyBindingViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/preferences/keybindings/KeyBindingViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/preferences/keybindings/KeyBindingViewModelTest.java diff --git a/src/test/java/org/jabref/gui/preview/ClipboardContentGeneratorTest.java b/jabgui/src/test/java/org/jabref/gui/preview/ClipboardContentGeneratorTest.java similarity index 97% rename from src/test/java/org/jabref/gui/preview/ClipboardContentGeneratorTest.java rename to jabgui/src/test/java/org/jabref/gui/preview/ClipboardContentGeneratorTest.java index fefbe501147..307ea7a930e 100644 --- a/src/test/java/org/jabref/gui/preview/ClipboardContentGeneratorTest.java +++ b/jabgui/src/test/java/org/jabref/gui/preview/ClipboardContentGeneratorTest.java @@ -14,7 +14,7 @@ class ClipboardContentGeneratorTest { @Test - void processPreviewText() throws Exception { + void processPreviewText() { String expected = "Article (Smith2016)" + OS.NEWLINE + "Smith, B.; Jones, B. & Williams, J." + OS.NEWLINE + "Taylor, P. (Ed.)" + OS.NEWLINE + @@ -46,7 +46,7 @@ void processPreviewText() throws Exception { } @Test - void processPreviewHtml() throws Exception { + void processPreviewHtml() { String expected = "Article (Smith2016)
" + OS.NEWLINE + " Smith, B.; Jones, B. & Williams, J.
" + OS.NEWLINE + " Taylor, P. (Ed.)
" + OS.NEWLINE + @@ -98,7 +98,7 @@ void processPreviewHtml() throws Exception { } @Test - void processText() throws Exception { + void processText() { String expected = "[1]B. Smith, B. Jones, and J. Williams, “Title of the test entry,” BibTeX Journal, vol. 34, no. 3, pp. 45–67, Jul. 2016." + OS.NEWLINE + "[1]B. Smith, B. Jones, and J. Williams, “Title of the test entry,” BibTeX Journal, vol. 34, no. 3, pp. 45–67, Jul. 2016." + OS.NEWLINE; @@ -110,7 +110,7 @@ void processText() throws Exception { } @Test - void processHtmlAsHtml() throws Exception { + void processHtmlAsHtml() { String expected = "" + OS.NEWLINE + "" + OS.NEWLINE + " " + OS.NEWLINE + diff --git a/src/test/java/org/jabref/gui/push/PushToEmacsTest.java b/jabgui/src/test/java/org/jabref/gui/push/PushToEmacsTest.java similarity index 100% rename from src/test/java/org/jabref/gui/push/PushToEmacsTest.java rename to jabgui/src/test/java/org/jabref/gui/push/PushToEmacsTest.java diff --git a/src/test/java/org/jabref/gui/push/PushToTeXworksTest.java b/jabgui/src/test/java/org/jabref/gui/push/PushToTeXworksTest.java similarity index 100% rename from src/test/java/org/jabref/gui/push/PushToTeXworksTest.java rename to jabgui/src/test/java/org/jabref/gui/push/PushToTeXworksTest.java diff --git a/src/test/java/org/jabref/gui/push/PushToWinEdtTest.java b/jabgui/src/test/java/org/jabref/gui/push/PushToWinEdtTest.java similarity index 100% rename from src/test/java/org/jabref/gui/push/PushToWinEdtTest.java rename to jabgui/src/test/java/org/jabref/gui/push/PushToWinEdtTest.java diff --git a/src/test/java/org/jabref/gui/search/GetLastSearchHistoryTest.java b/jabgui/src/test/java/org/jabref/gui/search/GetLastSearchHistoryTest.java similarity index 97% rename from src/test/java/org/jabref/gui/search/GetLastSearchHistoryTest.java rename to jabgui/src/test/java/org/jabref/gui/search/GetLastSearchHistoryTest.java index 4dd28d92f39..74bbc0a0e03 100644 --- a/src/test/java/org/jabref/gui/search/GetLastSearchHistoryTest.java +++ b/jabgui/src/test/java/org/jabref/gui/search/GetLastSearchHistoryTest.java @@ -5,7 +5,6 @@ import javafx.stage.Stage; import org.jabref.gui.StateManager; -import org.jabref.testutils.category.GUITest; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -14,7 +13,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -@GUITest @ExtendWith(ApplicationExtension.class) class GetLastSearchHistoryTest { @Start diff --git a/src/test/java/org/jabref/gui/search/GlobalSearchBarTest.java b/jabgui/src/test/java/org/jabref/gui/search/GlobalSearchBarTest.java similarity index 98% rename from src/test/java/org/jabref/gui/search/GlobalSearchBarTest.java rename to jabgui/src/test/java/org/jabref/gui/search/GlobalSearchBarTest.java index fb9f582e591..aea7d34f19a 100644 --- a/src/test/java/org/jabref/gui/search/GlobalSearchBarTest.java +++ b/jabgui/src/test/java/org/jabref/gui/search/GlobalSearchBarTest.java @@ -19,7 +19,6 @@ import org.jabref.logic.search.SearchPreferences; import org.jabref.model.database.BibDatabaseContext; import org.jabref.model.search.SearchFlags; -import org.jabref.testutils.category.GUITest; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -34,7 +33,6 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -@GUITest @ExtendWith(ApplicationExtension.class) public class GlobalSearchBarTest { private HBox hBox; diff --git a/src/test/java/org/jabref/gui/search/TextFlowEqualityHelper.java b/jabgui/src/test/java/org/jabref/gui/search/TextFlowEqualityHelper.java similarity index 100% rename from src/test/java/org/jabref/gui/search/TextFlowEqualityHelper.java rename to jabgui/src/test/java/org/jabref/gui/search/TextFlowEqualityHelper.java diff --git a/src/test/java/org/jabref/gui/sidepane/SidePaneViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/sidepane/SidePaneViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/sidepane/SidePaneViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/sidepane/SidePaneViewModelTest.java diff --git a/src/test/java/org/jabref/gui/slr/ManageStudyDefinitionViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/slr/ManageStudyDefinitionViewModelTest.java similarity index 100% rename from src/test/java/org/jabref/gui/slr/ManageStudyDefinitionViewModelTest.java rename to jabgui/src/test/java/org/jabref/gui/slr/ManageStudyDefinitionViewModelTest.java diff --git a/src/test/java/org/jabref/gui/theme/ThemeManagerTest.java b/jabgui/src/test/java/org/jabref/gui/theme/ThemeManagerTest.java similarity index 99% rename from src/test/java/org/jabref/gui/theme/ThemeManagerTest.java rename to jabgui/src/test/java/org/jabref/gui/theme/ThemeManagerTest.java index 1395ac401cd..c25e0eb3395 100644 --- a/src/test/java/org/jabref/gui/theme/ThemeManagerTest.java +++ b/jabgui/src/test/java/org/jabref/gui/theme/ThemeManagerTest.java @@ -16,7 +16,6 @@ import org.jabref.gui.WorkspacePreferences; import org.jabref.gui.util.DefaultFileUpdateMonitor; import org.jabref.model.util.DummyFileUpdateMonitor; -import org.jabref.support.DisabledOnCIServer; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; @@ -158,7 +157,8 @@ void largeCustomThemeNotHeldInMemory() throws IOException { } @Test - @DisabledOnCIServer("Randomly fails on CI server") + // @DisabledOnCIServer("Randomly fails on CI server") + @Disabled("Randomly fails on CI server") void installThemeOnScene() throws IOException { Scene scene = mock(Scene.class); when(scene.getStylesheets()).thenReturn(FXCollections.observableArrayList()); diff --git a/src/test/java/org/jabref/gui/theme/ThemeTest.java b/jabgui/src/test/java/org/jabref/gui/theme/ThemeTest.java similarity index 100% rename from src/test/java/org/jabref/gui/theme/ThemeTest.java rename to jabgui/src/test/java/org/jabref/gui/theme/ThemeTest.java diff --git a/src/test/java/org/jabref/gui/util/ColorUtilTest.java b/jabgui/src/test/java/org/jabref/gui/util/ColorUtilTest.java similarity index 100% rename from src/test/java/org/jabref/gui/util/ColorUtilTest.java rename to jabgui/src/test/java/org/jabref/gui/util/ColorUtilTest.java diff --git a/src/test/java/org/jabref/gui/util/ControlHelperTest.java b/jabgui/src/test/java/org/jabref/gui/util/ControlHelperTest.java similarity index 100% rename from src/test/java/org/jabref/gui/util/ControlHelperTest.java rename to jabgui/src/test/java/org/jabref/gui/util/ControlHelperTest.java diff --git a/src/test/java/org/jabref/gui/util/FileDialogConfigurationTest.java b/jabgui/src/test/java/org/jabref/gui/util/FileDialogConfigurationTest.java similarity index 100% rename from src/test/java/org/jabref/gui/util/FileDialogConfigurationTest.java rename to jabgui/src/test/java/org/jabref/gui/util/FileDialogConfigurationTest.java diff --git a/src/test/java/org/jabref/logic/util/IconValidationDecoratorTest.java b/jabgui/src/test/java/org/jabref/gui/util/IconValidationDecoratorTest.java similarity index 95% rename from src/test/java/org/jabref/logic/util/IconValidationDecoratorTest.java rename to jabgui/src/test/java/org/jabref/gui/util/IconValidationDecoratorTest.java index 7f5e9c81276..620171c5488 100644 --- a/src/test/java/org/jabref/logic/util/IconValidationDecoratorTest.java +++ b/jabgui/src/test/java/org/jabref/gui/util/IconValidationDecoratorTest.java @@ -1,10 +1,9 @@ -package org.jabref.logic.util; +package org.jabref.gui.util; import javafx.scene.control.Control; import javafx.scene.control.Label; import org.jabref.gui.icon.IconTheme; -import org.jabref.gui.util.IconValidationDecorator; import org.controlsfx.validation.Severity; import org.controlsfx.validation.ValidationMessage; diff --git a/src/test/java/org/jabref/gui/util/OpenConsoleActionTest.java b/jabgui/src/test/java/org/jabref/gui/util/OpenConsoleActionTest.java similarity index 100% rename from src/test/java/org/jabref/gui/util/OpenConsoleActionTest.java rename to jabgui/src/test/java/org/jabref/gui/util/OpenConsoleActionTest.java diff --git a/src/test/java/org/jabref/gui/util/RecursiveTreeItemTest.java b/jabgui/src/test/java/org/jabref/gui/util/RecursiveTreeItemTest.java similarity index 79% rename from src/test/java/org/jabref/gui/util/RecursiveTreeItemTest.java rename to jabgui/src/test/java/org/jabref/gui/util/RecursiveTreeItemTest.java index 5cc4e46daac..cceff8d5e45 100644 --- a/src/test/java/org/jabref/gui/util/RecursiveTreeItemTest.java +++ b/jabgui/src/test/java/org/jabref/gui/util/RecursiveTreeItemTest.java @@ -1,6 +1,6 @@ package org.jabref.gui.util; -import java.util.Collections; +import java.util.List; import java.util.function.Predicate; import java.util.stream.Collectors; @@ -24,7 +24,7 @@ class RecursiveTreeItemTest { private TreeNodeTestData.TreeNodeMock node; @BeforeEach - void setUp() throws Exception { + void setUp() { root = new TreeNodeTestData.TreeNodeMock(); node = TreeNodeTestData.getNodeInSimpleTree(root); node.setName("test node"); @@ -35,24 +35,24 @@ void setUp() throws Exception { } @Test - void addsAllChildrenNodes() throws Exception { + void addsAllChildrenNodes() { assertEquals(root.getChildren(), rootTreeItem.getChildren().stream().map(TreeItem::getValue).collect(Collectors.toList())); } @Test - void addsAllChildrenOfChildNode() throws Exception { + void addsAllChildrenOfChildNode() { assertEquals( root.getChildAt(1).get().getChildren(), rootTreeItem.getChildren().get(1).getChildren().stream().map(TreeItem::getValue).collect(Collectors.toList())); } @Test - void respectsFilter() throws Exception { + void respectsFilter() { filterPredicate.setValue(item -> item.getName().contains("test")); - assertEquals(Collections.singletonList(node.getParent().get()), rootTreeItem.getChildren().stream().map(TreeItem::getValue).collect(Collectors.toList())); + assertEquals(List.of(node.getParent().get()), rootTreeItem.getChildren().stream().map(TreeItem::getValue).collect(Collectors.toList())); assertEquals( - Collections.singletonList(node), + List.of(node), rootTreeItem.getChildren().getFirst().getChildren().stream().map(TreeItem::getValue).collect(Collectors.toList())); } } diff --git a/src/test/java/org/jabref/gui/util/TooltipTextUtilTest.java b/jabgui/src/test/java/org/jabref/gui/util/TooltipTextUtilTest.java similarity index 100% rename from src/test/java/org/jabref/gui/util/TooltipTextUtilTest.java rename to jabgui/src/test/java/org/jabref/gui/util/TooltipTextUtilTest.java diff --git a/src/test/java/org/jabref/gui/util/comparator/NumericFieldComparatorTest.java b/jabgui/src/test/java/org/jabref/gui/util/comparator/NumericFieldComparatorTest.java similarity index 100% rename from src/test/java/org/jabref/gui/util/comparator/NumericFieldComparatorTest.java rename to jabgui/src/test/java/org/jabref/gui/util/comparator/NumericFieldComparatorTest.java diff --git a/src/test/java/org/jabref/gui/util/comparator/RankingFieldComparatorTest.java b/jabgui/src/test/java/org/jabref/gui/util/comparator/RankingFieldComparatorTest.java similarity index 100% rename from src/test/java/org/jabref/gui/util/comparator/RankingFieldComparatorTest.java rename to jabgui/src/test/java/org/jabref/gui/util/comparator/RankingFieldComparatorTest.java diff --git a/src/test/java/org/jabref/gui/util/comparator/SpecialFieldComparatorTest.java b/jabgui/src/test/java/org/jabref/gui/util/comparator/SpecialFieldComparatorTest.java similarity index 100% rename from src/test/java/org/jabref/gui/util/comparator/SpecialFieldComparatorTest.java rename to jabgui/src/test/java/org/jabref/gui/util/comparator/SpecialFieldComparatorTest.java diff --git a/src/test/java/org/jabref/logic/journals/JournalAbbreviationRepositoryTest.java b/jabgui/src/test/java/org/jabref/logic/journals_gui/JournalAbbreviationRepositoryTest.java similarity index 98% rename from src/test/java/org/jabref/logic/journals/JournalAbbreviationRepositoryTest.java rename to jabgui/src/test/java/org/jabref/logic/journals_gui/JournalAbbreviationRepositoryTest.java index 5407b885d1f..5243f85effd 100644 --- a/src/test/java/org/jabref/logic/journals/JournalAbbreviationRepositoryTest.java +++ b/jabgui/src/test/java/org/jabref/logic/journals_gui/JournalAbbreviationRepositoryTest.java @@ -1,4 +1,4 @@ -package org.jabref.logic.journals; +package org.jabref.logic.journals_gui; import java.util.List; import java.util.Set; @@ -10,6 +10,9 @@ import org.jabref.gui.journals.AbbreviationType; import org.jabref.gui.journals.UndoableAbbreviator; import org.jabref.gui.journals.UndoableUnabbreviator; +import org.jabref.logic.journals.Abbreviation; +import org.jabref.logic.journals.JournalAbbreviationLoader; +import org.jabref.logic.journals.JournalAbbreviationRepository; import org.jabref.model.database.BibDatabase; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.AMSField; diff --git a/src/test/java/org/jabref/migrations/ConvertLegacyExplicitGroupsTest.java b/jabgui/src/test/java/org/jabref/migrations/ConvertLegacyExplicitGroupsTest.java similarity index 83% rename from src/test/java/org/jabref/migrations/ConvertLegacyExplicitGroupsTest.java rename to jabgui/src/test/java/org/jabref/migrations/ConvertLegacyExplicitGroupsTest.java index 5a6b17e3bee..f1c1f55ee76 100644 --- a/src/test/java/org/jabref/migrations/ConvertLegacyExplicitGroupsTest.java +++ b/jabgui/src/test/java/org/jabref/migrations/ConvertLegacyExplicitGroupsTest.java @@ -1,6 +1,6 @@ package org.jabref.migrations; -import java.util.Collections; +import java.util.List; import java.util.Optional; import org.jabref.logic.importer.ParserResult; @@ -23,7 +23,7 @@ class ConvertLegacyExplicitGroupsTest { private ExplicitGroup group; @BeforeEach - void setUp() throws Exception { + void setUp() { action = new ConvertLegacyExplicitGroups(); entry = new BibEntry(); @@ -33,7 +33,7 @@ void setUp() throws Exception { } @Test - void performActionWritesGroupMembershipInEntry() throws Exception { + void performActionWritesGroupMembershipInEntry() { ParserResult parserResult = generateParserResult(GroupTreeNode.fromGroup(group)); action.performMigration(parserResult); @@ -42,16 +42,16 @@ void performActionWritesGroupMembershipInEntry() throws Exception { } @Test - void performActionClearsLegacyKeys() throws Exception { + void performActionClearsLegacyKeys() { ParserResult parserResult = generateParserResult(GroupTreeNode.fromGroup(group)); action.performMigration(parserResult); - assertEquals(Collections.emptyList(), group.getLegacyEntryKeys()); + assertEquals(List.of(), group.getLegacyEntryKeys()); } @Test - void performActionWritesGroupMembershipInEntryForComplexGroupTree() throws Exception { + void performActionWritesGroupMembershipInEntryForComplexGroupTree() { GroupTreeNode root = GroupTreeNode.fromGroup(new AllEntriesGroup("")); root.addSubgroup(new ExplicitGroup("TestGroup2", GroupHierarchyType.INCLUDING, ',')); root.addSubgroup(group); @@ -63,7 +63,7 @@ void performActionWritesGroupMembershipInEntryForComplexGroupTree() throws Excep } private ParserResult generateParserResult(GroupTreeNode groupRoot) { - ParserResult parserResult = new ParserResult(Collections.singletonList(entry)); + ParserResult parserResult = new ParserResult(List.of(entry)); parserResult.getMetaData().setGroups(groupRoot); return parserResult; } diff --git a/src/test/java/org/jabref/migrations/ConvertMarkingToGroupsTest.java b/jabgui/src/test/java/org/jabref/migrations/ConvertMarkingToGroupsTest.java similarity index 91% rename from src/test/java/org/jabref/migrations/ConvertMarkingToGroupsTest.java rename to jabgui/src/test/java/org/jabref/migrations/ConvertMarkingToGroupsTest.java index 4a0942b77de..2ea2f07a225 100644 --- a/src/test/java/org/jabref/migrations/ConvertMarkingToGroupsTest.java +++ b/jabgui/src/test/java/org/jabref/migrations/ConvertMarkingToGroupsTest.java @@ -1,7 +1,7 @@ package org.jabref.migrations; -import java.util.Collections; import java.util.Optional; +import java.util.Set; import org.jabref.logic.groups.DefaultGroupsFactory; import org.jabref.logic.importer.ParserResult; @@ -20,7 +20,7 @@ class ConvertMarkingToGroupsTest { void performMigrationForSingleEntry() { BibEntry entry = new BibEntry() .withField(InternalField.MARKED_INTERNAL, "[Nicolas:6]"); - ParserResult parserResult = new ParserResult(Collections.singleton(entry)); + ParserResult parserResult = new ParserResult(Set.of(entry)); new ConvertMarkingToGroups().performMigration(parserResult); diff --git a/src/test/java/org/jabref/migrations/GuiPreferencesMigrationsTest.java b/jabgui/src/test/java/org/jabref/migrations/GuiPreferencesMigrationsTest.java similarity index 96% rename from src/test/java/org/jabref/migrations/GuiPreferencesMigrationsTest.java rename to jabgui/src/test/java/org/jabref/migrations/GuiPreferencesMigrationsTest.java index b1655808c72..47631ac5792 100644 --- a/src/test/java/org/jabref/migrations/GuiPreferencesMigrationsTest.java +++ b/jabgui/src/test/java/org/jabref/migrations/GuiPreferencesMigrationsTest.java @@ -1,7 +1,6 @@ package org.jabref.migrations; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.prefs.Preferences; @@ -11,6 +10,7 @@ import com.airhacks.afterburner.injection.Injector; import com.github.javakeyring.Keyring; +import com.github.javakeyring.PasswordAccessException; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Answers; @@ -142,10 +142,10 @@ void changeColumnPreferencesVariableNamesFor51() { when(preferences.getStringList("mainTableColumnSortTypes")).thenReturn(columnNames); when(preferences.getStringList("mainTableColumnSortOrder")).thenReturn(columnWidths); - when(preferences.getStringList(JabRefGuiPreferences.COLUMN_NAMES)).thenReturn(Collections.emptyList()); - when(preferences.getStringList(JabRefGuiPreferences.COLUMN_WIDTHS)).thenReturn(Collections.emptyList()); - when(preferences.getStringList(JabRefGuiPreferences.COLUMN_SORT_TYPES)).thenReturn(Collections.emptyList()); - when(preferences.getStringList(JabRefGuiPreferences.COLUMN_SORT_ORDER)).thenReturn(Collections.emptyList()); + when(preferences.getStringList(JabRefGuiPreferences.COLUMN_NAMES)).thenReturn(List.of()); + when(preferences.getStringList(JabRefGuiPreferences.COLUMN_WIDTHS)).thenReturn(List.of()); + when(preferences.getStringList(JabRefGuiPreferences.COLUMN_SORT_TYPES)).thenReturn(List.of()); + when(preferences.getStringList(JabRefGuiPreferences.COLUMN_SORT_ORDER)).thenReturn(List.of()); PreferencesMigrations.changeColumnVariableNamesFor51(preferences); @@ -166,10 +166,10 @@ void changeColumnPreferencesVariableNamesBackwardsCompatibility() { when(preferences.getStringList("mainTableColumnSortTypes")).thenReturn(columnNames); when(preferences.getStringList("mainTableColumnSortOrder")).thenReturn(columnWidths); - when(preferences.getStringList(JabRefGuiPreferences.COLUMN_NAMES)).thenReturn(Collections.emptyList()); - when(preferences.getStringList(JabRefGuiPreferences.COLUMN_WIDTHS)).thenReturn(Collections.emptyList()); - when(preferences.getStringList(JabRefGuiPreferences.COLUMN_SORT_TYPES)).thenReturn(Collections.emptyList()); - when(preferences.getStringList(JabRefGuiPreferences.COLUMN_SORT_ORDER)).thenReturn(Collections.emptyList()); + when(preferences.getStringList(JabRefGuiPreferences.COLUMN_NAMES)).thenReturn(List.of()); + when(preferences.getStringList(JabRefGuiPreferences.COLUMN_WIDTHS)).thenReturn(List.of()); + when(preferences.getStringList(JabRefGuiPreferences.COLUMN_SORT_TYPES)).thenReturn(List.of()); + when(preferences.getStringList(JabRefGuiPreferences.COLUMN_SORT_ORDER)).thenReturn(List.of()); PreferencesMigrations.upgradeColumnPreferences(preferences); @@ -200,7 +200,7 @@ void restoreColumnVariablesForBackwardCompatibility() { } @Test - void moveApiKeysToKeyRing() throws Exception { + void moveApiKeysToKeyRing() throws PasswordAccessException { final String V5_9_FETCHER_CUSTOM_KEY_NAMES = "fetcherCustomKeyNames"; final String V5_9_FETCHER_CUSTOM_KEYS = "fetcherCustomKeys"; final Keyring keyring = mock(Keyring.class); diff --git a/src/test/java/org/jabref/migrations/MergeReviewIntoCommentActionMigrationTest.java b/jabgui/src/test/java/org/jabref/migrations/MergeReviewIntoCommentActionMigrationTest.java similarity index 85% rename from src/test/java/org/jabref/migrations/MergeReviewIntoCommentActionMigrationTest.java rename to jabgui/src/test/java/org/jabref/migrations/MergeReviewIntoCommentActionMigrationTest.java index 46c3b61a0ed..dac3cdccce5 100644 --- a/src/test/java/org/jabref/migrations/MergeReviewIntoCommentActionMigrationTest.java +++ b/jabgui/src/test/java/org/jabref/migrations/MergeReviewIntoCommentActionMigrationTest.java @@ -1,6 +1,6 @@ package org.jabref.migrations; -import java.util.Collections; +import java.util.List; import org.jabref.logic.importer.ParserResult; import org.jabref.logic.l10n.Localization; @@ -28,7 +28,7 @@ void setUp() { @Test void noFields() { - ParserResult actualParserResult = new ParserResult(Collections.singletonList(entry)); + ParserResult actualParserResult = new ParserResult(List.of(entry)); action.performMigration(actualParserResult); @@ -38,7 +38,7 @@ void noFields() { @Test void reviewField() { entry.setField(StandardField.REVIEW, "My Review"); - ParserResult actualParserResult = new ParserResult(Collections.singletonList(entry)); + ParserResult actualParserResult = new ParserResult(List.of(entry)); expectedEntry.setField(StandardField.COMMENT, "My Review"); @@ -50,7 +50,7 @@ void reviewField() { @Test void commentField() { entry.setField(StandardField.COMMENT, "My Comment"); - ParserResult actualParserResult = new ParserResult(Collections.singletonList(entry)); + ParserResult actualParserResult = new ParserResult(List.of(entry)); action.performMigration(actualParserResult); @@ -62,7 +62,7 @@ void multiLineReviewField() { String commentString = "My Review\n\nSecond Paragraph\n\nThird Paragraph"; entry.setField(StandardField.REVIEW, commentString); - ParserResult actualParserResult = new ParserResult(Collections.singletonList(entry)); + ParserResult actualParserResult = new ParserResult(List.of(entry)); expectedEntry.setField(StandardField.COMMENT, commentString); @@ -77,7 +77,7 @@ void reviewAndCommentField() { entry.setField(StandardField.REVIEW, "My Review"); entry.setField(StandardField.COMMENT, "My Comment"); - ParserResult actualParserResult = new ParserResult(Collections.singletonList(entry)); + ParserResult actualParserResult = new ParserResult(List.of(entry)); expectedEntry.setField(StandardField.COMMENT, "My Comment\n" + Localization.lang("Review") + ":\nMy Review"); diff --git a/src/test/java/org/jabref/migrations/SpecialFieldsToSeparateFieldsTest.java b/jabgui/src/test/java/org/jabref/migrations/SpecialFieldsToSeparateFieldsTest.java similarity index 100% rename from src/test/java/org/jabref/migrations/SpecialFieldsToSeparateFieldsTest.java rename to jabgui/src/test/java/org/jabref/migrations/SpecialFieldsToSeparateFieldsTest.java diff --git a/src/test/java/org/jabref/testutils/interactive/http/rest-api.http b/jabgui/src/test/java/org/jabref/testutils/interactive/http/rest-api.http similarity index 100% rename from src/test/java/org/jabref/testutils/interactive/http/rest-api.http rename to jabgui/src/test/java/org/jabref/testutils/interactive/http/rest-api.http diff --git a/src/test/java/org/jabref/testutils/interactive/styletester/StyleTester.fxml b/jabgui/src/test/java/org/jabref/testutils/interactive/styletester/StyleTester.fxml similarity index 100% rename from src/test/java/org/jabref/testutils/interactive/styletester/StyleTester.fxml rename to jabgui/src/test/java/org/jabref/testutils/interactive/styletester/StyleTester.fxml diff --git a/src/test/java/org/jabref/testutils/interactive/styletester/StyleTesterMain.java b/jabgui/src/test/java/org/jabref/testutils/interactive/styletester/StyleTesterMain.java similarity index 100% rename from src/test/java/org/jabref/testutils/interactive/styletester/StyleTesterMain.java rename to jabgui/src/test/java/org/jabref/testutils/interactive/styletester/StyleTesterMain.java diff --git a/src/test/java/org/jabref/testutils/interactive/styletester/StyleTesterView.java b/jabgui/src/test/java/org/jabref/testutils/interactive/styletester/StyleTesterView.java similarity index 100% rename from src/test/java/org/jabref/testutils/interactive/styletester/StyleTesterView.java rename to jabgui/src/test/java/org/jabref/testutils/interactive/styletester/StyleTesterView.java diff --git a/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker b/jabgui/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker similarity index 100% rename from src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker rename to jabgui/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker diff --git a/src/test/resources/org/jabref/gui/autosaveandbackup/changes.bib b/jabgui/src/test/resources/org/jabref/gui/autosaveandbackup/changes.bib similarity index 100% rename from src/test/resources/org/jabref/gui/autosaveandbackup/changes.bib rename to jabgui/src/test/resources/org/jabref/gui/autosaveandbackup/changes.bib diff --git a/src/test/resources/org/jabref/gui/autosaveandbackup/changes.bib.bak b/jabgui/src/test/resources/org/jabref/gui/autosaveandbackup/changes.bib.bak similarity index 100% rename from src/test/resources/org/jabref/gui/autosaveandbackup/changes.bib.bak rename to jabgui/src/test/resources/org/jabref/gui/autosaveandbackup/changes.bib.bak diff --git a/src/test/resources/org/jabref/gui/autosaveandbackup/no-autosave.bib b/jabgui/src/test/resources/org/jabref/gui/autosaveandbackup/no-autosave.bib similarity index 100% rename from src/test/resources/org/jabref/gui/autosaveandbackup/no-autosave.bib rename to jabgui/src/test/resources/org/jabref/gui/autosaveandbackup/no-autosave.bib diff --git a/src/test/resources/org/jabref/gui/autosaveandbackup/no-changes.bib b/jabgui/src/test/resources/org/jabref/gui/autosaveandbackup/no-changes.bib similarity index 100% rename from src/test/resources/org/jabref/gui/autosaveandbackup/no-changes.bib rename to jabgui/src/test/resources/org/jabref/gui/autosaveandbackup/no-changes.bib diff --git a/src/test/resources/org/jabref/gui/autosaveandbackup/no-changes.bib.bak b/jabgui/src/test/resources/org/jabref/gui/autosaveandbackup/no-changes.bib.bak similarity index 100% rename from src/test/resources/org/jabref/gui/autosaveandbackup/no-changes.bib.bak rename to jabgui/src/test/resources/org/jabref/gui/autosaveandbackup/no-changes.bib.bak diff --git a/jabkit/build.gradle.kts b/jabkit/build.gradle.kts new file mode 100644 index 00000000000..b570821efe7 --- /dev/null +++ b/jabkit/build.gradle.kts @@ -0,0 +1,69 @@ +plugins { + id("buildlogic.java-common-conventions") + + application + + // afterburner.fx + id("org.openjfx.javafxplugin") version("0.1.0") +} + +val luceneVersion = "10.2.0" + +dependencies { + implementation(project(":jablib")) + + // FIXME: Injector needs to be removed, no JavaFX dependencies, etc. + implementation("org.jabref:afterburner.fx:2.0.0") { + exclude( group = "org.openjfx") + } + + implementation("commons-cli:commons-cli:1.9.0") + + // Because of GraalVM quirks, we need to ship that. See https://github.com/jspecify/jspecify/issues/389#issuecomment-1661130973 for details + implementation("org.jspecify:jspecify:1.0.0") + + implementation("org.slf4j:slf4j-api:2.0.17") + // implementation("org.tinylog:tinylog-api:2.7.0") + implementation("org.tinylog:slf4j-tinylog:2.7.0") + implementation("org.tinylog:tinylog-impl:2.7.0") + // route all requests to java.util.logging to SLF4J (which in turn routes to tinylog) + implementation("org.slf4j:jul-to-slf4j:2.0.17") + // route all requests to log4j to SLF4J + implementation("org.apache.logging.log4j:log4j-to-slf4j:2.24.3") + + implementation("com.google.guava:guava:33.4.8-jre") + + implementation("org.slf4j:slf4j-api:2.0.17") + // route all requests to java.util.logging to SLF4J (which in turn routes to tinylog in the CLI and GUI) + implementation("org.slf4j:jul-to-slf4j:2.0.17") + // route all requests to log4j to SLF4J + implementation("org.apache.logging.log4j:log4j-to-slf4j:2.24.3") + + implementation("org.jabref:afterburner.fx:2.0.0") { + exclude( group = "org.openjfx") + } + + implementation("commons-cli:commons-cli:1.9.0") + + implementation("org.apache.lucene:lucene-queryparser:${luceneVersion}") + + testImplementation(project(":test-support")) + testImplementation("org.mockito:mockito-core:5.17.0") +} + +/* +jacoco { + toolVersion = "0.8.13" +} +*/ + +javafx { + version = "24" + // because of afterburner.fx + modules = listOf("javafx.base", "javafx.controls", "javafx.fxml") +} + +application { + mainClass.set("org.jabref.cli.JabKit") + mainModule.set("org.jabref.jabkit") +} diff --git a/jabkit/src/main/java/module-info.java b/jabkit/src/main/java/module-info.java new file mode 100644 index 00000000000..43063c9863c --- /dev/null +++ b/jabkit/src/main/java/module-info.java @@ -0,0 +1,22 @@ +module org.jabref.jabkit { + requires org.jabref.jablib; + + requires org.apache.commons.cli; + + requires transitive org.jspecify; + requires java.prefs; + + requires com.google.common; + + requires org.apache.lucene.queryparser; + + requires javafx.base; + requires afterburner.fx; + + requires org.slf4j; + requires jul.to.slf4j; + requires org.apache.logging.log4j.to.slf4j; + requires org.tinylog.api; + requires org.tinylog.api.slf4j; + requires org.tinylog.impl; +} diff --git a/jabkit/src/main/java/org/jabref/cli/ArgumentProcessor.java b/jabkit/src/main/java/org/jabref/cli/ArgumentProcessor.java new file mode 100644 index 00000000000..c7fefc91511 --- /dev/null +++ b/jabkit/src/main/java/org/jabref/cli/ArgumentProcessor.java @@ -0,0 +1,829 @@ +package org.jabref.cli; + +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.io.Writer; +import java.net.MalformedURLException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; +import java.util.Optional; +import java.util.Set; +import java.util.prefs.BackingStoreException; + +import org.jabref.logic.FilePreferences; +import org.jabref.logic.JabRefException; +import org.jabref.logic.bibtex.FieldPreferences; +import org.jabref.logic.citationkeypattern.CitationKeyGenerator; +import org.jabref.logic.exporter.AtomicFileWriter; +import org.jabref.logic.exporter.BibDatabaseWriter; +import org.jabref.logic.exporter.BibWriter; +import org.jabref.logic.exporter.BibtexDatabaseWriter; +import org.jabref.logic.exporter.EmbeddedBibFilePdfExporter; +import org.jabref.logic.exporter.Exporter; +import org.jabref.logic.exporter.ExporterFactory; +import org.jabref.logic.exporter.SelfContainedSaveConfiguration; +import org.jabref.logic.exporter.XmpPdfExporter; +import org.jabref.logic.importer.FetcherException; +import org.jabref.logic.importer.ImportException; +import org.jabref.logic.importer.ImportFormatPreferences; +import org.jabref.logic.importer.ImportFormatReader; +import org.jabref.logic.importer.OpenDatabase; +import org.jabref.logic.importer.ParseException; +import org.jabref.logic.importer.ParserResult; +import org.jabref.logic.importer.SearchBasedFetcher; +import org.jabref.logic.importer.WebFetchers; +import org.jabref.logic.importer.fileformat.BibtexParser; +import org.jabref.logic.journals.JournalAbbreviationRepository; +import org.jabref.logic.l10n.Localization; +import org.jabref.logic.net.URLDownload; +import org.jabref.logic.os.OS; +import org.jabref.logic.preferences.CliPreferences; +import org.jabref.logic.quality.consistency.BibliographyConsistencyCheck; +import org.jabref.logic.quality.consistency.BibliographyConsistencyCheckResultCsvWriter; +import org.jabref.logic.quality.consistency.BibliographyConsistencyCheckResultTxtWriter; +import org.jabref.logic.quality.consistency.BibliographyConsistencyCheckResultWriter; +import org.jabref.logic.search.DatabaseSearcher; +import org.jabref.logic.search.PostgreServer; +import org.jabref.logic.search.SearchPreferences; +import org.jabref.logic.shared.prefs.SharedDatabasePreferences; +import org.jabref.logic.util.CurrentThreadTaskExecutor; +import org.jabref.logic.util.io.FileUtil; +import org.jabref.logic.xmp.XmpPreferences; +import org.jabref.model.database.BibDatabase; +import org.jabref.model.database.BibDatabaseContext; +import org.jabref.model.database.BibDatabaseMode; +import org.jabref.model.entry.BibEntry; +import org.jabref.model.entry.BibEntryTypesManager; +import org.jabref.model.search.query.SearchQuery; +import org.jabref.model.strings.StringUtil; +import org.jabref.model.util.DummyFileUpdateMonitor; +import org.jabref.model.util.FileUpdateMonitor; + +import com.airhacks.afterburner.injection.Injector; +import com.google.common.base.Throwables; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/// TODO: This is a clone of {@link org.jabref.cli.ArgumentProcessor} in jabgui - should be unified +public class ArgumentProcessor { + private static final Logger LOGGER = LoggerFactory.getLogger(ArgumentProcessor.class); + + public enum Mode { INITIAL_START, REMOTE_START } + + private final JabKitCliOptions cli; + + private final Mode startupMode; + + private final CliPreferences cliPreferences; + private final FileUpdateMonitor fileUpdateMonitor; + private final BibEntryTypesManager entryTypesManager; + + /** + * First call the constructor, then call {@link #processArguments()}. + */ + public ArgumentProcessor(String[] args, + Mode startupMode, + CliPreferences cliPreferences, + FileUpdateMonitor fileUpdateMonitor, + BibEntryTypesManager entryTypesManager) + throws org.apache.commons.cli.ParseException { + this.cli = new JabKitCliOptions(args); + this.startupMode = startupMode; + this.cliPreferences = cliPreferences; + this.fileUpdateMonitor = fileUpdateMonitor; + this.entryTypesManager = entryTypesManager; + } + + /** + * Will open a file (like {@link #importFile(String)}, but will also request JabRef to focus on this library. + * + * @return ParserResult with setToOpenTab(true) + */ + private Optional importToOpenBase(String importArguments) { + Optional result = importFile(importArguments); + result.ifPresent(ParserResult::setToOpenTab); + return result; + } + + private Optional importBibtexToOpenBase(String argument, ImportFormatPreferences importFormatPreferences) { + BibtexParser parser = new BibtexParser(importFormatPreferences); + try { + List entries = parser.parseEntries(argument); + ParserResult result = new ParserResult(entries); + result.setToOpenTab(); + return Optional.of(result); + } catch (ParseException e) { + System.err.println(Localization.lang("Error occurred when parsing entry") + ": " + e.getLocalizedMessage()); + return Optional.empty(); + } + } + + /** + * + * @param importArguments Format: fileName[,format] + */ + private Optional importFile(String importArguments) { + LOGGER.debug("Importing file {}", importArguments); + String[] data = importArguments.split(","); + + String address = data[0]; + Path file; + if (address.startsWith("http://") || address.startsWith("https://") || address.startsWith("ftp://")) { + // Download web resource to temporary file + try { + file = new URLDownload(address).toTemporaryFile(); + } catch (FetcherException | MalformedURLException e) { + System.err.println(Localization.lang("Problem downloading from %1", address) + e.getLocalizedMessage()); + return Optional.empty(); + } + } else { + if (OS.WINDOWS) { + file = Path.of(address); + } else { + file = Path.of(address.replace("~", System.getProperty("user.home"))); + } + } + + String importFormat; + if (data.length > 1) { + importFormat = data[1]; + } else { + importFormat = "*"; + } + + Optional importResult = importFile(file, importFormat); + importResult.ifPresent(result -> { + if (result.hasWarnings()) { + System.out.println(result.getErrorMessage()); + } + }); + return importResult; + } + + private Optional importFile(Path file, String importFormat) { + try { + ImportFormatReader importFormatReader = new ImportFormatReader( + cliPreferences.getImporterPreferences(), + cliPreferences.getImportFormatPreferences(), + cliPreferences.getCitationKeyPatternPreferences(), + fileUpdateMonitor + ); + + if (!"*".equals(importFormat)) { + System.out.println(Localization.lang("Importing %0", file)); + ParserResult result = importFormatReader.importFromFile(importFormat, file); + return Optional.of(result); + } else { + // * means "guess the format": + System.out.println(Localization.lang("Importing file %0 as unknown format", file)); + + ImportFormatReader.UnknownFormatImport importResult = + importFormatReader.importUnknownFormat(file, new DummyFileUpdateMonitor()); + + System.out.println(Localization.lang("Format used: %0", importResult.format())); + return Optional.of(importResult.parserResult()); + } + } catch (ImportException ex) { + System.err.println(Localization.lang("Error opening file '%0'", file) + "\n" + ex.getLocalizedMessage()); + return Optional.empty(); + } + } + + public void processArguments() { + if ((startupMode == Mode.INITIAL_START) && cli.isShowVersion()) { + cli.displayVersion(); + } + + if ((startupMode == Mode.INITIAL_START) && cli.isHelp()) { + JabKitCliOptions.printUsage(cliPreferences); + return; + } + + // Check if we should reset all preferences to default values: + if (cli.isPreferencesReset()) { + resetPreferences(cli.getPreferencesReset()); + } + + // Check if we should import preferences from a file: + if (cli.isPreferencesImport()) { + importPreferences(); + } + + List loaded = importAndOpenFiles(); + + if (cli.isFetcherEngine()) { + fetch(cli.getFetcherEngine()).ifPresent(loaded::add); + } + + if (cli.isExportMatches()) { + if (!loaded.isEmpty()) { + if (!exportMatches(loaded)) { + return; + } + } else { + System.err.println(Localization.lang("The output option depends on a valid input option.")); + } + } + + if (cli.isGenerateCitationKeys()) { + regenerateCitationKeys(loaded); + } + + if ((cli.isWriteXmpToPdf() && cli.isEmbedBibFileInPdf()) || (cli.isWriteMetadataToPdf() && (cli.isWriteXmpToPdf() || cli.isEmbedBibFileInPdf()))) { + System.err.println("Give only one of [writeXmpToPdf, embedBibFileInPdf, writeMetadataToPdf]"); + } + + if (cli.isWriteMetadataToPdf() || cli.isWriteXmpToPdf() || cli.isEmbedBibFileInPdf()) { + if (!loaded.isEmpty()) { + writeMetadataToPdf(loaded, + cli.getWriteMetadataToPdf(), + cliPreferences.getXmpPreferences(), + cliPreferences.getFilePreferences(), + cliPreferences.getLibraryPreferences().getDefaultBibDatabaseMode(), + cliPreferences.getCustomEntryTypesRepository(), + cliPreferences.getFieldPreferences(), + Injector.instantiateModelOrService(JournalAbbreviationRepository.class), + cli.isWriteXmpToPdf() || cli.isWriteMetadataToPdf(), + cli.isEmbedBibFileInPdf() || cli.isWriteMetadataToPdf()); + } + } + + if (cli.isFileExport()) { + if (!loaded.isEmpty()) { + exportFile(loaded, cli.getFileExport().split(",")); + LOGGER.debug("Finished export"); + } else { + System.err.println(Localization.lang("The output option depends on a valid import option.")); + } + } + + if (cli.isPreferencesExport()) { + try { + cliPreferences.exportPreferences(Path.of(cli.getPreferencesExport())); + } catch (JabRefException ex) { + LOGGER.error("Cannot export preferences", ex); + } + } + + if (cli.isAuxImport()) { + doAuxImport(loaded); + } + + if (cli.isCheckConsistency()) { + checkConsistency(cliPreferences, entryTypesManager); + } + } + + private void checkConsistency(CliPreferences cliPreferences, + BibEntryTypesManager entryTypesManager) { + Optional fileName = Optional.ofNullable(cli.getCheckConsistency()); + + if (fileName.isEmpty()) { + System.out.println(Localization.lang("No file specified for consistency check.")); + return; + } + + Optional outputFormat = Optional.ofNullable(cli.getCheckConsistencyOutputFormat()); + + Path filePath = Path.of(fileName.get()); + ParserResult pr; + try { + pr = OpenDatabase.loadDatabase(filePath, cliPreferences.getImportFormatPreferences(), fileUpdateMonitor); + } catch (IOException ex) { + LOGGER.error("Error reading '{}'.", filePath, ex); + return; + } + BibDatabaseContext databaseContext = pr.getDatabaseContext(); + List entries = databaseContext.getDatabase().getEntries(); + + BibliographyConsistencyCheck consistencyCheck = new BibliographyConsistencyCheck(); + BibliographyConsistencyCheck.Result result = consistencyCheck.check(entries); + + Writer writer = new OutputStreamWriter(System.out); + BibliographyConsistencyCheckResultWriter checkResultWriter; + if (outputFormat.isEmpty() || "txt".equalsIgnoreCase(outputFormat.get())) { + checkResultWriter = new BibliographyConsistencyCheckResultTxtWriter( + result, + writer, + cli.isPorcelainOutputMode(), + entryTypesManager, + databaseContext.getMode()); + } else { + checkResultWriter = new BibliographyConsistencyCheckResultCsvWriter( + result, + writer, + cli.isPorcelainOutputMode(), + entryTypesManager, + databaseContext.getMode()); + } + + // System.out should not be closed, therefore no try-with-resources + try { + checkResultWriter.writeFindings(); + writer.flush(); + } catch (IOException e) { + LOGGER.error("Error writing results", e); + } + if (!cli.isPorcelainOutputMode()) { + System.out.println(Localization.lang("Consistency check completed")); + } + } + + private static void writeMetadataToPdf(List loaded, + String filesAndCiteKeys, + XmpPreferences xmpPreferences, + FilePreferences filePreferences, + BibDatabaseMode databaseMode, + BibEntryTypesManager entryTypesManager, + FieldPreferences fieldPreferences, + JournalAbbreviationRepository abbreviationRepository, + boolean writeXMP, + boolean embeddBibfile) { + if (loaded.isEmpty()) { + LOGGER.error("The write xmp option depends on a valid import option."); + return; + } + ParserResult pr = loaded.getLast(); + BibDatabaseContext databaseContext = pr.getDatabaseContext(); + + XmpPdfExporter xmpPdfExporter = new XmpPdfExporter(xmpPreferences); + EmbeddedBibFilePdfExporter embeddedBibFilePdfExporter = new EmbeddedBibFilePdfExporter(databaseMode, entryTypesManager, fieldPreferences); + + if ("all".equals(filesAndCiteKeys)) { + for (BibEntry entry : databaseContext.getEntries()) { + writeMetadataToPDFsOfEntry( + databaseContext, + entry.getCitationKey().orElse(""), + entry, + filePreferences, + xmpPdfExporter, + embeddedBibFilePdfExporter, + abbreviationRepository, + writeXMP, + embeddBibfile); + } + return; + } + + List citeKeys = new ArrayList<>(); + List pdfs = new ArrayList<>(); + for (String fileOrCiteKey : filesAndCiteKeys.split(",")) { + if (fileOrCiteKey.toLowerCase(Locale.ROOT).endsWith(".pdf")) { + pdfs.add(fileOrCiteKey); + } else { + citeKeys.add(fileOrCiteKey); + } + } + + writeMetadataToPdfByCitekey( + databaseContext, + citeKeys, + filePreferences, + xmpPdfExporter, + embeddedBibFilePdfExporter, + abbreviationRepository, + writeXMP, + embeddBibfile); + writeMetadataToPdfByFileNames( + databaseContext, + pdfs, + filePreferences, + xmpPdfExporter, + embeddedBibFilePdfExporter, + abbreviationRepository, + writeXMP, + embeddBibfile); + } + + private static void writeMetadataToPDFsOfEntry(BibDatabaseContext databaseContext, + String citeKey, + BibEntry entry, + FilePreferences filePreferences, + XmpPdfExporter xmpPdfExporter, + EmbeddedBibFilePdfExporter embeddedBibFilePdfExporter, + JournalAbbreviationRepository abbreviationRepository, + boolean writeXMP, + boolean embedBibfile) { + try { + if (writeXMP) { + if (xmpPdfExporter.exportToAllFilesOfEntry(databaseContext, filePreferences, entry, List.of(entry), abbreviationRepository)) { + System.out.printf("Successfully written XMP metadata on at least one linked file of %s%n", citeKey); + } else { + System.err.printf("Cannot write XMP metadata on any linked files of %s. Make sure there is at least one linked file and the path is correct.%n", citeKey); + } + } + if (embedBibfile) { + if (embeddedBibFilePdfExporter.exportToAllFilesOfEntry(databaseContext, filePreferences, entry, List.of(entry), abbreviationRepository)) { + System.out.printf("Successfully embedded metadata on at least one linked file of %s%n", citeKey); + } else { + System.out.printf("Cannot embed metadata on any linked files of %s. Make sure there is at least one linked file and the path is correct.%n", citeKey); + } + } + } catch (Exception e) { + LOGGER.error("Failed writing metadata on a linked file of {}.", citeKey); + } + } + + private static void writeMetadataToPdfByCitekey(BibDatabaseContext databaseContext, + List citeKeys, + FilePreferences filePreferences, + XmpPdfExporter xmpPdfExporter, + EmbeddedBibFilePdfExporter embeddedBibFilePdfExporter, + JournalAbbreviationRepository abbreviationRepository, + boolean writeXMP, + boolean embeddBibfile) { + for (String citeKey : citeKeys) { + List bibEntryList = databaseContext.getDatabase().getEntriesByCitationKey(citeKey); + if (bibEntryList.isEmpty()) { + System.err.printf("Skipped - Cannot find %s in library.%n", citeKey); + continue; + } + for (BibEntry entry : bibEntryList) { + writeMetadataToPDFsOfEntry(databaseContext, citeKey, entry, filePreferences, xmpPdfExporter, embeddedBibFilePdfExporter, abbreviationRepository, writeXMP, embeddBibfile); + } + } + } + + private static void writeMetadataToPdfByFileNames(BibDatabaseContext databaseContext, + List pdfs, + FilePreferences filePreferences, + XmpPdfExporter xmpPdfExporter, + EmbeddedBibFilePdfExporter embeddedBibFilePdfExporter, + JournalAbbreviationRepository abbreviationRepository, + boolean writeXMP, + boolean embeddBibfile) { + for (String fileName : pdfs) { + Path filePath = Path.of(fileName); + if (!filePath.isAbsolute()) { + filePath = FileUtil.find(fileName, databaseContext.getFileDirectories(filePreferences)).orElse(FileUtil.find(fileName, List.of(Path.of("").toAbsolutePath())).orElse(filePath)); + } + if (Files.exists(filePath)) { + try { + if (writeXMP) { + if (xmpPdfExporter.exportToFileByPath(databaseContext, filePreferences, filePath, abbreviationRepository)) { + System.out.printf("Successfully written XMP metadata of at least one entry to %s%n", fileName); + } else { + System.out.printf("File %s is not linked to any entry in database.%n", fileName); + } + } + if (embeddBibfile) { + if (embeddedBibFilePdfExporter.exportToFileByPath(databaseContext, filePreferences, filePath, abbreviationRepository)) { + System.out.printf("Successfully embedded XMP metadata of at least one entry to %s%n", fileName); + } else { + System.out.printf("File %s is not linked to any entry in database.%n", fileName); + } + } + } catch (IOException e) { + LOGGER.error("Error accessing file '{}'.", fileName); + } catch (Exception e) { + LOGGER.error("Error writing entry to {}.", fileName); + } + } else { + LOGGER.error("Skipped - PDF {} does not exist", fileName); + } + } + } + + private boolean exportMatches(List loaded) { + String[] data = cli.getExportMatches().split(","); + String searchTerm = data[0].replace("\\$", " "); // enables blanks within the search term: + // $ stands for a blank + ParserResult pr = loaded.getLast(); + BibDatabaseContext databaseContext = pr.getDatabaseContext(); + + SearchPreferences searchPreferences = cliPreferences.getSearchPreferences(); + SearchQuery query = new SearchQuery(searchTerm, searchPreferences.getSearchFlags()); + + List matches; + try { + // extract current thread task executor from indexManager + matches = new DatabaseSearcher(query, databaseContext, new CurrentThreadTaskExecutor(), cliPreferences, Injector.instantiateModelOrService(PostgreServer.class)).getMatches(); + } catch (IOException e) { + LOGGER.error("Error occurred when searching", e); + return false; + } + + // export matches + if (!matches.isEmpty()) { + String formatName; + + // read in the export format, take default format if no format entered + switch (data.length) { + case 3 -> formatName = data[2]; + case 2 -> + // default exporter: bib file + formatName = "bib"; + default -> { + System.err.println(Localization.lang("Output file missing").concat(". \n \t ") + .concat(Localization.lang("Usage")).concat(": ") + JabKitCliOptions.getExportMatchesSyntax()); + return false; + } + } + + if ("bib".equals(formatName)) { + // output a bib file as default or if + // provided exportFormat is "bib" + saveDatabase(new BibDatabase(matches), data[1]); + LOGGER.debug("Finished export"); + } else { + // export new database + ExporterFactory exporterFactory = ExporterFactory.create(cliPreferences); + Optional exporter = exporterFactory.getExporterByName(formatName); + if (exporter.isEmpty()) { + System.err.println(Localization.lang("Unknown export format %0", formatName)); + } else { + // We have an TemplateExporter instance: + try { + System.out.println(Localization.lang("Exporting %0", data[1])); + exporter.get().export( + databaseContext, + Path.of(data[1]), + matches, + List.of(), + Injector.instantiateModelOrService(JournalAbbreviationRepository.class)); + } catch (Exception ex) { + System.err.println(Localization.lang("Could not export file '%0' (reason: %1)", data[1], Throwables.getStackTraceAsString(ex))); + } + } + } + } else { + System.err.println(Localization.lang("No search matches.")); + } + return true; + } + + private void doAuxImport(List loaded) { + boolean usageMsg; + + if (!loaded.isEmpty()) { + usageMsg = generateAux(loaded, cli.getAuxImport().split(",")); + } else { + usageMsg = true; + } + + if (usageMsg) { + System.out.println(Localization.lang("no base-BibTeX-file specified!")); + System.out.println(Localization.lang("usage") + " :"); + System.out.println("jabref --aux infile[.aux],outfile[.bib] base-BibTeX-file"); + } + } + + /** + * @return List of opened files (could be .bib, but also other formats). May also contain error results. + */ + private List importAndOpenFiles() { + List loaded = new ArrayList<>(); + List toImport = new ArrayList<>(); + if (!cli.getLeftOver().isEmpty()) { + for (String aLeftOver : cli.getLeftOver()) { + // Leftover arguments that have a "bib" extension are interpreted as + // BIB files to open. Other files, and files that could not be opened + // as bib, we try to import instead. + boolean bibExtension = aLeftOver.toLowerCase(Locale.ENGLISH).endsWith("bib"); + + ParserResult pr = new ParserResult(); + if (bibExtension) { + try { + pr = OpenDatabase.loadDatabase( + Path.of(aLeftOver), + cliPreferences.getImportFormatPreferences(), + fileUpdateMonitor); + // In contrast to org.jabref.gui.LibraryTab.onDatabaseLoadingSucceed, we do not execute OpenDatabaseAction.performPostOpenActions(result, dialogService); + } catch (IOException ex) { + pr = ParserResult.fromError(ex); + LOGGER.error("Error opening file '{}'", aLeftOver, ex); + } + } + + if (!bibExtension || (pr.isEmpty())) { + // We will try to import this file. Normally we + // will import it into a new tab, but if this import has + // been initiated by another instance through the remote + // listener, we will instead import it into the current library. + // This will enable easy integration with web browsers that can + // open a reference file in JabRef. + if (startupMode == Mode.INITIAL_START) { + toImport.add(aLeftOver); + } else { + loaded.add(importToOpenBase(aLeftOver).orElse(new ParserResult())); + } + } else { + loaded.add(pr); + } + } + } + + if (cli.isFileImport()) { + toImport.add(cli.getFileImport()); + } + + for (String filenameString : toImport) { + importFile(filenameString).ifPresent(loaded::add); + } + + if (cli.isBibtexImport()) { + importBibtexToOpenBase(cli.getBibtexImport(), cliPreferences.getImportFormatPreferences()).ifPresent(loaded::add); + } + + return loaded; + } + + /** + * Generates a new library being a subset of the given library + * + * @param loaded The library used as base + * @param data [0]: the .aux file; [1]: the target .bib file + */ + private boolean generateAux(List loaded, String[] data) { + if (data.length == 2) { + ParserResult pr = loaded.getFirst(); + AuxCommandLine acl = new AuxCommandLine(data[0], pr.getDatabase()); + BibDatabase newBase = acl.perform(); + + boolean notSavedMsg = false; + + // write an output, if something could be resolved + if ((newBase != null) && newBase.hasEntries()) { + String subName = StringUtil.getCorrectFileName(data[1], "bib"); + saveDatabase(newBase, subName); + notSavedMsg = true; + } + + if (!notSavedMsg) { + System.out.println(Localization.lang("no library generated")); + } + return false; + } else { + return true; + } + } + + private void saveDatabase(BibDatabase newBase, String subName) { + try { + System.out.println(Localization.lang("Saving") + ": " + subName); + try (AtomicFileWriter fileWriter = new AtomicFileWriter(Path.of(subName), StandardCharsets.UTF_8)) { + BibWriter bibWriter = new BibWriter(fileWriter, OS.NEWLINE); + SelfContainedSaveConfiguration saveConfiguration = (SelfContainedSaveConfiguration) new SelfContainedSaveConfiguration() + .withReformatOnSave(cliPreferences.getLibraryPreferences().shouldAlwaysReformatOnSave()); + BibDatabaseWriter databaseWriter = new BibtexDatabaseWriter( + bibWriter, + saveConfiguration, + cliPreferences.getFieldPreferences(), + cliPreferences.getCitationKeyPatternPreferences(), + entryTypesManager); + databaseWriter.saveDatabase(new BibDatabaseContext(newBase)); + + // Show just a warning message if encoding did not work for all characters: + if (fileWriter.hasEncodingProblems()) { + System.err.println(Localization.lang("Warning") + ": " + + Localization.lang("UTF-8 could not be used to encode the following characters: %0", fileWriter.getEncodingProblems())); + } + } + } catch (IOException ex) { + System.err.println(Localization.lang("Could not save file.") + "\n" + ex.getLocalizedMessage()); + } + } + + private void exportFile(List loaded, String[] data) { + if (data.length == 1) { + // This signals that the latest import should be stored in BibTeX + // format to the given file. + if (!loaded.isEmpty()) { + ParserResult pr = loaded.getLast(); + if (!pr.isInvalid()) { + saveDatabase(pr.getDatabase(), data[0]); + } + } else { + System.err.println(Localization.lang("The output option depends on a valid import option.")); + } + } else if (data.length == 2) { + // This signals that the latest import should be stored in the given + // format to the given file. + ParserResult parserResult = loaded.getLast(); + + Path path = parserResult.getPath().get().toAbsolutePath(); + BibDatabaseContext databaseContext = parserResult.getDatabaseContext(); + databaseContext.setDatabasePath(path); + List fileDirForDatabase = databaseContext + .getFileDirectories(cliPreferences.getFilePreferences()); + System.out.println(Localization.lang("Exporting %0", data[0])); + ExporterFactory exporterFactory = ExporterFactory.create(cliPreferences); + Optional exporter = exporterFactory.getExporterByName(data[1]); + if (exporter.isEmpty()) { + System.err.println(Localization.lang("Unknown export format %0", data[1])); + } else { + // We have an exporter: + try { + exporter.get().export( + parserResult.getDatabaseContext(), + Path.of(data[0]), + parserResult.getDatabaseContext().getDatabase().getEntries(), + fileDirForDatabase, + Injector.instantiateModelOrService(JournalAbbreviationRepository.class)); + } catch (Exception ex) { + System.err.println(Localization.lang("Could not export file '%0' (reason: %1)", data[0], Throwables.getStackTraceAsString(ex))); + } + } + } + } + + private void importPreferences() { + try { + cliPreferences.importPreferences(Path.of(cli.getPreferencesImport())); + Injector.setModelOrService(BibEntryTypesManager.class, cliPreferences.getCustomEntryTypesRepository()); + } catch (JabRefException ex) { + LOGGER.error("Cannot import preferences", ex); + } + } + + private void resetPreferences(String value) { + if ("all".equals(value.trim())) { + try { + System.out.println(Localization.lang("Setting all preferences to default values.")); + cliPreferences.clear(); + new SharedDatabasePreferences().clear(); + } catch (BackingStoreException e) { + System.err.println(Localization.lang("Unable to clear preferences.")); + LOGGER.error("Unable to clear preferences", e); + } + } else { + String[] keys = value.split(","); + for (String key : keys) { + try { + cliPreferences.deleteKey(key.trim()); + System.out.println(Localization.lang("Resetting preference key '%0'", key.trim())); + } catch (IllegalArgumentException e) { + System.out.println(e.getMessage()); + } + } + } + } + + private void regenerateCitationKeys(List loaded) { + for (ParserResult parserResult : loaded) { + BibDatabase database = parserResult.getDatabase(); + + LOGGER.info(Localization.lang("Regenerating citation keys according to metadata")); + + CitationKeyGenerator keyGenerator = new CitationKeyGenerator( + parserResult.getDatabaseContext(), + cliPreferences.getCitationKeyPatternPreferences()); + for (BibEntry entry : database.getEntries()) { + keyGenerator.generateAndSetKey(entry); + } + } + } + + /** + * Run an entry fetcher from the command line. + * + * @param fetchCommand A string containing both the name of the fetcher to use and the search query, separated by a : + * @return A parser result containing the entries fetched or null if an error occurred. + */ + private Optional fetch(String fetchCommand) { + if ((fetchCommand == null) || !fetchCommand.contains(":")) { + System.out.println(Localization.lang("Expected syntax for --fetch=':'")); + System.out.println(Localization.lang("The following fetchers are available:")); + return Optional.empty(); + } + + String[] split = fetchCommand.split(":"); + String engine = split[0]; + String query = split[1]; + + Set fetchers = WebFetchers.getSearchBasedFetchers( + cliPreferences.getImportFormatPreferences(), + cliPreferences.getImporterPreferences()); + Optional selectedFetcher = fetchers.stream() + .filter(fetcher -> fetcher.getName().equalsIgnoreCase(engine)) + .findFirst(); + if (selectedFetcher.isEmpty()) { + System.out.println(Localization.lang("Could not find fetcher '%0'", engine)); + + System.out.println(Localization.lang("The following fetchers are available:")); + fetchers.forEach(fetcher -> System.out.println(" " + fetcher.getName())); + + return Optional.empty(); + } else { + System.out.println(Localization.lang("Running query '%0' with fetcher '%1'.", query, engine)); + System.out.print(Localization.lang("Please wait...")); + try { + List matches = selectedFetcher.get().performSearch(query); + if (matches.isEmpty()) { + System.out.println("\r" + Localization.lang("No results found.")); + return Optional.empty(); + } else { + System.out.println("\r" + Localization.lang("Found %0 results.", String.valueOf(matches.size()))); + return Optional.of(new ParserResult(matches)); + } + } catch (FetcherException e) { + LOGGER.error("Error while fetching", e); + return Optional.empty(); + } + } + } +} diff --git a/jabkit/src/main/java/org/jabref/cli/AuxCommandLine.java b/jabkit/src/main/java/org/jabref/cli/AuxCommandLine.java new file mode 100644 index 00000000000..ea566f44e24 --- /dev/null +++ b/jabkit/src/main/java/org/jabref/cli/AuxCommandLine.java @@ -0,0 +1,33 @@ +package org.jabref.cli; + +import java.nio.file.Path; + +import org.jabref.logic.auxparser.AuxParser; +import org.jabref.logic.auxparser.AuxParserResult; +import org.jabref.logic.auxparser.AuxParserStatisticsProvider; +import org.jabref.logic.auxparser.DefaultAuxParser; +import org.jabref.model.database.BibDatabase; +import org.jabref.model.strings.StringUtil; + +public class AuxCommandLine { + private final String auxFile; + private final BibDatabase database; + + public AuxCommandLine(String auxFile, BibDatabase database) { + this.auxFile = StringUtil.getCorrectFileName(auxFile, "aux"); + this.database = database; + } + + public BibDatabase perform() { + BibDatabase subDatabase = null; + + if (!auxFile.isEmpty() && (database != null)) { + AuxParser auxParser = new DefaultAuxParser(database); + AuxParserResult result = auxParser.parse(Path.of(auxFile)); + subDatabase = result.getGeneratedBibDatabase(); + // print statistics + System.out.println(new AuxParserStatisticsProvider(result).getInformation(true)); + } + return subDatabase; + } +} diff --git a/src/main/java/org/jabref/cli/JabKit.java b/jabkit/src/main/java/org/jabref/cli/JabKit.java similarity index 89% rename from src/main/java/org/jabref/cli/JabKit.java rename to jabkit/src/main/java/org/jabref/cli/JabKit.java index 72cab155979..7b7420d55e9 100644 --- a/src/main/java/org/jabref/cli/JabKit.java +++ b/jabkit/src/main/java/org/jabref/cli/JabKit.java @@ -6,12 +6,9 @@ import java.nio.file.DirectoryStream; import java.nio.file.Files; import java.nio.file.Path; -import java.util.ArrayList; import java.util.Comparator; -import java.util.List; import java.util.Map; -import org.jabref.logic.UiCommand; import org.jabref.logic.journals.JournalAbbreviationLoader; import org.jabref.logic.journals.JournalAbbreviationRepository; import org.jabref.logic.net.ProxyAuthenticator; @@ -24,6 +21,7 @@ import org.jabref.logic.protectedterms.ProtectedTermsLoader; import org.jabref.logic.remote.RemotePreferences; import org.jabref.logic.remote.client.RemoteClient; +import org.jabref.logic.search.PostgreServer; import org.jabref.logic.util.BuildInfo; import org.jabref.logic.util.Directories; import org.jabref.model.entry.BibEntryTypesManager; @@ -57,10 +55,7 @@ public static void main(String[] args) { FileUpdateMonitor fileUpdateMonitor = new DummyFileUpdateMonitor(); - List uiCommands = processArguments(args, preferences, fileUpdateMonitor); - if (!uiCommands.isEmpty()) { - LOGGER.error("No GUI needed, but UI commands were returned. Exiting."); - } + processArguments(args, preferences, fileUpdateMonitor); } private static void systemExit() { @@ -70,7 +65,7 @@ private static void systemExit() { System.exit(0); } - public static List processArguments(String[] args, JabRefCliPreferences preferences, FileUpdateMonitor fileUpdateMonitor) { + public static void processArguments(String[] args, JabRefCliPreferences preferences, FileUpdateMonitor fileUpdateMonitor) { try { Injector.setModelOrService(BuildInfo.class, new BuildInfo()); @@ -85,6 +80,9 @@ public static List processArguments(String[] args, JabRefCliPreferenc Injector.setModelOrService(JournalAbbreviationRepository.class, JournalAbbreviationLoader.loadRepository(preferences.getJournalAbbreviationPreferences())); Injector.setModelOrService(ProtectedTermsLoader.class, new ProtectedTermsLoader(preferences.getProtectedTermsPreferences())); + PostgreServer postgreServer = new PostgreServer(); + Injector.setModelOrService(PostgreServer.class, postgreServer); + configureProxy(preferences.getProxyPreferences()); configureSSL(preferences.getSSLPreferences()); @@ -101,25 +99,16 @@ public static List processArguments(String[] args, JabRefCliPreferenc fileUpdateMonitor, entryTypesManager); argumentProcessor.processArguments(); - if (argumentProcessor.shouldShutDown()) { - LOGGER.debug("JabRef shut down after processing command line arguments"); - // A clean shutdown takes 60s time - // We don't need the clean shutdown here - System.exit(0); - return null; - } - return new ArrayList<>(argumentProcessor.getUiCommands()); + systemExit(); } catch (ParseException e) { LOGGER.error("Problem parsing arguments", e); - CliOptions.printUsage(preferences); + JabKitCliOptions.printUsage(preferences); systemExit(); - return null; } } catch (Exception ex) { LOGGER.error("Unexpected exception", ex); systemExit(); - return null; } } @@ -136,8 +125,8 @@ public static void initLogging(String[] args) { // argument parsing workflow to parse logging options .e.g. --debug boolean isDebugEnabled; try { - CliOptions cliOptions = new CliOptions(args); - isDebugEnabled = cliOptions.isDebugLogging(); + JabKitCliOptions jabKitCliOptions = new JabKitCliOptions(args); + isDebugEnabled = jabKitCliOptions.isDebugLogging(); } catch (ParseException e) { isDebugEnabled = false; } diff --git a/jabkit/src/main/java/org/jabref/cli/JabKitCliOptions.java b/jabkit/src/main/java/org/jabref/cli/JabKitCliOptions.java new file mode 100644 index 00000000000..6608b4aafd2 --- /dev/null +++ b/jabkit/src/main/java/org/jabref/cli/JabKitCliOptions.java @@ -0,0 +1,381 @@ +package org.jabref.cli; + +import java.util.List; +import java.util.Objects; + +import javafx.util.Pair; + +import org.jabref.logic.exporter.ExporterFactory; +import org.jabref.logic.importer.ImportFormatReader; +import org.jabref.logic.l10n.Localization; +import org.jabref.logic.os.OS; +import org.jabref.logic.preferences.CliPreferences; +import org.jabref.logic.util.BuildInfo; +import org.jabref.model.strings.StringUtil; +import org.jabref.model.util.DummyFileUpdateMonitor; + +import org.apache.commons.cli.CommandLine; +import org.apache.commons.cli.DefaultParser; +import org.apache.commons.cli.HelpFormatter; +import org.apache.commons.cli.Option; +import org.apache.commons.cli.Options; +import org.apache.commons.cli.ParseException; + +/** + * Holds the command line options. It parses it using Apache Commons CLI. + */ +public class JabKitCliOptions { + private static final int WIDTH = 100; // Number of characters per line before a line break must be added. + private static final String WRAPPED_LINE_PREFIX = ""; // If a line break is added, this prefix will be inserted at the beginning of the next line + private static final String STRING_TABLE_DELIMITER = " : "; + + private final CommandLine commandLine; + private final List leftOver; + + public JabKitCliOptions(String[] args) throws ParseException { + Options options = getOptions(); + this.commandLine = new DefaultParser().parse(options, args, true); + this.leftOver = commandLine.getArgList(); + } + + public static String getExportMatchesSyntax() { + return "[%s]searchTerm,outputFile:%s[,%s]".formatted( + Localization.lang("field"), + Localization.lang("file"), + Localization.lang("exportFormat")); + } + + public boolean isHelp() { + return commandLine.hasOption("help"); + } + + public boolean isShowVersion() { + return commandLine.hasOption("version"); + } + + public boolean isCheckConsistency() { + return commandLine.hasOption("check-consistency"); + } + + public String getCheckConsistency() { + return commandLine.getOptionValue("check-consistency"); + } + + public String getCheckConsistencyOutputFormat() { + return commandLine.getOptionValue("output-format"); + } + + public boolean isPorcelainOutputMode() { + return commandLine.hasOption("porcelain"); + } + + public boolean isPreferencesExport() { + return commandLine.hasOption("prexp"); + } + + public String getPreferencesExport() { + return commandLine.getOptionValue("prexp", "jabref_prefs.xml"); + } + + public boolean isPreferencesImport() { + return commandLine.hasOption("primp"); + } + + public String getPreferencesImport() { + return commandLine.getOptionValue("primp", "jabref_prefs.xml"); + } + + public boolean isPreferencesReset() { + return commandLine.hasOption("prdef"); + } + + public String getPreferencesReset() { + return commandLine.getOptionValue("prdef"); + } + + public boolean isFileExport() { + return commandLine.hasOption("output"); + } + + public String getFileExport() { + return commandLine.getOptionValue("output"); + } + + public boolean isBibtexImport() { + return commandLine.hasOption("importBibtex"); + } + + public String getBibtexImport() { + return commandLine.getOptionValue("importBibtex"); + } + + public boolean isFileImport() { + return commandLine.hasOption("import"); + } + + public String getFileImport() { + return commandLine.getOptionValue("import"); + } + + public boolean isAuxImport() { + return commandLine.hasOption("aux"); + } + + public String getAuxImport() { + return commandLine.getOptionValue("aux"); + } + + public boolean isDebugLogging() { + return commandLine.hasOption("debug"); + } + + public boolean isFetcherEngine() { + return commandLine.hasOption("fetch"); + } + + public String getFetcherEngine() { + return commandLine.getOptionValue("fetch"); + } + + public boolean isExportMatches() { + return commandLine.hasOption("exportMatches"); + } + + public String getExportMatches() { + return commandLine.getOptionValue("exportMatches"); + } + + public boolean isGenerateCitationKeys() { + return commandLine.hasOption("generateCitationKeys"); + } + + public boolean isWriteXmpToPdf() { + return commandLine.hasOption("writeXmpToPdf"); + } + + public boolean isEmbedBibFileInPdf() { + return commandLine.hasOption("embedBibFileInPdf"); + } + + public boolean isWriteMetadataToPdf() { + return commandLine.hasOption("writeMetadataToPdf"); + } + + public String getWriteMetadataToPdf() { + return commandLine.hasOption("writeMetadatatoPdf") ? commandLine.getOptionValue("writeMetadataToPdf") : + commandLine.hasOption("writeXMPtoPdf") ? commandLine.getOptionValue("writeXmpToPdf") : + commandLine.hasOption("embeddBibfileInPdf") ? commandLine.getOptionValue("embeddBibfileInPdf") : null; + } + + private static Options getOptions() { + Options options = new Options(); + + // boolean options + options.addOption("h", "help", false, Localization.lang("Display help on command line options")); + options.addOption("n", "nogui", false, Localization.lang("No GUI. Only process command line options")); + options.addOption("g", "generateCitationKeys", false, Localization.lang("Regenerate all keys for the entries in a BibTeX file")); + options.addOption("b", "blank", false, Localization.lang("Do not open any files at startup")); + options.addOption("v", "version", false, Localization.lang("Display version")); + options.addOption(null, "debug", false, Localization.lang("Show debug level messages")); + + options.addOption(Option + .builder("i") + .longOpt("import") + .desc("%s: '%s'".formatted(Localization.lang("Import file"), "-i library.bib")) + .hasArg() + .argName("FILE[,FORMAT]") + .build()); + + options.addOption(Option + .builder() + .longOpt("importToOpen") + .desc(Localization.lang("Same as --import, but will be imported to the opened tab")) + .hasArg() + .argName("FILE[,FORMAT]") + .build()); + + options.addOption(Option + .builder("ib") + .longOpt("importBibtex") + .desc("%s: '%s'".formatted(Localization.lang("Import BibTeX"), "-ib @article{entry}")) + .hasArg() + .argName("BIBTEX_STRING") + .build()); + + options.addOption(Option + .builder("o") + .longOpt("output") + .desc("%s: '%s'".formatted(Localization.lang("Export an input to a file"), "-i db.bib -o db.htm,html")) + .hasArg() + .argName("FILE[,FORMAT]") + .build()); + + options.addOption(Option + .builder("m") + .longOpt("exportMatches") + .desc("%s: '%s'".formatted(Localization.lang("Matching"), "-i db.bib -m author=Newton,search.htm,html")) + .hasArg() + .argName("QUERY,FILE[,FORMAT]") + .build()); + + options.addOption(Option + .builder("f") + .longOpt("fetch") + .desc("%s: '%s'".formatted(Localization.lang("Run fetcher"), "-f Medline/PubMed:cancer")) + .hasArg() + .argName("FETCHER:QUERY") + .build()); + + options.addOption(Option + .builder("a") + .longOpt("aux") + .desc("%s: '%s'".formatted(Localization.lang("Sublibrary from AUX to BibTeX"), "-a thesis.aux,new.bib")) + .hasArg() + .argName("FILE[.aux],FILE[.bib] FILE") + .build()); + + options.addOption(Option + .builder("x") + .longOpt("prexp") + .desc("%s: '%s'".formatted(Localization.lang("Export preferences to a file"), "-x prefs.xml")) + .hasArg() + .argName("[FILE]") + .build()); + + options.addOption(Option + .builder("p") + .longOpt("primp") + .desc("%s: '%s'".formatted(Localization.lang("Import preferences from a file"), "-p prefs.xml")) + .hasArg() + .argName("[FILE]") + .build()); + + options.addOption(Option + .builder("d") + .longOpt("prdef") + .desc("%s: '%s'".formatted(Localization.lang("Reset preferences"), "-d mainFontSize,newline' or '-d all")) + .hasArg() + .argName("KEY1[,KEY2][,KEYn] | all") + .build()); + + options.addOption(Option + .builder() + .longOpt("writeXmpToPdf") + .desc("%s: '%s'".formatted(Localization.lang("Write BibTeX as XMP metadata to PDF."), "-w pathToMyOwnPaper.pdf")) + .hasArg() + .argName("CITEKEY1[,CITEKEY2][,CITEKEYn] | PDF1[,PDF2][,PDFn] | all") + .build()); + + options.addOption(Option + .builder() + .longOpt("embedBibFileInPdf") + .desc("%s: '%s'".formatted(Localization.lang("Embed BibTeX as attached file in PDF."), "-w pathToMyOwnPaper.pdf")) + .hasArg() + .argName("CITEKEY1[,CITEKEY2][,CITEKEYn] | PDF1[,PDF2][,PDFn] | all") + .build()); + + options.addOption(Option + .builder("w") + .longOpt("writeMetadataToPdf") + .desc("%s: '%s'".formatted(Localization.lang("Write BibTeX to PDF (XMP and embedded)"), "-w pathToMyOwnPaper.pdf")) + .hasArg() + .argName("CITEKEY1[,CITEKEY2][,CITEKEYn] | PDF1[,PDF2][,PDFn] | all") + .build()); + + options.addOption(Option + .builder("j") + .longOpt("jumpToKey") + .desc("%s: '%s'".formatted(Localization.lang("Jump to the entry of the given citation key."), "-j key")) + .hasArg() + .argName("CITATIONKEY") + .build()); + + options.addOption(Option + .builder("cc") + .longOpt("check-consistency") + .desc(Localization.lang("Check consistency of BibTeX file")) + .hasArg() + .argName("FILE") + .build()); + + options.addOption(Option + .builder() + .longOpt("output-format") + .desc(Localization.lang("Output format for consistency check (txt/csv)")) + .hasArg() + .argName("FORMAT") + .build()); + + options.addOption(Option + .builder("porcelain") + .longOpt("porcelain") + .desc(Localization.lang("Script-friendly output")) + .build()); + + return options; + } + + public void displayVersion() { + System.out.println(getVersionInfo()); + } + + public static void printUsage(CliPreferences preferences) { + String header = ""; + + ImportFormatReader importFormatReader = new ImportFormatReader( + preferences.getImporterPreferences(), + preferences.getImportFormatPreferences(), + preferences.getCitationKeyPatternPreferences(), + new DummyFileUpdateMonitor() + ); + List> importFormats = importFormatReader + .getImportFormats().stream() + .map(format -> new Pair<>(format.getName(), format.getId())) + .toList(); + String importFormatsIntro = Localization.lang("Available import formats"); + String importFormatsList = "%s:%n%s%n".formatted(importFormatsIntro, alignStringTable(importFormats)); + + ExporterFactory exporterFactory = ExporterFactory.create(preferences); + List> exportFormats = exporterFactory + .getExporters().stream() + .map(format -> new Pair<>(format.getName(), format.getId())) + .toList(); + String outFormatsIntro = Localization.lang("Available export formats"); + String outFormatsList = "%s:%n%s%n".formatted(outFormatsIntro, alignStringTable(exportFormats)); + + String footer = '\n' + importFormatsList + outFormatsList + "\nPlease report issues at https://github.com/JabRef/jabref/issues."; + + HelpFormatter formatter = new HelpFormatter(); + formatter.printHelp(WIDTH, "jabref [OPTIONS] [BIBTEX_FILE]\n\nOptions:", header, getOptions(), footer, true); + } + + private String getVersionInfo() { + return "JabRef %s".formatted(new BuildInfo().version); + } + + public List getLeftOver() { + return leftOver; + } + + protected static String alignStringTable(List> table) { + StringBuilder sb = new StringBuilder(); + + int maxLength = table.stream() + .mapToInt(pair -> Objects.requireNonNullElse(pair.getKey(), "").length()) + .max().orElse(0); + + for (Pair pair : table) { + int padding = Math.max(0, maxLength - pair.getKey().length()); + sb.append(WRAPPED_LINE_PREFIX); + sb.append(pair.getKey()); + + sb.append(StringUtil.repeatSpaces(padding)); + + sb.append(STRING_TABLE_DELIMITER); + sb.append(pair.getValue()); + sb.append(OS.NEWLINE); + } + + return sb.toString(); + } +} diff --git a/jabkit/src/main/resources/tinylog.properties b/jabkit/src/main/resources/tinylog.properties new file mode 100644 index 00000000000..0e23c67fd1f --- /dev/null +++ b/jabkit/src/main/resources/tinylog.properties @@ -0,0 +1,14 @@ +level = info +writer = console + +writer.format = {date} [{thread}] {class}.{method}()\n{level}: {message}\n + +# More shrunk exception logs. See https://tinylog.org/v2/configuration/#strip-stack-trace-elements for details +exception = strip: jdk.internal + +level@org.apache.pdfbox.pdmodel.font = error +level@org.apache.pdfbox.pdmodel.PDSimpleFont = error +level@org.apache.fontbox.util.autodetect.FontFileFinder = warn +level@org.apache.fontbox.ttf = warn +level@ai.djl = info +level@io.zonky.test.db.postgres.embedded = warn diff --git a/jabkit/src/test/java/module-info.test b/jabkit/src/test/java/module-info.test new file mode 100644 index 00000000000..b71b3333ffe --- /dev/null +++ b/jabkit/src/test/java/module-info.test @@ -0,0 +1,4 @@ +--add-modules + org.jabref.testsupport +--add-reads + org.jabref.jabkit=org.jabref.testsupport diff --git a/src/test/java/org/jabref/cli/ArgumentProcessorTest.java b/jabkit/src/test/java/org/jabref/cli/ArgumentProcessorTest.java similarity index 85% rename from src/test/java/org/jabref/cli/ArgumentProcessorTest.java rename to jabkit/src/test/java/org/jabref/cli/ArgumentProcessorTest.java index 8d47b4c6c13..bbfd60d07e8 100644 --- a/src/test/java/org/jabref/cli/ArgumentProcessorTest.java +++ b/jabkit/src/test/java/org/jabref/cli/ArgumentProcessorTest.java @@ -1,7 +1,9 @@ package org.jabref.cli; import java.io.ByteArrayOutputStream; +import java.io.IOException; import java.io.PrintStream; +import java.net.URISyntaxException; import java.nio.file.Files; import java.nio.file.Path; import java.util.EnumSet; @@ -11,14 +13,13 @@ import javafx.collections.FXCollections; import org.jabref.cli.ArgumentProcessor.Mode; -import org.jabref.gui.preferences.GuiPreferences; -import org.jabref.logic.bibtex.BibEntryAssert; import org.jabref.logic.exporter.BibDatabaseWriter; import org.jabref.logic.exporter.ExportPreferences; import org.jabref.logic.exporter.SelfContainedSaveConfiguration; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.logic.importer.ImporterPreferences; import org.jabref.logic.importer.fileformat.BibtexImporter; +import org.jabref.logic.preferences.CliPreferences; import org.jabref.logic.search.SearchPreferences; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.BibEntryTypesManager; @@ -28,7 +29,9 @@ import org.jabref.model.search.SearchFlags; import org.jabref.model.util.DummyFileUpdateMonitor; import org.jabref.model.util.FileUpdateMonitor; +import org.jabref.support.BibEntryAssert; +import org.apache.commons.cli.ParseException; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; @@ -41,7 +44,7 @@ class ArgumentProcessorTest { - private final GuiPreferences preferences = mock(GuiPreferences.class, Answers.RETURNS_DEEP_STUBS); + private final CliPreferences preferences = mock(CliPreferences.class, Answers.RETURNS_DEEP_STUBS); private final BibEntryTypesManager entryTypesManager = mock(BibEntryTypesManager.class); private final ImporterPreferences importerPreferences = mock(ImporterPreferences.class, Answers.RETURNS_DEEP_STUBS); private final ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); @@ -63,14 +66,13 @@ void setup() { } @Test - void auxImport(@TempDir Path tempDir) throws Exception { - String auxFile = Path.of(AuxCommandLineTest.class.getResource("paper.aux").toURI()).toAbsolutePath().toString(); - String originBib = Path.of(AuxCommandLineTest.class.getResource("origin.bib").toURI()).toAbsolutePath().toString(); + void auxImport(@TempDir Path tempDir) throws URISyntaxException, ParseException { + String fullBib = Path.of(ArgumentProcessorTest.class.getResource("origin.bib").toURI()).toAbsolutePath().toString(); + String auxFile = Path.of(ArgumentProcessorTest.class.getResource("paper.aux").toURI()).toAbsolutePath().toString(); - Path outputBib = tempDir.resolve("output.bisb").toAbsolutePath(); - String outputBibFile = outputBib.toAbsolutePath().toString(); + Path outputBib = tempDir.resolve("output.bib").toAbsolutePath(); - List args = List.of("--nogui", "--debug", "--aux", auxFile + "," + outputBibFile, originBib); + List args = List.of("--aux", auxFile + "," + outputBib, fullBib); ArgumentProcessor processor = new ArgumentProcessor( args.toArray(String[]::new), @@ -84,7 +86,7 @@ void auxImport(@TempDir Path tempDir) throws Exception { } @Test - void exportMatches(@TempDir Path tempDir) throws Exception { + void exportMatches(@TempDir Path tempDir) throws URISyntaxException, IOException, ParseException { Path originBib = Path.of(Objects.requireNonNull(ArgumentProcessorTest.class.getResource("origin.bib")).toURI()); String originBibFile = originBib.toAbsolutePath().toString(); @@ -114,7 +116,7 @@ void exportMatches(@TempDir Path tempDir) throws Exception { } @Test - void convertBibtexToTableRefsAsBib(@TempDir Path tempDir) throws Exception { + void convertBibtexToTableRefsAsBib(@TempDir Path tempDir) throws URISyntaxException, ParseException { Path originBib = Path.of(Objects.requireNonNull(ArgumentProcessorTest.class.getResource("origin.bib")).toURI()); String originBibFile = originBib.toAbsolutePath().toString(); @@ -145,11 +147,11 @@ void convertBibtexToTableRefsAsBib(@TempDir Path tempDir) throws Exception { } @Test - void checkConsistency() throws Exception { + void checkConsistency() throws URISyntaxException, ParseException { Path testBib = Path.of(Objects.requireNonNull(ArgumentProcessorTest.class.getResource("origin.bib")).toURI()); String testBibFile = testBib.toAbsolutePath().toString(); - List args = List.of("--nogui", "--check-consistency", testBibFile, "--output-format", "txt"); + List args = List.of("--check-consistency", testBibFile, "--output-format", "txt"); ArgumentProcessor processor = new ArgumentProcessor( args.toArray(String[]::new), @@ -170,12 +172,12 @@ void checkConsistency() throws Exception { } @Test - void checkConsistencyPorcelain() throws Exception { + void checkConsistencyPorcelain() throws URISyntaxException, ParseException { Path testBib = Path.of(Objects.requireNonNull(ArgumentProcessorTest.class.getResource("origin.bib")).toURI()); String testBibFile = testBib.toAbsolutePath().toString(); // "txt" is the default output format; thus not provided here - List args = List.of("--nogui", "--check-consistency", testBibFile, "--porcelain"); + List args = List.of("--check-consistency", testBibFile, "--porcelain"); ArgumentProcessor processor = new ArgumentProcessor( args.toArray(String[]::new), diff --git a/src/test/java/org/jabref/cli/AuxCommandLineTest.java b/jabkit/src/test/java/org/jabref/cli/AuxCommandLineTest.java similarity index 97% rename from src/test/java/org/jabref/cli/AuxCommandLineTest.java rename to jabkit/src/test/java/org/jabref/cli/AuxCommandLineTest.java index 69d8734fc9d..9367a0d22b6 100644 --- a/src/test/java/org/jabref/cli/AuxCommandLineTest.java +++ b/jabkit/src/test/java/org/jabref/cli/AuxCommandLineTest.java @@ -26,7 +26,7 @@ class AuxCommandLineTest { private ImportFormatPreferences importFormatPreferences; @BeforeEach - void setUp() throws Exception { + void setUp() { importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); } diff --git a/jabkit/src/test/java/org/jabref/cli/JabKitCliOptionsTest.java b/jabkit/src/test/java/org/jabref/cli/JabKitCliOptionsTest.java new file mode 100644 index 00000000000..51933fe25ed --- /dev/null +++ b/jabkit/src/test/java/org/jabref/cli/JabKitCliOptionsTest.java @@ -0,0 +1,147 @@ +package org.jabref.cli; + +import java.util.List; + +import javafx.util.Pair; + +import org.jabref.logic.os.OS; + +import org.apache.commons.cli.ParseException; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +class JabKitCliOptionsTest { + + private final String bibtex = "@article{test, title=\"test title\"}"; + + @Test + void emptyCLILeftOversLongOptions() throws ParseException { + JabKitCliOptions cli = new JabKitCliOptions(new String[] {"--nogui", "--import=some/file", "--output=some/export/file"}); + + assertEquals(List.of(), cli.getLeftOver()); + } + + @Test + void successfulParsingOfFileImportCLILongOptions() throws ParseException { + JabKitCliOptions cli = new JabKitCliOptions(new String[] {"--nogui", "--import=some/file", "--output=some/export/file"}); + + assertEquals("some/file", cli.getFileImport()); + } + + @Test + void successfulParsingOfFileExportCLILongOptions() throws ParseException { + JabKitCliOptions cli = new JabKitCliOptions(new String[] {"--nogui", "--import=some/file", "--output=some/export/file"}); + + assertEquals("some/export/file", cli.getFileExport()); + } + + @Test + void emptyCLILeftOversShortOptions() throws ParseException { + JabKitCliOptions cli = new JabKitCliOptions(new String[] {"-n", "-i=some/file", "-o=some/export/file"}); + + assertEquals(List.of(), cli.getLeftOver()); + } + + @Test + void successfulParsingOfFileImportShortOptions() throws ParseException { + JabKitCliOptions cli = new JabKitCliOptions(new String[] {"-n", "-i=some/file", "-o=some/export/file"}); + + assertEquals("some/file", cli.getFileImport()); + } + + @Test + void successfulParsingOfFileExportShortOptions() throws ParseException { + JabKitCliOptions cli = new JabKitCliOptions(new String[] {"-n", "-i=some/file", "-o=some/export/file"}); + + assertEquals("some/export/file", cli.getFileExport()); + } + + @Test + void emptyPreferencesLeftOver() throws ParseException { + JabKitCliOptions cli = new JabKitCliOptions(new String[] {"-n", "-x=some/file"}); + + assertEquals(List.of(), cli.getLeftOver()); + } + + @Test + void successfulExportOfPreferences() throws ParseException { + JabKitCliOptions cli = new JabKitCliOptions(new String[] {"-n", "-x=some/file"}); + + assertEquals("some/file", cli.getPreferencesExport()); + } + + @Test + void emptyLeftOversCLIShortImportingBibtex() throws ParseException { + JabKitCliOptions cli = new JabKitCliOptions(new String[] {"-ib", bibtex}); + + assertEquals(List.of(), cli.getLeftOver()); + } + + @Test + void recognizesImportBibtexShort() throws ParseException { + JabKitCliOptions cli = new JabKitCliOptions(new String[] {"-ib", bibtex}); + + assertTrue(cli.isBibtexImport()); + } + + @Test + void successfulParsingOfBibtexImportShort() throws ParseException { + JabKitCliOptions cli = new JabKitCliOptions(new String[] {"-ib", bibtex}); + + assertEquals(bibtex, cli.getBibtexImport()); + } + + @Test + void emptyLeftOversCLILongImportingBibtex() throws ParseException { + JabKitCliOptions cli = new JabKitCliOptions(new String[] {"-importBibtex", bibtex}); + + assertEquals(List.of(), cli.getLeftOver()); + } + + @Test + void recognizesImportBibtexLong() throws ParseException { + JabKitCliOptions cli = new JabKitCliOptions(new String[] {"-importBibtex", bibtex}); + + assertTrue(cli.isBibtexImport()); + } + + @Test + void successfulParsingOfBibtexImportLong() throws ParseException { + JabKitCliOptions cli = new JabKitCliOptions(new String[] {"-importBibtex", bibtex}); + + assertEquals(bibtex, cli.getBibtexImport()); + } + + @Test + void alignStringTable() { + List> given = List.of( + new Pair<>("Apple", "Slice"), + new Pair<>("Bread", "Loaf"), + new Pair<>("Paper", "Sheet"), + new Pair<>("Country", "County")); + + String expected = """ + Apple : Slice + Bread : Loaf + Paper : Sheet + Country : County + """.replace("\n", OS.NEWLINE); + + assertEquals(expected, JabKitCliOptions.alignStringTable(given)); + } + + @Test + void checkConsistencyOption() throws ParseException { + JabKitCliOptions cli = new JabKitCliOptions(new String[] {"--check-consistency", "jabref-authors.bib"}); + assertTrue(cli.isCheckConsistency()); + assertEquals("jabref-authors.bib", cli.getCheckConsistency()); + } + + @Test + void checkConsistencyOutputFormatOption() throws ParseException { + JabKitCliOptions cli = new JabKitCliOptions(new String[] {"--check-consistency", "jabref-authors.bib", "--output-format", "csv"}); + assertEquals("csv", cli.getCheckConsistencyOutputFormat()); + } +} diff --git a/src/test/resources/org/jabref/cli/ArgumentProcessorTestExportMatches.bib b/jabkit/src/test/resources/org/jabref/cli/ArgumentProcessorTestExportMatches.bib similarity index 100% rename from src/test/resources/org/jabref/cli/ArgumentProcessorTestExportMatches.bib rename to jabkit/src/test/resources/org/jabref/cli/ArgumentProcessorTestExportMatches.bib diff --git a/src/test/resources/org/jabref/cli/origin.bib b/jabkit/src/test/resources/org/jabref/cli/origin.bib similarity index 100% rename from src/test/resources/org/jabref/cli/origin.bib rename to jabkit/src/test/resources/org/jabref/cli/origin.bib diff --git a/src/test/resources/org/jabref/cli/paper.aux b/jabkit/src/test/resources/org/jabref/cli/paper.aux similarity index 100% rename from src/test/resources/org/jabref/cli/paper.aux rename to jabkit/src/test/resources/org/jabref/cli/paper.aux diff --git a/jablib/build.gradle.kts b/jablib/build.gradle.kts new file mode 100644 index 00000000000..20f687459a9 --- /dev/null +++ b/jablib/build.gradle.kts @@ -0,0 +1,495 @@ +import org.gradle.api.tasks.testing.logging.TestExceptionFormat +import java.util.* + +plugins { + id("buildlogic.java-common-conventions") + + `java-library` + + id("idea") + + id("antlr") + id("com.github.edeandrea.xjc-generation") version "1.6" + + id("org.openjfx.javafxplugin") version("0.1.0") + + id("me.champeau.jmh") version "0.7.3" +} + +val pdfbox = "3.0.4" +val luceneVersion = "10.2.0" +val jaxbVersion by extra { "4.0.5" } + +dependencies { + implementation(fileTree(mapOf("dir" to("lib"), "includes" to listOf("*.jar")))) + + // We do not use [Version Catalogs](https://docs.gradle.org/current/userguide/version_catalogs.html#sec:dependency-bundles), because + // exclusions are not supported + + implementation("org.jabref:afterburner.fx:2.0.0") { + exclude( group = "org.openjfx") + } + implementation("org.jabref:easybind:2.2.1-SNAPSHOT") { + exclude(group = "org.openjfx") + } + + implementation ("org.apache.pdfbox:pdfbox:$pdfbox") { + exclude(group = "commons-logging") + } + implementation ("org.apache.pdfbox:fontbox:$pdfbox") { + exclude(group = "commons-logging") + } + implementation ("org.apache.pdfbox:xmpbox:$pdfbox") { + exclude(group = "org.junit.jupiter") + exclude(group = "commons-logging") + } + + implementation("org.apache.lucene:lucene-core:$luceneVersion") + implementation("org.apache.lucene:lucene-queryparser:$luceneVersion") + implementation("org.apache.lucene:lucene-queries:$luceneVersion") + implementation("org.apache.lucene:lucene-analysis-common:$luceneVersion") + implementation("org.apache.lucene:lucene-highlighter:$luceneVersion") + + implementation("org.apache.commons:commons-csv:1.14.0") + implementation("org.apache.commons:commons-lang3:3.17.0") + implementation("org.apache.commons:commons-text:1.13.1") + implementation("commons-logging:commons-logging:1.3.5") + + implementation("com.h2database:h2-mvstore:2.3.232") + + // required for reading write-protected PDFs - see https://github.com/JabRef/jabref/pull/942#issuecomment-209252635 + implementation("org.bouncycastle:bcprov-jdk18on:1.80") + + // region: LibreOffice + implementation("org.libreoffice:unoloader:24.8.4") + implementation("org.libreoffice:libreoffice:24.8.4") + // Required for ID generation + implementation("io.github.thibaultmeyer:cuid:2.0.3") + // endregion + + // injection framework + implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.10") + implementation("org.glassfish.hk2:hk2-api:3.1.1") + + implementation("io.github.java-diff-utils:java-diff-utils:4.15") + implementation("info.debatty:java-string-similarity:2.0.0") + + implementation("com.github.javakeyring:java-keyring:1.0.4") + + implementation("org.eclipse.jgit:org.eclipse.jgit:7.2.0.202503040940-r") + + implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.18.3") + implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.18.3") + + // required by XJC + implementation("jakarta.xml.bind:jakarta.xml.bind-api:4.0.2") + + implementation("com.fasterxml:aalto-xml:1.3.3") + + implementation("org.postgresql:postgresql:42.7.5") + + antlr("org.antlr:antlr4:4.13.2") + implementation("org.antlr:antlr4-runtime:4.13.2") + + implementation("com.google.guava:guava:33.4.8-jre") + + implementation("jakarta.annotation:jakarta.annotation-api:2.1.1") + implementation("jakarta.inject:jakarta.inject-api:2.0.1") + + // region HTTP clients + implementation("org.jsoup:jsoup:1.19.1") + implementation("com.konghq:unirest-java-core:4.4.5") + implementation("com.konghq:unirest-modules-gson:4.4.5") + implementation("org.apache.httpcomponents.client5:httpclient5:5.4.3") + // endregion + + implementation("org.slf4j:slf4j-api:2.0.17") + // route all requests to java.util.logging to SLF4J (which in turn routes to tinylog in the CLI and GUI) + implementation("org.slf4j:jul-to-slf4j:2.0.17") + // route all requests to log4j to SLF4J + implementation("org.apache.logging.log4j:log4j-to-slf4j:2.24.3") + + // required by org.jabref.generators (only) + implementation("org.tinylog:slf4j-tinylog:2.7.0") + implementation("org.tinylog:tinylog-api:2.7.0") + implementation("org.tinylog:tinylog-impl:2.7.0") + + implementation("de.undercouch:citeproc-java:3.2.0") { + exclude(group = "org.antlr") + } + + implementation("com.vladsch.flexmark:flexmark:0.64.8") + implementation("com.vladsch.flexmark:flexmark-html2md-converter:0.64.8") + + implementation("net.harawata:appdirs:1.4.0") + + implementation("org.jooq:jool:0.9.15") + + // Because of GraalVM quirks, we need to ship that. See https://github.com/jspecify/jspecify/issues/389#issuecomment-1661130973 for details + implementation("org.jspecify:jspecify:1.0.0") + + // parse plist files + implementation("com.googlecode.plist:dd-plist:1.28") + + // Parse lnk files + implementation("com.github.vatbub:mslinks:1.0.6.2") + + // YAML reading and writing + implementation("org.yaml:snakeyaml:2.4") + + // XJC related + implementation("org.glassfish.jaxb:jaxb-runtime:4.0.5") + + // region AI + implementation("dev.langchain4j:langchain4j:0.36.2") + // Even though we use jvm-openai for LLM connection, we still need this package for tokenization. + implementation("dev.langchain4j:langchain4j-open-ai:0.36.2") { + exclude(group = "com.squareup.okhttp3") + exclude(group = "com.squareup.retrofit2", module = "retrofit") + exclude(group = "org.jetbrains.kotlin") + } + implementation("dev.langchain4j:langchain4j-mistral-ai:0.36.2") { + exclude(group = "com.squareup.okhttp3") + exclude(group = "com.squareup.retrofit2", module = "retrofit") + exclude(group = "org.jetbrains.kotlin") + } + implementation("dev.langchain4j:langchain4j-google-ai-gemini:0.36.2") { + exclude(group = "com.squareup.okhttp3") + exclude(group = "com.squareup.retrofit2", module = "retrofit") + } + implementation("dev.langchain4j:langchain4j-hugging-face:0.36.2") { + exclude(group = "com.squareup.okhttp3") + exclude(group = "com.squareup.retrofit2", module = "retrofit") + exclude(group = "org.jetbrains.kotlin") + } + + implementation("org.apache.velocity:velocity-engine-core:2.4.1") + implementation(platform("ai.djl:bom:0.32.0")) + implementation("ai.djl:api") + implementation("ai.djl.huggingface:tokenizers") + implementation("ai.djl.pytorch:pytorch-model-zoo") + implementation("io.github.stefanbratanov:jvm-openai:0.11.0") + // openai depends on okhttp, which needs kotlin - see https://github.com/square/okhttp/issues/5299 for details + implementation("com.squareup.okhttp3:okhttp:4.12.0") { + exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib-jdk8") + } + // GemxFX also (transitively) depends on kotlin + implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.20") + // endregion + + implementation("commons-io:commons-io:2.19.0") + + implementation("com.github.tomtung:latex2unicode_2.13:0.3.2") { + exclude(module = "fastparse_2.13") + } + + implementation("de.rototor.snuggletex:snuggletex:1.3.0") + implementation ("de.rototor.snuggletex:snuggletex-jeuclid:1.3.0") { + exclude(group = "org.apache.xmlgraphics") + } + + // Even if("compileOnly") is used, IntelliJ always adds to module-info.java. To avoid issues during committing, we use("implementation") instead of("compileOnly") + implementation("io.github.adr:e-adr:2.0.0-SNAPSHOT") + + implementation("io.zonky.test:embedded-postgres:2.1.0") + implementation(enforcedPlatform("io.zonky.test.postgres:embedded-postgres-binaries-bom:17.4.0")) + implementation("io.zonky.test.postgres:embedded-postgres-binaries-darwin-arm64v8") + implementation("io.zonky.test.postgres:embedded-postgres-binaries-linux-arm64v8") + + testImplementation(project(":test-support")) + + // loading of .fxml files in localization tests requires JabRef's GUI classes + testImplementation(project(":jabgui")) + + testImplementation("io.github.classgraph:classgraph:4.8.179") + testImplementation("org.junit.jupiter:junit-jupiter-api:5.12.2") + testImplementation("org.junit.jupiter:junit-jupiter:5.12.2") + testImplementation("org.junit.jupiter:junit-jupiter-params:5.12.2") + testImplementation("org.junit.platform:junit-platform-launcher:1.12.1") + + testImplementation("org.mockito:mockito-core:5.17.0") + + testImplementation("org.xmlunit:xmlunit-core:2.10.0") + testImplementation("org.xmlunit:xmlunit-matchers:2.10.0") + testRuntimeOnly("com.tngtech.archunit:archunit-junit5-engine:1.4.0") + testImplementation("com.tngtech.archunit:archunit-junit5-api:1.4.0") + + testImplementation("org.hamcrest:hamcrest-library:3.0") + + // recommended by https://github.com/wiremock/wiremock/issues/2149#issuecomment-1835775954 + testImplementation("org.wiremock:wiremock-standalone:3.12.1") + + // Required for LocalizationConsistencyTest + testImplementation("org.testfx:testfx-core:4.0.16-alpha") + testImplementation("org.testfx:testfx-junit5:4.0.16-alpha") + + "xjc"("org.glassfish.jaxb:jaxb-xjc:$jaxbVersion") + "xjc"("org.glassfish.jaxb:jaxb-runtime:$jaxbVersion") +} + +javafx { + version = "24" + modules = listOf( + // properties + "javafx.base", + // javafx.scene.paint.Color; + "javafx.graphics", + + // because of afterburner.fx + "javafx.controls", + "javafx.fxml" + ) +} + +/* +jacoco { + toolVersion = "0.8.13" +} + */ + +tasks.generateGrammarSource { + maxHeapSize = "64m" + arguments = arguments + listOf("-visitor", "-long-messages") +} + +xjcGeneration { + // plugin: https://github.com/edeandrea/xjc-generation-gradle-plugin#xjc-generation-gradle-plugin + // hint by https://stackoverflow.com/questions/62776832/how-to-generate-java-classes-from-xsd-using-java-11-and-gradle#comment130555840_62776832 + defaultAdditionalXjcOptions = mapOf("encoding" to "UTF-8") + schemas { + create("citavi") { + schemaFile = "citavi/citavi.xsd" + javaPackageName = "org.jabref.logic.importer.fileformat.citavi" + } + } +} + +tasks.processResources { + filteringCharset = "UTF-8" + + filesMatching("build.properties") { + expand( + mapOf( + "version" to (project.findProperty("projVersionInfo") ?: "100.0.0"), + "year" to Calendar.getInstance().get(Calendar.YEAR).toString(), + "maintainers" to file("../MAINTAINERS") + .readLines() + .filterNot { it.startsWith("#") } + .joinToString(", "), + "azureInstrumentationKey" to (System.getenv("AzureInstrumentationKey") ?: ""), + "springerNatureAPIKey" to (System.getenv("SpringerNatureAPIKey") ?: ""), + "astrophysicsDataSystemAPIKey" to (System.getenv("AstrophysicsDataSystemAPIKey") ?: ""), + "ieeeAPIKey" to (System.getenv("IEEEAPIKey") ?: ""), + "scienceDirectApiKey" to (System.getenv("SCIENCEDIRECTAPIKEY") ?: ""), + "biodiversityHeritageApiKey" to (System.getenv("BiodiversityHeritageApiKey") ?: ""), + "semanticScholarApiKey" to (System.getenv("SemanticScholarApiKey") ?: "") + ) + ) + filteringCharset = "UTF-8" + } + + filesMatching(listOf("resources/resource/ods/meta.xml", "resources/resource/openoffice/meta.xml")) { + expand(mapOf("version" to project.version)) + } +} + +tasks.register("generateJournalListMV") { + group = "JabRef" + description = "Converts the comma-separated journal abbreviation file to a H2 MVStore" + classpath = sourceSets["main"].runtimeClasspath + mainClass.set("org.jabref.generators.JournalListMvGenerator") + javaLauncher.set(javaToolchains.launcherFor { languageVersion.set(java.toolchain.languageVersion) }) + onlyIf { + !file("build/resources/main/journals/journal-list.mv").exists() + } +} + +tasks.named("jar") { + dependsOn("generateJournalListMV") +} + +tasks.named("compileTestJava") { + dependsOn("generateJournalListMV") +} + +tasks.register("generateCitationStyleCatalog") { + group = "JabRef" + description = "Generates a catalog of all available citation styles" + classpath = sourceSets["main"].runtimeClasspath + dependsOn("processResources") + mainClass.set("org.jabref.generators.CitationStyleCatalogGenerator") + javaLauncher.set(javaToolchains.launcherFor { languageVersion.set(java.toolchain.languageVersion) }) +// onlyIf { +// !file("build/resources/main/journals/journal-list.mv").exists() +// } +} + +tasks.named("jar") { + dependsOn("generateCitationStyleCatalog") +} + +tasks.named("compileTestJava") { + dependsOn("generateCitationStyleCatalog") +} + +tasks.register("downloadLtwaFile") { + group = "JabRef" + description = "Downloads the LTWA file for journal abbreviations" + + val ltwaUrl = "https://www.issn.org/wp-content/uploads/2021/07/ltwa_20210702.csv" + val ltwaDir = file("build/resources/main/journals") + val ltwaCsvFile = ltwaDir.resolve("ltwa_20210702.csv") + + doLast { + if (!ltwaCsvFile.exists()) { + mkdir(ltwaDir) + ant.withGroovyBuilder { + "get"( + mapOf( + "src" to ltwaUrl, + "dest" to ltwaCsvFile, + "verbose" to true + ) + ) + } + logger.lifecycle("Downloaded LTWA file to $ltwaCsvFile") + } else { + logger.lifecycle("LTWA file already exists at $ltwaCsvFile") + } + } + + onlyIf { + !ltwaCsvFile.exists() + } +} + +tasks.register("generateLtwaListMV") { + group = "JabRef" + description = "Converts the LTWA CSV file to a H2 MVStore" + + classpath = sourceSets["main"].runtimeClasspath + mainClass.set("org.jabref.generators.LtwaListMvGenerator") + javaLauncher.set(javaToolchains.launcherFor { + languageVersion.set(java.toolchain.languageVersion) + }) + + dependsOn("downloadLtwaFile") + + onlyIf { + !file("build/resources/main/journals/ltwa-list.mv").exists() + } +} + +tasks.named("jar") { + dependsOn("generateLtwaListMV") +} + +tasks.named("compileTestJava") { + dependsOn("generateLtwaListMV") +} + +tasks.withType().configureEach { + options.encoding = "UTF-8" + + // Hint from https://docs.gradle.org/current/userguide/performance.html#run_the_compiler_as_a_separate_process + options.isFork = true +} + +/* +tasks.named("compileJava") { + extensions.configure("moduleOptions") { + addExports.putAll( + mapOf( + // TODO: Remove access to internal api + "javafx.controls/com.sun.javafx.scene.control" to "org.jabref", + "org.controlsfx.controls/impl.org.controlsfx.skin" to "org.jabref" + ) + ) + } +} +*/ + +tasks.javadoc { + (options as StandardJavadocDocletOptions).apply { + encoding = "UTF-8" + // version = false + // author = false + + addMultilineStringsOption("-add-exports").value = listOf( + "javafx.controls/com.sun.javafx.scene.control=org.jabref", + "org.controlsfx.controls/impl.org.controlsfx.skin=org.jabref" + ) + } +} + +tasks.test { + useJUnitPlatform { + excludeTags("DatabaseTest", "FetcherTest") + } + + extensions.configure("moduleOptions") { + // TODO: Remove this as soon as ArchUnit is modularized + runOnClasspath = true + } +} + +jmh { + warmupIterations = 5 + iterations = 10 + fork = 2 + zip64 = true +} + +tasks.register("fetcherTest") { + useJUnitPlatform { + includeTags("FetcherTest") + } + + maxParallelForks = 1 +} + +tasks.register("databaseTest") { + useJUnitPlatform { + includeTags("DatabaseTest") + } + + testLogging { + // set options for log level LIFECYCLE + events("FAILED") + exceptionFormat = TestExceptionFormat.FULL + } + + maxParallelForks = 1 +} + +/* +tasks.register('jacocoPrepare') { + doFirst { + // Ignore failures of tests + tasks.withType(Test).tap { + configureEach { + ignoreFailures = true + } + } + } +} +test.mustRunAfter jacocoPrepare +databaseTest.mustRunAfter jacocoPrepare +fetcherTest.mustRunAfter jacocoPrepare + +jacocoTestReport { + dependsOn jacocoPrepare, test, fetcherTest, databaseTest + + executionData files( + layout.buildDirectory.file('jacoco/test.exec').get().asFile, + layout.buildDirectory.file('jacoco/fetcherTest.exec').get().asFile, + layout.buildDirectory.file('jacoco/databaseTest.exec').get().asFile) + + reports { + csv.required = true + html.required = true + // coveralls plugin depends on xml format report + xml.required = true + } +} +*/ diff --git a/lib/fastparse-2.3.3.jar b/jablib/lib/fastparse-2.3.3.jar similarity index 100% rename from lib/fastparse-2.3.3.jar rename to jablib/lib/fastparse-2.3.3.jar diff --git a/lib/geny-0.6.10.jar b/jablib/lib/geny-0.6.10.jar similarity index 100% rename from lib/geny-0.6.10.jar rename to jablib/lib/geny-0.6.10.jar diff --git a/lib/icu4j-src.jar b/jablib/lib/icu4j-src.jar similarity index 100% rename from lib/icu4j-src.jar rename to jablib/lib/icu4j-src.jar diff --git a/lib/icu4j.jar b/jablib/lib/icu4j.jar similarity index 100% rename from lib/icu4j.jar rename to jablib/lib/icu4j.jar diff --git a/lib/sourcecode-0.2.3.jar b/jablib/lib/sourcecode-0.2.3.jar similarity index 100% rename from lib/sourcecode-0.2.3.jar rename to jablib/lib/sourcecode-0.2.3.jar diff --git a/src/jmh/java/org/jabref/benchmarks/Benchmarks.java b/jablib/src/jmh/java/org/jabref/benchmarks/Benchmarks.java similarity index 95% rename from src/jmh/java/org/jabref/benchmarks/Benchmarks.java rename to jablib/src/jmh/java/org/jabref/benchmarks/Benchmarks.java index 1cd8375a00d..59ded0d226f 100644 --- a/src/jmh/java/org/jabref/benchmarks/Benchmarks.java +++ b/jablib/src/jmh/java/org/jabref/benchmarks/Benchmarks.java @@ -3,7 +3,6 @@ import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; -import java.util.Collections; import java.util.List; import java.util.Random; @@ -42,7 +41,6 @@ import org.openjdk.jmh.annotations.Scope; import org.openjdk.jmh.annotations.Setup; import org.openjdk.jmh.annotations.State; -import org.openjdk.jmh.runner.RunnerException; import static org.mockito.Mockito.mock; @@ -55,7 +53,7 @@ public class Benchmarks { private String htmlConversionString; @Setup - public void init() throws Exception { + public void init() throws IOException { Injector.setModelOrService(CliPreferences.class, JabRefCliPreferences.getInstance()); Random randomizer = new Random(); @@ -82,7 +80,7 @@ private StringWriter getOutputWriter() throws IOException { StringWriter outputWriter = new StringWriter(); BibWriter bibWriter = new BibWriter(outputWriter, OS.NEWLINE); SelfContainedSaveConfiguration saveConfiguration = new SelfContainedSaveConfiguration(SaveOrder.getDefaultSaveOrder(), false, BibDatabaseWriter.SaveType.WITH_JABREF_META_DATA, false); - FieldPreferences fieldPreferences = new FieldPreferences(true, Collections.emptyList(), Collections.emptyList()); + FieldPreferences fieldPreferences = new FieldPreferences(true, List.of(), List.of()); CitationKeyPatternPreferences citationKeyPatternPreferences = mock(CitationKeyPatternPreferences.class, Answers.RETURNS_DEEP_STUBS); BibtexDatabaseWriter databaseWriter = new BibtexDatabaseWriter( @@ -103,7 +101,7 @@ public ParserResult parse() throws IOException { } @Benchmark - public String write() throws Exception { + public String write() throws IOException { return getOutputWriter().toString(); } @@ -148,7 +146,7 @@ public boolean keywordGroupContains() { return group.containsAll(database.getEntries()); } - public static void main(String[] args) throws IOException, RunnerException { + public static void main(String[] args) throws IOException { Main.main(args); } } diff --git a/buildres/abbrv.jabref.org b/jablib/src/main/abbrv.jabref.org similarity index 100% rename from buildres/abbrv.jabref.org rename to jablib/src/main/abbrv.jabref.org diff --git a/src/main/antlr4/org/jabref/bst/Bst.g4 b/jablib/src/main/antlr/org/jabref/logic/bst/Bst.g4 similarity index 97% rename from src/main/antlr4/org/jabref/bst/Bst.g4 rename to jablib/src/main/antlr/org/jabref/logic/bst/Bst.g4 index 92b96ce18df..fef6c865964 100644 --- a/src/main/antlr4/org/jabref/bst/Bst.g4 +++ b/jablib/src/main/antlr/org/jabref/logic/bst/Bst.g4 @@ -1,5 +1,9 @@ grammar Bst; +@header { +package org.jabref.logic.bst; +} + // Lexer STRINGS : 'STRINGS'; diff --git a/src/main/antlr4/org/jabref/ltwa/Ltwa.g4 b/jablib/src/main/antlr/org/jabref/logic/journals/ltwa/Ltwa.g4 similarity index 98% rename from src/main/antlr4/org/jabref/ltwa/Ltwa.g4 rename to jablib/src/main/antlr/org/jabref/logic/journals/ltwa/Ltwa.g4 index ff4a359a6c8..e516abfba2a 100644 --- a/src/main/antlr4/org/jabref/ltwa/Ltwa.g4 +++ b/jablib/src/main/antlr/org/jabref/logic/journals/ltwa/Ltwa.g4 @@ -1,6 +1,10 @@ grammar Ltwa; options { caseInsensitive=true; } +@header{ +package org.jabref.logic.journals.ltwa; +} + @lexer::members { private boolean isNextBoundary() { int lookAhead = _input.LA(1); diff --git a/src/main/antlr4/org/jabref/search/Search.g4 b/jablib/src/main/antlr/org/jabref/search/Search.g4 similarity index 98% rename from src/main/antlr4/org/jabref/search/Search.g4 rename to jablib/src/main/antlr/org/jabref/search/Search.g4 index 0a8c28c234c..ca5d3b570a8 100644 --- a/src/main/antlr4/org/jabref/search/Search.g4 +++ b/jablib/src/main/antlr/org/jabref/search/Search.g4 @@ -6,6 +6,10 @@ grammar Search; options { caseInsensitive = true; } +@header { +package org.jabref.search; +} + WS: [ \t\n\r]+ -> skip; // whitespace is ignored/skipped LPAREN: '('; diff --git a/jablib/src/main/java/module-info.java b/jablib/src/main/java/module-info.java new file mode 100644 index 00000000000..cb91d76d1f2 --- /dev/null +++ b/jablib/src/main/java/module-info.java @@ -0,0 +1,253 @@ +open module org.jabref.jablib { + exports org.jabref.model; + exports org.jabref.logic; + + exports org.jabref.search; + exports org.jabref.logic.search; + exports org.jabref.logic.search.query; + exports org.jabref.model.entry.field; + exports org.jabref.model.search; + exports org.jabref.model.search.query; + exports org.jabref.model.util; + exports org.jabref.logic.preferences; + exports org.jabref.logic.importer; + exports org.jabref.logic.bibtex; + exports org.jabref.logic.citationkeypattern; + exports org.jabref.logic.exporter; + exports org.jabref.logic.importer.fileformat; + exports org.jabref.logic.journals; + exports org.jabref.logic.l10n; + exports org.jabref.logic.net; + exports org.jabref.logic.os; + exports org.jabref.logic.quality.consistency; + exports org.jabref.logic.shared.prefs; + exports org.jabref.logic.util; + exports org.jabref.logic.util.io; + exports org.jabref.logic.xmp; + exports org.jabref.model.database; + exports org.jabref.model.entry; + exports org.jabref.model.strings; + exports org.jabref.logic.protectedterms; + exports org.jabref.logic.remote; + exports org.jabref.logic.remote.client; + exports org.jabref.logic.net.ssl; + exports org.jabref.logic.citationstyle; + exports org.jabref.architecture; + exports org.jabref.logic.journals.ltwa; + exports org.jabref.logic.shared; + exports org.jabref.model.groups; + exports org.jabref.model.groups.event; + exports org.jabref.logic.preview; + exports org.jabref.logic.ai; + exports org.jabref.logic.pdf; + exports org.jabref.model.database.event; + exports org.jabref.model.entry.event; + exports org.jabref.logic.push; + exports org.jabref.model.search.event; + exports org.jabref.model.search.matchers; + exports org.jabref.model.entry.identifier; + exports org.jabref.model.entry.types; + exports org.jabref.logic.importer.util; + exports org.jabref.logic.database; + exports org.jabref.logic.externalfiles; + exports org.jabref.logic.help; + exports org.jabref.logic.bibtex.comparator; + exports org.jabref.logic.groups; + exports org.jabref.logic.layout; + exports org.jabref.logic.openoffice.style; + exports org.jabref.model.metadata; + exports org.jabref.model.metadata.event; + exports org.jabref.logic.ai.chatting; + exports org.jabref.logic.ai.util; + exports org.jabref.logic.ai.ingestion; + exports org.jabref.logic.ai.ingestion.model; + exports org.jabref.model.ai; + exports org.jabref.logic.ai.processingstatus; + exports org.jabref.logic.ai.summarization; + exports org.jabref.logic.layout.format; + exports org.jabref.logic.auxparser; + exports org.jabref.logic.cleanup; + exports org.jabref.logic.formatter; + exports org.jabref.logic.importer.fetcher.citation.semanticscholar; + exports org.jabref.logic.formatter.bibtexfields; + exports org.jabref.model.pdf; + exports org.jabref.logic.texparser; + exports org.jabref.model.texparser; + exports org.jabref.logic.importer.fetcher; + exports org.jabref.logic.importer.fetcher.citation; + exports org.jabref.logic.importer.fileformat.pdf; + exports org.jabref.logic.integrity; + exports org.jabref.logic.formatter.casechanger; + exports org.jabref.logic.shared.exception; + exports org.jabref.logic.importer.fetcher.transformers; + exports org.jabref.logic.biblog; + exports org.jabref.model.biblog; + exports org.jabref.model.http; + exports org.jabref.logic.remote.server; + exports org.jabref.logic.util.strings; + exports org.jabref.model.openoffice; + exports org.jabref.logic.openoffice; + exports org.jabref.logic.openoffice.action; + exports org.jabref.logic.openoffice.frontend; + exports org.jabref.logic.openoffice.oocsltext; + exports org.jabref.model.openoffice.rangesort; + exports org.jabref.model.openoffice.style; + exports org.jabref.model.openoffice.uno; + exports org.jabref.model.openoffice.util; + exports org.jabref.logic.importer.plaincitation; + exports org.jabref.logic.ai.templates; + exports org.jabref.logic.bst; + exports org.jabref.model.study; + exports org.jabref.logic.shared.security; + exports org.jabref.logic.shared.event; + exports org.jabref.logic.crawler; + exports org.jabref.logic.git; + + requires javafx.base; + requires javafx.graphics; + requires afterburner.fx; + requires com.tobiasdiez.easybind; + + // for java.awt.geom.Rectangle2D required by org.jabref.logic.pdf.TextExtractor + requires java.desktop; + + // SQL + requires java.sql; + requires java.sql.rowset; + + // region: Logging + requires org.slf4j; + requires jul.to.slf4j; + requires org.apache.logging.log4j.to.slf4j; + // endregion + + // Preferences and XML + requires java.prefs; + requires com.fasterxml.aalto; + + // YAML + requires org.yaml.snakeyaml; + + // region: Annotations (@PostConstruct) + requires jakarta.annotation; + requires jakarta.inject; + // endregion + + // region: data mapping + requires jakarta.xml.bind; + requires jdk.xml.dom; + requires com.google.gson; + requires com.fasterxml.jackson.databind; + requires com.fasterxml.jackson.dataformat.yaml; + requires com.fasterxml.jackson.datatype.jsr310; + // needs to be loaded here as it's otherwise not found at runtime, related to XJC + requires org.glassfish.jaxb.runtime; + // endregion + + // dependency injection using HK2 + requires org.glassfish.hk2.api; + + // region HTTP clients + requires java.net.http; + requires jakarta.ws.rs; + requires org.apache.httpcomponents.core5.httpcore5; + requires org.jsoup; + requires unirest.java.core; + requires unirest.modules.gson; + // endregion + + // region: SQL databases + requires embedded.postgres; + requires org.tukaani.xz; + requires org.postgresql.jdbc; + // endregion + + // region: Apache Commons and other (similar) helper libraries + requires com.google.common; + requires io.github.javadiffutils; + requires java.string.similarity; + requires org.apache.commons.compress; + requires org.apache.commons.csv; + requires org.apache.commons.io; + requires org.apache.commons.lang3; + requires org.apache.commons.text; + requires org.apache.commons.logging; + // endregion + + // region: latex2unicode + requires com.github.tomtung.latex2unicode; + requires fastparse; + requires scala.library; + // endregion + + requires jbibtex; + requires citeproc.java; + + requires snuggletex.core; + + requires org.apache.pdfbox; + requires org.apache.xmpbox; + requires com.ibm.icu; + + requires flexmark; + requires flexmark.html2md.converter; + requires flexmark.util.ast; + requires flexmark.util.data; + + requires com.h2database.mvstore; + + requires java.keyring; + requires org.freedesktop.dbus; + + requires org.jooq.jool; + + // region AI + requires ai.djl.api; + requires ai.djl.pytorch_model_zoo; + requires ai.djl.tokenizers; + requires jvm.openai; + requires langchain4j; + requires langchain4j.core; + requires langchain4j.google.ai.gemini; + requires langchain4j.hugging.face; + requires langchain4j.mistral.ai; + requires langchain4j.open.ai; + uses ai.djl.engine.EngineProvider; + uses ai.djl.repository.RepositoryFactory; + uses ai.djl.repository.zoo.ZooProvider; + uses dev.langchain4j.spi.prompt.PromptTemplateFactory; + requires velocity.engine.core; + // endregion + + // region: Lucene + /* + * In case the version is updated, please also increment {@link org.jabref.model.search.LinkedFilesConstants.VERSION} to trigger reindexing. + */ + uses org.apache.lucene.codecs.lucene101.Lucene101Codec; + requires org.apache.lucene.analysis.common; + requires org.apache.lucene.core; + requires org.apache.lucene.highlighter; + requires org.apache.lucene.queryparser; + // endregion + + requires net.harawata.appdirs; + requires com.sun.jna; + requires com.sun.jna.platform; + + requires org.eclipse.jgit; + uses org.eclipse.jgit.transport.SshSessionFactory; + uses org.eclipse.jgit.lib.Signer; + + requires transitive org.jspecify; + + // region: other libraries (alphabetically) + requires cuid; + requires dd.plist; + requires io.github.adr; + // required by okhttp and some AI library + requires kotlin.stdlib; + requires mslinks; + requires org.antlr.antlr4.runtime; + requires org.libreoffice.uno; + // endregion +} diff --git a/src/main/java/org/jabref/architecture/AllowedToUseApacheCommonsLang3.java b/jablib/src/main/java/org/jabref/architecture/AllowedToUseApacheCommonsLang3.java similarity index 100% rename from src/main/java/org/jabref/architecture/AllowedToUseApacheCommonsLang3.java rename to jablib/src/main/java/org/jabref/architecture/AllowedToUseApacheCommonsLang3.java diff --git a/src/main/java/org/jabref/architecture/AllowedToUseAwt.java b/jablib/src/main/java/org/jabref/architecture/AllowedToUseAwt.java similarity index 100% rename from src/main/java/org/jabref/architecture/AllowedToUseAwt.java rename to jablib/src/main/java/org/jabref/architecture/AllowedToUseAwt.java diff --git a/src/main/java/org/jabref/architecture/AllowedToUseClassGetResource.java b/jablib/src/main/java/org/jabref/architecture/AllowedToUseClassGetResource.java similarity index 100% rename from src/main/java/org/jabref/architecture/AllowedToUseClassGetResource.java rename to jablib/src/main/java/org/jabref/architecture/AllowedToUseClassGetResource.java diff --git a/src/main/java/org/jabref/architecture/AllowedToUseLogic.java b/jablib/src/main/java/org/jabref/architecture/AllowedToUseLogic.java similarity index 100% rename from src/main/java/org/jabref/architecture/AllowedToUseLogic.java rename to jablib/src/main/java/org/jabref/architecture/AllowedToUseLogic.java diff --git a/src/main/java/org/jabref/architecture/AllowedToUseStandardStreams.java b/jablib/src/main/java/org/jabref/architecture/AllowedToUseStandardStreams.java similarity index 100% rename from src/main/java/org/jabref/architecture/AllowedToUseStandardStreams.java rename to jablib/src/main/java/org/jabref/architecture/AllowedToUseStandardStreams.java diff --git a/src/main/java/org/jabref/architecture/AllowedToUseSwing.java b/jablib/src/main/java/org/jabref/architecture/AllowedToUseSwing.java similarity index 100% rename from src/main/java/org/jabref/architecture/AllowedToUseSwing.java rename to jablib/src/main/java/org/jabref/architecture/AllowedToUseSwing.java diff --git a/src/main/java/org/jabref/logic/citationstyle/CitationStyleCatalogGenerator.java b/jablib/src/main/java/org/jabref/generators/CitationStyleCatalogGenerator.java similarity index 93% rename from src/main/java/org/jabref/logic/citationstyle/CitationStyleCatalogGenerator.java rename to jablib/src/main/java/org/jabref/generators/CitationStyleCatalogGenerator.java index acd1a0c5cec..3c101d1e0b6 100644 --- a/src/main/java/org/jabref/logic/citationstyle/CitationStyleCatalogGenerator.java +++ b/jablib/src/main/java/org/jabref/generators/CitationStyleCatalogGenerator.java @@ -1,4 +1,4 @@ -package org.jabref.logic.citationstyle; +package org.jabref.generators; import java.io.IOException; import java.net.URI; @@ -12,6 +12,8 @@ import java.util.stream.Stream; import org.jabref.architecture.AllowedToUseClassGetResource; +import org.jabref.logic.citationstyle.CSLStyleUtils; +import org.jabref.logic.citationstyle.CitationStyle; import com.fasterxml.jackson.databind.ObjectMapper; import org.slf4j.Logger; @@ -53,7 +55,7 @@ public static void generateCitationStyleCatalog() { } private static List discoverStyles(Path path) throws IOException { - try (Stream stream = Files.find(path, 1, (file, attr) -> file.toString().endsWith("csl"))) { + try (Stream stream = Files.find(path, 1, (file, _) -> file.toString().endsWith("csl"))) { return stream.map(Path::getFileName) .map(Path::toString) .map(CSLStyleUtils::createCitationStyleFromFile) diff --git a/src/main/java/org/jabref/cli/JournalListMvGenerator.java b/jablib/src/main/java/org/jabref/generators/JournalListMvGenerator.java similarity index 96% rename from src/main/java/org/jabref/cli/JournalListMvGenerator.java rename to jablib/src/main/java/org/jabref/generators/JournalListMvGenerator.java index dad187dc81a..3ff6ad50d2b 100644 --- a/src/main/java/org/jabref/cli/JournalListMvGenerator.java +++ b/jablib/src/main/java/org/jabref/generators/JournalListMvGenerator.java @@ -1,4 +1,4 @@ -package org.jabref.cli; +package org.jabref.generators; import java.io.IOException; import java.nio.file.DirectoryStream; @@ -21,7 +21,7 @@ public class JournalListMvGenerator { public static void main(String[] args) throws IOException { boolean verbose = (args.length == 1) && ("--verbose".equals(args[0])); - Path abbreviationsDirectory = Path.of("buildres", "abbrv.jabref.org", "journals"); + Path abbreviationsDirectory = Path.of("src", "main", "abbrv.jabref.org", "journals"); if (!Files.exists(abbreviationsDirectory)) { System.out.println("Path " + abbreviationsDirectory.toAbsolutePath() + " does not exist"); System.exit(0); diff --git a/src/main/java/org/jabref/cli/LtwaListMvGenerator.java b/jablib/src/main/java/org/jabref/generators/LtwaListMvGenerator.java similarity index 99% rename from src/main/java/org/jabref/cli/LtwaListMvGenerator.java rename to jablib/src/main/java/org/jabref/generators/LtwaListMvGenerator.java index a799b0eaf75..827f94cf55a 100644 --- a/src/main/java/org/jabref/cli/LtwaListMvGenerator.java +++ b/jablib/src/main/java/org/jabref/generators/LtwaListMvGenerator.java @@ -1,4 +1,4 @@ -package org.jabref.cli; +package org.jabref.generators; import java.io.IOException; import java.net.URI; diff --git a/jablib/src/main/java/org/jabref/generators/package-info.java b/jablib/src/main/java/org/jabref/generators/package-info.java new file mode 100644 index 00000000000..b2b5e21c06a --- /dev/null +++ b/jablib/src/main/java/org/jabref/generators/package-info.java @@ -0,0 +1,4 @@ +/// TODO: This package should maybe move out to a seperate build support module +/// However, this is hard, thus we leave here +/// Benefit of moving away: no tinylog dependency here anymore. +package org.jabref.generators; diff --git a/src/main/java/org/jabref/logic/FilePreferences.java b/jablib/src/main/java/org/jabref/logic/FilePreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/FilePreferences.java rename to jablib/src/main/java/org/jabref/logic/FilePreferences.java diff --git a/src/main/java/org/jabref/logic/InternalPreferences.java b/jablib/src/main/java/org/jabref/logic/InternalPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/InternalPreferences.java rename to jablib/src/main/java/org/jabref/logic/InternalPreferences.java diff --git a/src/main/java/org/jabref/logic/JabRefException.java b/jablib/src/main/java/org/jabref/logic/JabRefException.java similarity index 100% rename from src/main/java/org/jabref/logic/JabRefException.java rename to jablib/src/main/java/org/jabref/logic/JabRefException.java diff --git a/src/main/java/org/jabref/logic/LibraryPreferences.java b/jablib/src/main/java/org/jabref/logic/LibraryPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/LibraryPreferences.java rename to jablib/src/main/java/org/jabref/logic/LibraryPreferences.java diff --git a/src/main/java/org/jabref/logic/UiCommand.java b/jablib/src/main/java/org/jabref/logic/UiCommand.java similarity index 100% rename from src/main/java/org/jabref/logic/UiCommand.java rename to jablib/src/main/java/org/jabref/logic/UiCommand.java diff --git a/src/main/java/org/jabref/logic/WatchServiceUnavailableException.java b/jablib/src/main/java/org/jabref/logic/WatchServiceUnavailableException.java similarity index 100% rename from src/main/java/org/jabref/logic/WatchServiceUnavailableException.java rename to jablib/src/main/java/org/jabref/logic/WatchServiceUnavailableException.java diff --git a/src/main/java/org/jabref/logic/ai/AiDefaultPreferences.java b/jablib/src/main/java/org/jabref/logic/ai/AiDefaultPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/AiDefaultPreferences.java rename to jablib/src/main/java/org/jabref/logic/ai/AiDefaultPreferences.java diff --git a/src/main/java/org/jabref/logic/ai/AiPreferences.java b/jablib/src/main/java/org/jabref/logic/ai/AiPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/AiPreferences.java rename to jablib/src/main/java/org/jabref/logic/ai/AiPreferences.java diff --git a/src/main/java/org/jabref/logic/ai/AiService.java b/jablib/src/main/java/org/jabref/logic/ai/AiService.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/AiService.java rename to jablib/src/main/java/org/jabref/logic/ai/AiService.java diff --git a/src/main/java/org/jabref/logic/ai/chatting/AiChatLogic.java b/jablib/src/main/java/org/jabref/logic/ai/chatting/AiChatLogic.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/chatting/AiChatLogic.java rename to jablib/src/main/java/org/jabref/logic/ai/chatting/AiChatLogic.java diff --git a/src/main/java/org/jabref/logic/ai/chatting/AiChatService.java b/jablib/src/main/java/org/jabref/logic/ai/chatting/AiChatService.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/chatting/AiChatService.java rename to jablib/src/main/java/org/jabref/logic/ai/chatting/AiChatService.java diff --git a/src/main/java/org/jabref/logic/ai/chatting/ChatHistoryService.java b/jablib/src/main/java/org/jabref/logic/ai/chatting/ChatHistoryService.java similarity index 98% rename from src/main/java/org/jabref/logic/ai/chatting/ChatHistoryService.java rename to jablib/src/main/java/org/jabref/logic/ai/chatting/ChatHistoryService.java index 1ab3cd4fe5b..e3a7fa55d08 100644 --- a/src/main/java/org/jabref/logic/ai/chatting/ChatHistoryService.java +++ b/jablib/src/main/java/org/jabref/logic/ai/chatting/ChatHistoryService.java @@ -9,7 +9,6 @@ import javafx.collections.FXCollections; import javafx.collections.ObservableList; -import org.jabref.gui.StateManager; import org.jabref.logic.ai.chatting.chathistory.ChatHistoryStorage; import org.jabref.logic.ai.util.CitationKeyCheck; import org.jabref.logic.citationkeypattern.CitationKeyGenerator; @@ -29,7 +28,7 @@ /** * Main class for getting and storing chat history for entries and groups. * Use this class in logic and UI. - * It currently resides in the UI package because it relies on the {@link StateManager} to get the open databases and to find the correct {@link BibDatabaseContext} based on an entry. + * It currently resides in the UI package because it relies on the {@link org.jabref.gui.StateManager} to get the open databases and to find the correct {@link BibDatabaseContext} based on an entry. *

* The returned chat history is a {@link ObservableList}. So chat history exists for every possible * {@link BibEntry} and {@link AbstractGroup}. The chat history is stored in runtime. diff --git a/src/main/java/org/jabref/logic/ai/chatting/JabRefContentInjector.java b/jablib/src/main/java/org/jabref/logic/ai/chatting/JabRefContentInjector.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/chatting/JabRefContentInjector.java rename to jablib/src/main/java/org/jabref/logic/ai/chatting/JabRefContentInjector.java diff --git a/src/main/java/org/jabref/logic/ai/chatting/chathistory/ChatHistoryStorage.java b/jablib/src/main/java/org/jabref/logic/ai/chatting/chathistory/ChatHistoryStorage.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/chatting/chathistory/ChatHistoryStorage.java rename to jablib/src/main/java/org/jabref/logic/ai/chatting/chathistory/ChatHistoryStorage.java diff --git a/src/main/java/org/jabref/logic/ai/chatting/chathistory/storages/MVStoreChatHistoryStorage.java b/jablib/src/main/java/org/jabref/logic/ai/chatting/chathistory/storages/MVStoreChatHistoryStorage.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/chatting/chathistory/storages/MVStoreChatHistoryStorage.java rename to jablib/src/main/java/org/jabref/logic/ai/chatting/chathistory/storages/MVStoreChatHistoryStorage.java diff --git a/src/main/java/org/jabref/logic/ai/chatting/model/Gpt4AllModel.java b/jablib/src/main/java/org/jabref/logic/ai/chatting/model/Gpt4AllModel.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/chatting/model/Gpt4AllModel.java rename to jablib/src/main/java/org/jabref/logic/ai/chatting/model/Gpt4AllModel.java diff --git a/src/main/java/org/jabref/logic/ai/chatting/model/JabRefChatLanguageModel.java b/jablib/src/main/java/org/jabref/logic/ai/chatting/model/JabRefChatLanguageModel.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/chatting/model/JabRefChatLanguageModel.java rename to jablib/src/main/java/org/jabref/logic/ai/chatting/model/JabRefChatLanguageModel.java diff --git a/src/main/java/org/jabref/logic/ai/chatting/model/JvmOpenAiChatLanguageModel.java b/jablib/src/main/java/org/jabref/logic/ai/chatting/model/JvmOpenAiChatLanguageModel.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/chatting/model/JvmOpenAiChatLanguageModel.java rename to jablib/src/main/java/org/jabref/logic/ai/chatting/model/JvmOpenAiChatLanguageModel.java diff --git a/src/main/java/org/jabref/logic/ai/ingestion/FileEmbeddingsManager.java b/jablib/src/main/java/org/jabref/logic/ai/ingestion/FileEmbeddingsManager.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/ingestion/FileEmbeddingsManager.java rename to jablib/src/main/java/org/jabref/logic/ai/ingestion/FileEmbeddingsManager.java diff --git a/src/main/java/org/jabref/logic/ai/ingestion/FileToDocument.java b/jablib/src/main/java/org/jabref/logic/ai/ingestion/FileToDocument.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/ingestion/FileToDocument.java rename to jablib/src/main/java/org/jabref/logic/ai/ingestion/FileToDocument.java diff --git a/src/main/java/org/jabref/logic/ai/ingestion/FullyIngestedDocumentsTracker.java b/jablib/src/main/java/org/jabref/logic/ai/ingestion/FullyIngestedDocumentsTracker.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/ingestion/FullyIngestedDocumentsTracker.java rename to jablib/src/main/java/org/jabref/logic/ai/ingestion/FullyIngestedDocumentsTracker.java diff --git a/src/main/java/org/jabref/logic/ai/ingestion/GenerateEmbeddingsForSeveralTask.java b/jablib/src/main/java/org/jabref/logic/ai/ingestion/GenerateEmbeddingsForSeveralTask.java similarity index 97% rename from src/main/java/org/jabref/logic/ai/ingestion/GenerateEmbeddingsForSeveralTask.java rename to jablib/src/main/java/org/jabref/logic/ai/ingestion/GenerateEmbeddingsForSeveralTask.java index 6427a08de49..9d74dd8fa3c 100644 --- a/src/main/java/org/jabref/logic/ai/ingestion/GenerateEmbeddingsForSeveralTask.java +++ b/jablib/src/main/java/org/jabref/logic/ai/ingestion/GenerateEmbeddingsForSeveralTask.java @@ -2,6 +2,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import javafx.beans.property.ReadOnlyBooleanProperty; @@ -72,7 +73,7 @@ private void configure(StringProperty name) { } @Override - public Void call() throws Exception { + public Void call() throws ExecutionException, InterruptedException { LOGGER.debug("Starting embeddings generation of several files for {}", groupName.get()); List, String>> futures = new ArrayList<>(); diff --git a/src/main/java/org/jabref/logic/ai/ingestion/GenerateEmbeddingsTask.java b/jablib/src/main/java/org/jabref/logic/ai/ingestion/GenerateEmbeddingsTask.java similarity index 99% rename from src/main/java/org/jabref/logic/ai/ingestion/GenerateEmbeddingsTask.java rename to jablib/src/main/java/org/jabref/logic/ai/ingestion/GenerateEmbeddingsTask.java index 219217be8bc..499e5e90ae5 100644 --- a/src/main/java/org/jabref/logic/ai/ingestion/GenerateEmbeddingsTask.java +++ b/jablib/src/main/java/org/jabref/logic/ai/ingestion/GenerateEmbeddingsTask.java @@ -59,7 +59,7 @@ private void configure() { } @Override - public Void call() throws Exception { + public Void call() { LOGGER.debug("Starting embeddings generation task for file \"{}\"", linkedFile.getLink()); try { diff --git a/src/main/java/org/jabref/logic/ai/ingestion/IngestionService.java b/jablib/src/main/java/org/jabref/logic/ai/ingestion/IngestionService.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/ingestion/IngestionService.java rename to jablib/src/main/java/org/jabref/logic/ai/ingestion/IngestionService.java diff --git a/src/main/java/org/jabref/logic/ai/ingestion/LowLevelIngestor.java b/jablib/src/main/java/org/jabref/logic/ai/ingestion/LowLevelIngestor.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/ingestion/LowLevelIngestor.java rename to jablib/src/main/java/org/jabref/logic/ai/ingestion/LowLevelIngestor.java diff --git a/src/main/java/org/jabref/logic/ai/ingestion/MVStoreEmbeddingStore.java b/jablib/src/main/java/org/jabref/logic/ai/ingestion/MVStoreEmbeddingStore.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/ingestion/MVStoreEmbeddingStore.java rename to jablib/src/main/java/org/jabref/logic/ai/ingestion/MVStoreEmbeddingStore.java diff --git a/src/main/java/org/jabref/logic/ai/ingestion/model/DeepJavaEmbeddingModel.java b/jablib/src/main/java/org/jabref/logic/ai/ingestion/model/DeepJavaEmbeddingModel.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/ingestion/model/DeepJavaEmbeddingModel.java rename to jablib/src/main/java/org/jabref/logic/ai/ingestion/model/DeepJavaEmbeddingModel.java diff --git a/src/main/java/org/jabref/logic/ai/ingestion/model/JabRefEmbeddingModel.java b/jablib/src/main/java/org/jabref/logic/ai/ingestion/model/JabRefEmbeddingModel.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/ingestion/model/JabRefEmbeddingModel.java rename to jablib/src/main/java/org/jabref/logic/ai/ingestion/model/JabRefEmbeddingModel.java diff --git a/src/main/java/org/jabref/logic/ai/ingestion/model/UpdateEmbeddingModelTask.java b/jablib/src/main/java/org/jabref/logic/ai/ingestion/model/UpdateEmbeddingModelTask.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/ingestion/model/UpdateEmbeddingModelTask.java rename to jablib/src/main/java/org/jabref/logic/ai/ingestion/model/UpdateEmbeddingModelTask.java diff --git a/src/main/java/org/jabref/logic/ai/ingestion/storages/MVStoreFullyIngestedDocumentsTracker.java b/jablib/src/main/java/org/jabref/logic/ai/ingestion/storages/MVStoreFullyIngestedDocumentsTracker.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/ingestion/storages/MVStoreFullyIngestedDocumentsTracker.java rename to jablib/src/main/java/org/jabref/logic/ai/ingestion/storages/MVStoreFullyIngestedDocumentsTracker.java diff --git a/src/main/java/org/jabref/logic/ai/processingstatus/ProcessingInfo.java b/jablib/src/main/java/org/jabref/logic/ai/processingstatus/ProcessingInfo.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/processingstatus/ProcessingInfo.java rename to jablib/src/main/java/org/jabref/logic/ai/processingstatus/ProcessingInfo.java diff --git a/src/main/java/org/jabref/logic/ai/processingstatus/ProcessingState.java b/jablib/src/main/java/org/jabref/logic/ai/processingstatus/ProcessingState.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/processingstatus/ProcessingState.java rename to jablib/src/main/java/org/jabref/logic/ai/processingstatus/ProcessingState.java diff --git a/src/main/java/org/jabref/logic/ai/summarization/GenerateSummaryForSeveralTask.java b/jablib/src/main/java/org/jabref/logic/ai/summarization/GenerateSummaryForSeveralTask.java similarity index 97% rename from src/main/java/org/jabref/logic/ai/summarization/GenerateSummaryForSeveralTask.java rename to jablib/src/main/java/org/jabref/logic/ai/summarization/GenerateSummaryForSeveralTask.java index 849040d4de0..12e6f17b042 100644 --- a/src/main/java/org/jabref/logic/ai/summarization/GenerateSummaryForSeveralTask.java +++ b/jablib/src/main/java/org/jabref/logic/ai/summarization/GenerateSummaryForSeveralTask.java @@ -2,6 +2,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import javafx.beans.property.ReadOnlyBooleanProperty; @@ -84,7 +85,7 @@ private void configure() { } @Override - public Void call() throws Exception { + public Void call() throws ExecutionException, InterruptedException { LOGGER.debug("Starting summaries generation of several files for {}", groupName.get()); List, BibEntry>> futures = new ArrayList<>(); diff --git a/src/main/java/org/jabref/logic/ai/summarization/GenerateSummaryTask.java b/jablib/src/main/java/org/jabref/logic/ai/summarization/GenerateSummaryTask.java similarity index 99% rename from src/main/java/org/jabref/logic/ai/summarization/GenerateSummaryTask.java rename to jablib/src/main/java/org/jabref/logic/ai/summarization/GenerateSummaryTask.java index 57fa54d405f..cc33af631dc 100644 --- a/src/main/java/org/jabref/logic/ai/summarization/GenerateSummaryTask.java +++ b/jablib/src/main/java/org/jabref/logic/ai/summarization/GenerateSummaryTask.java @@ -86,7 +86,7 @@ private void configure() { } @Override - public Summary call() throws Exception { + public Summary call() { LOGGER.debug("Starting summarization task for entry {}", citationKey); Optional

savedSummary = Optional.empty(); diff --git a/src/main/java/org/jabref/logic/ai/summarization/SummariesService.java b/jablib/src/main/java/org/jabref/logic/ai/summarization/SummariesService.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/summarization/SummariesService.java rename to jablib/src/main/java/org/jabref/logic/ai/summarization/SummariesService.java diff --git a/src/main/java/org/jabref/logic/ai/summarization/SummariesStorage.java b/jablib/src/main/java/org/jabref/logic/ai/summarization/SummariesStorage.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/summarization/SummariesStorage.java rename to jablib/src/main/java/org/jabref/logic/ai/summarization/SummariesStorage.java diff --git a/src/main/java/org/jabref/logic/ai/summarization/Summary.java b/jablib/src/main/java/org/jabref/logic/ai/summarization/Summary.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/summarization/Summary.java rename to jablib/src/main/java/org/jabref/logic/ai/summarization/Summary.java diff --git a/src/main/java/org/jabref/logic/ai/summarization/storages/MVStoreSummariesStorage.java b/jablib/src/main/java/org/jabref/logic/ai/summarization/storages/MVStoreSummariesStorage.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/summarization/storages/MVStoreSummariesStorage.java rename to jablib/src/main/java/org/jabref/logic/ai/summarization/storages/MVStoreSummariesStorage.java diff --git a/src/main/java/org/jabref/logic/ai/templates/AiTemplate.java b/jablib/src/main/java/org/jabref/logic/ai/templates/AiTemplate.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/templates/AiTemplate.java rename to jablib/src/main/java/org/jabref/logic/ai/templates/AiTemplate.java diff --git a/src/main/java/org/jabref/logic/ai/templates/PaperExcerpt.java b/jablib/src/main/java/org/jabref/logic/ai/templates/PaperExcerpt.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/templates/PaperExcerpt.java rename to jablib/src/main/java/org/jabref/logic/ai/templates/PaperExcerpt.java diff --git a/src/main/java/org/jabref/logic/ai/templates/TemplatesService.java b/jablib/src/main/java/org/jabref/logic/ai/templates/TemplatesService.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/templates/TemplatesService.java rename to jablib/src/main/java/org/jabref/logic/ai/templates/TemplatesService.java diff --git a/src/main/java/org/jabref/logic/ai/util/CitationKeyCheck.java b/jablib/src/main/java/org/jabref/logic/ai/util/CitationKeyCheck.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/util/CitationKeyCheck.java rename to jablib/src/main/java/org/jabref/logic/ai/util/CitationKeyCheck.java diff --git a/src/main/java/org/jabref/logic/ai/util/ErrorMessage.java b/jablib/src/main/java/org/jabref/logic/ai/util/ErrorMessage.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/util/ErrorMessage.java rename to jablib/src/main/java/org/jabref/logic/ai/util/ErrorMessage.java diff --git a/src/main/java/org/jabref/logic/ai/util/MVStoreBase.java b/jablib/src/main/java/org/jabref/logic/ai/util/MVStoreBase.java similarity index 100% rename from src/main/java/org/jabref/logic/ai/util/MVStoreBase.java rename to jablib/src/main/java/org/jabref/logic/ai/util/MVStoreBase.java diff --git a/src/main/java/org/jabref/logic/auxparser/AuxParser.java b/jablib/src/main/java/org/jabref/logic/auxparser/AuxParser.java similarity index 100% rename from src/main/java/org/jabref/logic/auxparser/AuxParser.java rename to jablib/src/main/java/org/jabref/logic/auxparser/AuxParser.java diff --git a/src/main/java/org/jabref/logic/auxparser/AuxParserResult.java b/jablib/src/main/java/org/jabref/logic/auxparser/AuxParserResult.java similarity index 100% rename from src/main/java/org/jabref/logic/auxparser/AuxParserResult.java rename to jablib/src/main/java/org/jabref/logic/auxparser/AuxParserResult.java diff --git a/src/main/java/org/jabref/logic/auxparser/AuxParserStatisticsProvider.java b/jablib/src/main/java/org/jabref/logic/auxparser/AuxParserStatisticsProvider.java similarity index 100% rename from src/main/java/org/jabref/logic/auxparser/AuxParserStatisticsProvider.java rename to jablib/src/main/java/org/jabref/logic/auxparser/AuxParserStatisticsProvider.java diff --git a/src/main/java/org/jabref/logic/auxparser/DefaultAuxParser.java b/jablib/src/main/java/org/jabref/logic/auxparser/DefaultAuxParser.java similarity index 100% rename from src/main/java/org/jabref/logic/auxparser/DefaultAuxParser.java rename to jablib/src/main/java/org/jabref/logic/auxparser/DefaultAuxParser.java diff --git a/src/main/java/org/jabref/logic/biblog/BibLogPathResolver.java b/jablib/src/main/java/org/jabref/logic/biblog/BibLogPathResolver.java similarity index 100% rename from src/main/java/org/jabref/logic/biblog/BibLogPathResolver.java rename to jablib/src/main/java/org/jabref/logic/biblog/BibLogPathResolver.java diff --git a/src/main/java/org/jabref/logic/biblog/BibWarningToIntegrityMessageConverter.java b/jablib/src/main/java/org/jabref/logic/biblog/BibWarningToIntegrityMessageConverter.java similarity index 100% rename from src/main/java/org/jabref/logic/biblog/BibWarningToIntegrityMessageConverter.java rename to jablib/src/main/java/org/jabref/logic/biblog/BibWarningToIntegrityMessageConverter.java diff --git a/src/main/java/org/jabref/logic/biblog/BibtexLogParser.java b/jablib/src/main/java/org/jabref/logic/biblog/BibtexLogParser.java similarity index 100% rename from src/main/java/org/jabref/logic/biblog/BibtexLogParser.java rename to jablib/src/main/java/org/jabref/logic/biblog/BibtexLogParser.java diff --git a/src/main/java/org/jabref/logic/bibtex/BibEntryWriter.java b/jablib/src/main/java/org/jabref/logic/bibtex/BibEntryWriter.java similarity index 100% rename from src/main/java/org/jabref/logic/bibtex/BibEntryWriter.java rename to jablib/src/main/java/org/jabref/logic/bibtex/BibEntryWriter.java diff --git a/src/main/java/org/jabref/logic/bibtex/FieldPreferences.java b/jablib/src/main/java/org/jabref/logic/bibtex/FieldPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/bibtex/FieldPreferences.java rename to jablib/src/main/java/org/jabref/logic/bibtex/FieldPreferences.java diff --git a/src/main/java/org/jabref/logic/bibtex/FieldWriter.java b/jablib/src/main/java/org/jabref/logic/bibtex/FieldWriter.java similarity index 100% rename from src/main/java/org/jabref/logic/bibtex/FieldWriter.java rename to jablib/src/main/java/org/jabref/logic/bibtex/FieldWriter.java diff --git a/src/main/java/org/jabref/logic/bibtex/FileFieldWriter.java b/jablib/src/main/java/org/jabref/logic/bibtex/FileFieldWriter.java similarity index 95% rename from src/main/java/org/jabref/logic/bibtex/FileFieldWriter.java rename to jablib/src/main/java/org/jabref/logic/bibtex/FileFieldWriter.java index 2a3c9ef665a..7cce3a19440 100644 --- a/src/main/java/org/jabref/logic/bibtex/FileFieldWriter.java +++ b/jablib/src/main/java/org/jabref/logic/bibtex/FileFieldWriter.java @@ -1,7 +1,6 @@ package org.jabref.logic.bibtex; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @@ -28,7 +27,7 @@ public static String getStringRepresentation(List fields) { } public static String getStringRepresentation(LinkedFile field) { - return getStringRepresentation(Collections.singletonList(field)); + return getStringRepresentation(List.of(field)); } /** diff --git a/src/main/java/org/jabref/logic/bibtex/InvalidFieldValueException.java b/jablib/src/main/java/org/jabref/logic/bibtex/InvalidFieldValueException.java similarity index 100% rename from src/main/java/org/jabref/logic/bibtex/InvalidFieldValueException.java rename to jablib/src/main/java/org/jabref/logic/bibtex/InvalidFieldValueException.java diff --git a/src/main/java/org/jabref/logic/bibtex/TypedBibEntry.java b/jablib/src/main/java/org/jabref/logic/bibtex/TypedBibEntry.java similarity index 100% rename from src/main/java/org/jabref/logic/bibtex/TypedBibEntry.java rename to jablib/src/main/java/org/jabref/logic/bibtex/TypedBibEntry.java diff --git a/src/main/java/org/jabref/logic/bibtex/comparator/BibDatabaseDiff.java b/jablib/src/main/java/org/jabref/logic/bibtex/comparator/BibDatabaseDiff.java similarity index 100% rename from src/main/java/org/jabref/logic/bibtex/comparator/BibDatabaseDiff.java rename to jablib/src/main/java/org/jabref/logic/bibtex/comparator/BibDatabaseDiff.java diff --git a/src/main/java/org/jabref/logic/bibtex/comparator/BibEntryCompare.java b/jablib/src/main/java/org/jabref/logic/bibtex/comparator/BibEntryCompare.java similarity index 100% rename from src/main/java/org/jabref/logic/bibtex/comparator/BibEntryCompare.java rename to jablib/src/main/java/org/jabref/logic/bibtex/comparator/BibEntryCompare.java diff --git a/src/main/java/org/jabref/logic/bibtex/comparator/BibEntryDiff.java b/jablib/src/main/java/org/jabref/logic/bibtex/comparator/BibEntryDiff.java similarity index 100% rename from src/main/java/org/jabref/logic/bibtex/comparator/BibEntryDiff.java rename to jablib/src/main/java/org/jabref/logic/bibtex/comparator/BibEntryDiff.java diff --git a/src/main/java/org/jabref/logic/bibtex/comparator/BibStringDiff.java b/jablib/src/main/java/org/jabref/logic/bibtex/comparator/BibStringDiff.java similarity index 98% rename from src/main/java/org/jabref/logic/bibtex/comparator/BibStringDiff.java rename to jablib/src/main/java/org/jabref/logic/bibtex/comparator/BibStringDiff.java index 65fe125a765..f133e07dea7 100644 --- a/src/main/java/org/jabref/logic/bibtex/comparator/BibStringDiff.java +++ b/jablib/src/main/java/org/jabref/logic/bibtex/comparator/BibStringDiff.java @@ -1,7 +1,6 @@ package org.jabref.logic.bibtex.comparator; import java.util.ArrayList; -import java.util.Collections; import java.util.HashSet; import java.util.Iterator; import java.util.List; @@ -24,7 +23,7 @@ public class BibStringDiff { public static List compare(BibDatabase originalDatabase, BibDatabase newDatabase) { if (originalDatabase.hasNoStrings() && newDatabase.hasNoStrings()) { - return Collections.emptyList(); + return List.of(); } List differences = new ArrayList<>(); diff --git a/src/main/java/org/jabref/logic/bibtex/comparator/BibtexStringComparator.java b/jablib/src/main/java/org/jabref/logic/bibtex/comparator/BibtexStringComparator.java similarity index 100% rename from src/main/java/org/jabref/logic/bibtex/comparator/BibtexStringComparator.java rename to jablib/src/main/java/org/jabref/logic/bibtex/comparator/BibtexStringComparator.java diff --git a/src/main/java/org/jabref/logic/bibtex/comparator/CrossRefEntryComparator.java b/jablib/src/main/java/org/jabref/logic/bibtex/comparator/CrossRefEntryComparator.java similarity index 100% rename from src/main/java/org/jabref/logic/bibtex/comparator/CrossRefEntryComparator.java rename to jablib/src/main/java/org/jabref/logic/bibtex/comparator/CrossRefEntryComparator.java diff --git a/src/main/java/org/jabref/logic/bibtex/comparator/EntryComparator.java b/jablib/src/main/java/org/jabref/logic/bibtex/comparator/EntryComparator.java similarity index 100% rename from src/main/java/org/jabref/logic/bibtex/comparator/EntryComparator.java rename to jablib/src/main/java/org/jabref/logic/bibtex/comparator/EntryComparator.java diff --git a/src/main/java/org/jabref/logic/bibtex/comparator/FieldComparator.java b/jablib/src/main/java/org/jabref/logic/bibtex/comparator/FieldComparator.java similarity index 100% rename from src/main/java/org/jabref/logic/bibtex/comparator/FieldComparator.java rename to jablib/src/main/java/org/jabref/logic/bibtex/comparator/FieldComparator.java diff --git a/src/main/java/org/jabref/logic/bibtex/comparator/FieldComparatorStack.java b/jablib/src/main/java/org/jabref/logic/bibtex/comparator/FieldComparatorStack.java similarity index 100% rename from src/main/java/org/jabref/logic/bibtex/comparator/FieldComparatorStack.java rename to jablib/src/main/java/org/jabref/logic/bibtex/comparator/FieldComparatorStack.java diff --git a/src/main/java/org/jabref/logic/bibtex/comparator/GroupDiff.java b/jablib/src/main/java/org/jabref/logic/bibtex/comparator/GroupDiff.java similarity index 100% rename from src/main/java/org/jabref/logic/bibtex/comparator/GroupDiff.java rename to jablib/src/main/java/org/jabref/logic/bibtex/comparator/GroupDiff.java diff --git a/src/main/java/org/jabref/logic/bibtex/comparator/IdComparator.java b/jablib/src/main/java/org/jabref/logic/bibtex/comparator/IdComparator.java similarity index 100% rename from src/main/java/org/jabref/logic/bibtex/comparator/IdComparator.java rename to jablib/src/main/java/org/jabref/logic/bibtex/comparator/IdComparator.java diff --git a/src/main/java/org/jabref/logic/bibtex/comparator/MetaDataDiff.java b/jablib/src/main/java/org/jabref/logic/bibtex/comparator/MetaDataDiff.java similarity index 100% rename from src/main/java/org/jabref/logic/bibtex/comparator/MetaDataDiff.java rename to jablib/src/main/java/org/jabref/logic/bibtex/comparator/MetaDataDiff.java diff --git a/src/main/java/org/jabref/logic/bibtex/comparator/PreambleDiff.java b/jablib/src/main/java/org/jabref/logic/bibtex/comparator/PreambleDiff.java similarity index 100% rename from src/main/java/org/jabref/logic/bibtex/comparator/PreambleDiff.java rename to jablib/src/main/java/org/jabref/logic/bibtex/comparator/PreambleDiff.java diff --git a/src/main/java/org/jabref/logic/bst/BstEntry.java b/jablib/src/main/java/org/jabref/logic/bst/BstEntry.java similarity index 100% rename from src/main/java/org/jabref/logic/bst/BstEntry.java rename to jablib/src/main/java/org/jabref/logic/bst/BstEntry.java diff --git a/src/main/java/org/jabref/logic/bst/BstFunctions.java b/jablib/src/main/java/org/jabref/logic/bst/BstFunctions.java similarity index 100% rename from src/main/java/org/jabref/logic/bst/BstFunctions.java rename to jablib/src/main/java/org/jabref/logic/bst/BstFunctions.java diff --git a/src/main/java/org/jabref/logic/bst/BstPreviewLayout.java b/jablib/src/main/java/org/jabref/logic/bst/BstPreviewLayout.java similarity index 100% rename from src/main/java/org/jabref/logic/bst/BstPreviewLayout.java rename to jablib/src/main/java/org/jabref/logic/bst/BstPreviewLayout.java diff --git a/src/main/java/org/jabref/logic/bst/BstVM.java b/jablib/src/main/java/org/jabref/logic/bst/BstVM.java similarity index 100% rename from src/main/java/org/jabref/logic/bst/BstVM.java rename to jablib/src/main/java/org/jabref/logic/bst/BstVM.java diff --git a/src/main/java/org/jabref/logic/bst/BstVMContext.java b/jablib/src/main/java/org/jabref/logic/bst/BstVMContext.java similarity index 100% rename from src/main/java/org/jabref/logic/bst/BstVMContext.java rename to jablib/src/main/java/org/jabref/logic/bst/BstVMContext.java diff --git a/src/main/java/org/jabref/logic/bst/BstVMException.java b/jablib/src/main/java/org/jabref/logic/bst/BstVMException.java similarity index 100% rename from src/main/java/org/jabref/logic/bst/BstVMException.java rename to jablib/src/main/java/org/jabref/logic/bst/BstVMException.java diff --git a/src/main/java/org/jabref/logic/bst/BstVMVisitor.java b/jablib/src/main/java/org/jabref/logic/bst/BstVMVisitor.java similarity index 99% rename from src/main/java/org/jabref/logic/bst/BstVMVisitor.java rename to jablib/src/main/java/org/jabref/logic/bst/BstVMVisitor.java index f2b64ae45f4..6af2b6ca870 100644 --- a/src/main/java/org/jabref/logic/bst/BstVMVisitor.java +++ b/jablib/src/main/java/org/jabref/logic/bst/BstVMVisitor.java @@ -1,6 +1,5 @@ package org.jabref.logic.bst; -import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.ListIterator; @@ -75,7 +74,7 @@ public Integer visitMacroCommand(BstParser.MacroCommandContext ctx) { @Override public Integer visitReadCommand(BstParser.ReadCommandContext ctx) { - FieldWriter fieldWriter = new FieldWriter(new FieldPreferences(true, List.of(StandardField.MONTH), Collections.emptyList())); + FieldWriter fieldWriter = new FieldWriter(new FieldPreferences(true, List.of(StandardField.MONTH), List.of())); for (BstEntry e : bstVMContext.entries()) { for (Map.Entry mEntry : e.fields.entrySet()) { Field field = FieldFactory.parseField(mEntry.getKey()); diff --git a/src/main/java/org/jabref/logic/bst/util/BstCaseChanger.java b/jablib/src/main/java/org/jabref/logic/bst/util/BstCaseChanger.java similarity index 99% rename from src/main/java/org/jabref/logic/bst/util/BstCaseChanger.java rename to jablib/src/main/java/org/jabref/logic/bst/util/BstCaseChanger.java index 1af4472c263..06ce483248b 100644 --- a/src/main/java/org/jabref/logic/bst/util/BstCaseChanger.java +++ b/jablib/src/main/java/org/jabref/logic/bst/util/BstCaseChanger.java @@ -77,7 +77,7 @@ private BstCaseChanger() { * @param format the format */ public static String changeCase(String s, FormatMode format) { - return (new BstCaseChanger()).doChangeCase(s, format); + return new BstCaseChanger().doChangeCase(s, format); } private String doChangeCase(String s, FormatMode format) { diff --git a/src/main/java/org/jabref/logic/bst/util/BstNameFormatter.java b/jablib/src/main/java/org/jabref/logic/bst/util/BstNameFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/bst/util/BstNameFormatter.java rename to jablib/src/main/java/org/jabref/logic/bst/util/BstNameFormatter.java diff --git a/src/main/java/org/jabref/logic/bst/util/BstPurifier.java b/jablib/src/main/java/org/jabref/logic/bst/util/BstPurifier.java similarity index 100% rename from src/main/java/org/jabref/logic/bst/util/BstPurifier.java rename to jablib/src/main/java/org/jabref/logic/bst/util/BstPurifier.java diff --git a/src/main/java/org/jabref/logic/bst/util/BstTextPrefixer.java b/jablib/src/main/java/org/jabref/logic/bst/util/BstTextPrefixer.java similarity index 100% rename from src/main/java/org/jabref/logic/bst/util/BstTextPrefixer.java rename to jablib/src/main/java/org/jabref/logic/bst/util/BstTextPrefixer.java diff --git a/src/main/java/org/jabref/logic/bst/util/BstWidthCalculator.java b/jablib/src/main/java/org/jabref/logic/bst/util/BstWidthCalculator.java similarity index 100% rename from src/main/java/org/jabref/logic/bst/util/BstWidthCalculator.java rename to jablib/src/main/java/org/jabref/logic/bst/util/BstWidthCalculator.java diff --git a/src/main/java/org/jabref/logic/citationkeypattern/AbstractCitationKeyPatterns.java b/jablib/src/main/java/org/jabref/logic/citationkeypattern/AbstractCitationKeyPatterns.java similarity index 100% rename from src/main/java/org/jabref/logic/citationkeypattern/AbstractCitationKeyPatterns.java rename to jablib/src/main/java/org/jabref/logic/citationkeypattern/AbstractCitationKeyPatterns.java diff --git a/src/main/java/org/jabref/logic/citationkeypattern/BracketedPattern.java b/jablib/src/main/java/org/jabref/logic/citationkeypattern/BracketedPattern.java similarity index 99% rename from src/main/java/org/jabref/logic/citationkeypattern/BracketedPattern.java rename to jablib/src/main/java/org/jabref/logic/citationkeypattern/BracketedPattern.java index d0a9d7516b4..3e1f0e61ba8 100644 --- a/src/main/java/org/jabref/logic/citationkeypattern/BracketedPattern.java +++ b/jablib/src/main/java/org/jabref/logic/citationkeypattern/BracketedPattern.java @@ -4,7 +4,6 @@ import java.text.Normalizer; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.EnumSet; import java.util.List; import java.util.Locale; @@ -295,7 +294,7 @@ private static String contentBetweenBrackets(StringTokenizer tokenizer, final St if (!foundClosingBracket) { LOGGER.warn("Missing closing bracket ']' in '{}'", pattern); - } else if (bracketContent.length() == 0) { + } else if (bracketContent.isEmpty()) { LOGGER.warn("Found empty brackets \"[]\" in '{}'", pattern); } return bracketContent.toString(); @@ -456,7 +455,7 @@ public static String getFieldValue(BibEntry entry, String pattern, Character key } else if ("shorttitleINI".equals(pattern)) { return keepLettersAndDigitsOnly( applyModifiers(getTitleWordsWithSpaces(3, entry.getResolvedFieldOrAlias(StandardField.TITLE, database).orElse("")), - Collections.singletonList("abbr"), 0, Function.identity())); + List.of("abbr"), 0, Function.identity())); } else if ("veryshorttitle".equals(pattern)) { return getTitleWords(1, removeSmallWords(entry.getResolvedFieldOrAlias(StandardField.TITLE, database).orElse(""))); @@ -634,7 +633,7 @@ private static String formatTitle(String title) { } // If we get here, the word was accepted. - if (stringBuilder.length() > 0) { + if (!stringBuilder.isEmpty()) { stringBuilder.append(' '); } stringBuilder.append(word); @@ -661,7 +660,7 @@ private static String camelizeTitle(String title) { // Camelize the word word = word.substring(0, 1).toUpperCase(Locale.ROOT) + word.substring(1); - if (stringBuilder.length() > 0) { + if (!stringBuilder.isEmpty()) { stringBuilder.append(' '); } stringBuilder.append(word); @@ -689,7 +688,7 @@ private static String camelizeTitle_N(String title, int number) { // Camelize the word word = word.substring(0, 1).toUpperCase(Locale.ROOT) + word.substring(1); - if (stringBuilder.length() > 0) { + if (!stringBuilder.isEmpty()) { stringBuilder.append(' '); } stringBuilder.append(word); diff --git a/src/main/java/org/jabref/logic/citationkeypattern/CitationKeyGenerator.java b/jablib/src/main/java/org/jabref/logic/citationkeypattern/CitationKeyGenerator.java similarity index 100% rename from src/main/java/org/jabref/logic/citationkeypattern/CitationKeyGenerator.java rename to jablib/src/main/java/org/jabref/logic/citationkeypattern/CitationKeyGenerator.java diff --git a/src/main/java/org/jabref/logic/citationkeypattern/CitationKeyPattern.java b/jablib/src/main/java/org/jabref/logic/citationkeypattern/CitationKeyPattern.java similarity index 100% rename from src/main/java/org/jabref/logic/citationkeypattern/CitationKeyPattern.java rename to jablib/src/main/java/org/jabref/logic/citationkeypattern/CitationKeyPattern.java diff --git a/src/main/java/org/jabref/logic/citationkeypattern/CitationKeyPatternPreferences.java b/jablib/src/main/java/org/jabref/logic/citationkeypattern/CitationKeyPatternPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/citationkeypattern/CitationKeyPatternPreferences.java rename to jablib/src/main/java/org/jabref/logic/citationkeypattern/CitationKeyPatternPreferences.java diff --git a/src/main/java/org/jabref/logic/citationkeypattern/DatabaseCitationKeyPatterns.java b/jablib/src/main/java/org/jabref/logic/citationkeypattern/DatabaseCitationKeyPatterns.java similarity index 100% rename from src/main/java/org/jabref/logic/citationkeypattern/DatabaseCitationKeyPatterns.java rename to jablib/src/main/java/org/jabref/logic/citationkeypattern/DatabaseCitationKeyPatterns.java diff --git a/src/main/java/org/jabref/logic/citationkeypattern/GlobalCitationKeyPatterns.java b/jablib/src/main/java/org/jabref/logic/citationkeypattern/GlobalCitationKeyPatterns.java similarity index 100% rename from src/main/java/org/jabref/logic/citationkeypattern/GlobalCitationKeyPatterns.java rename to jablib/src/main/java/org/jabref/logic/citationkeypattern/GlobalCitationKeyPatterns.java diff --git a/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java b/jablib/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java similarity index 100% rename from src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java rename to jablib/src/main/java/org/jabref/logic/citationstyle/CSLAdapter.java diff --git a/src/main/java/org/jabref/logic/citationstyle/CSLStyleLoader.java b/jablib/src/main/java/org/jabref/logic/citationstyle/CSLStyleLoader.java similarity index 100% rename from src/main/java/org/jabref/logic/citationstyle/CSLStyleLoader.java rename to jablib/src/main/java/org/jabref/logic/citationstyle/CSLStyleLoader.java diff --git a/src/main/java/org/jabref/logic/citationstyle/CSLStyleUtils.java b/jablib/src/main/java/org/jabref/logic/citationstyle/CSLStyleUtils.java similarity index 96% rename from src/main/java/org/jabref/logic/citationstyle/CSLStyleUtils.java rename to jablib/src/main/java/org/jabref/logic/citationstyle/CSLStyleUtils.java index 03960f7e98b..6a68ec0b2aa 100644 --- a/src/main/java/org/jabref/logic/citationstyle/CSLStyleUtils.java +++ b/jablib/src/main/java/org/jabref/logic/citationstyle/CSLStyleUtils.java @@ -2,7 +2,7 @@ import java.io.IOException; import java.io.InputStream; -import java.io.StringReader; +import java.io.Reader; import java.nio.file.Files; import java.nio.file.Path; import java.util.Optional; @@ -19,7 +19,7 @@ /** * Utility class for handling Citation Style Language (CSL) files. - * Contains shared functionality used by both runtime ({@link CSLStyleLoader}) and build-time ({@link CitationStyleCatalogGenerator}) components. + * Contains shared functionality used by both runtime ({@link CSLStyleLoader}) and build-time ({@link org.jabref.generators.CitationStyleCatalogGenerator}) components. */ public final class CSLStyleUtils { private static final String STYLES_ROOT = "/csl-styles"; @@ -60,7 +60,7 @@ public static Optional createCitationStyleFromFile(String styleFi return Optional.empty(); } - // Check if this is an absolute path (external file) + // Check if absolute path (meaning: external CSL file) - and exists Path filePath = Path.of(styleFile); if (filePath.isAbsolute() && Files.exists(filePath)) { try (InputStream inputStream = Files.newInputStream(filePath)) { @@ -111,7 +111,7 @@ private static Optional createCitationStyleFromSource(InputStream */ public static Optional parseStyleInfo(String filename, String content) { try { - XMLStreamReader reader = XML_INPUT_FACTORY.createXMLStreamReader(new StringReader(content)); + XMLStreamReader reader = XML_INPUT_FACTORY.createXMLStreamReader(Reader.of(content)); boolean inInfo = false; boolean hasBibliography = false; diff --git a/src/main/java/org/jabref/logic/citationstyle/CitationStyle.java b/jablib/src/main/java/org/jabref/logic/citationstyle/CitationStyle.java similarity index 100% rename from src/main/java/org/jabref/logic/citationstyle/CitationStyle.java rename to jablib/src/main/java/org/jabref/logic/citationstyle/CitationStyle.java diff --git a/src/main/java/org/jabref/logic/citationstyle/CitationStyleCache.java b/jablib/src/main/java/org/jabref/logic/citationstyle/CitationStyleCache.java similarity index 100% rename from src/main/java/org/jabref/logic/citationstyle/CitationStyleCache.java rename to jablib/src/main/java/org/jabref/logic/citationstyle/CitationStyleCache.java diff --git a/src/main/java/org/jabref/logic/citationstyle/CitationStyleGenerator.java b/jablib/src/main/java/org/jabref/logic/citationstyle/CitationStyleGenerator.java similarity index 90% rename from src/main/java/org/jabref/logic/citationstyle/CitationStyleGenerator.java rename to jablib/src/main/java/org/jabref/logic/citationstyle/CitationStyleGenerator.java index 544a5cce974..217ad4d826c 100644 --- a/src/main/java/org/jabref/logic/citationstyle/CitationStyleGenerator.java +++ b/jablib/src/main/java/org/jabref/logic/citationstyle/CitationStyleGenerator.java @@ -1,7 +1,6 @@ package org.jabref.logic.citationstyle; import java.io.IOException; -import java.util.Collections; import java.util.List; import org.jabref.logic.l10n.Localization; @@ -62,14 +61,14 @@ public static List generateBibliography(List bibEntries, Strin return CSL_ADAPTER.makeBibliography(bibEntries, style, outputFormat, databaseContext, entryTypesManager); } catch (IllegalArgumentException e) { LOGGER.error("Could not generate BibEntry bibliography. The CSL engine could not create a bibliography output for your item.", e); - return Collections.singletonList(Localization.lang("Cannot generate bibliography based on selected citation style.")); + return List.of(Localization.lang("Cannot generate bibliography based on selected citation style.")); } catch (IOException | ArrayIndexOutOfBoundsException e) { LOGGER.error("Could not generate BibEntry bibliography", e); - return Collections.singletonList(Localization.lang("Cannot generate bibliography based on selected citation style.")); + return List.of(Localization.lang("Cannot generate bibliography based on selected citation style.")); } catch (TokenMgrException e) { LOGGER.error("Bad character inside BibEntry", e); // sadly one cannot easily retrieve the bad char from the TokenMgrError - return Collections.singletonList(Localization.lang("Cannot generate bibliography based on selected citation style.") + + return List.of(Localization.lang("Cannot generate bibliography based on selected citation style.") + outputFormat.getLineSeparator() + Localization.lang("Bad character inside entry") + outputFormat.getLineSeparator() + diff --git a/src/main/java/org/jabref/logic/citationstyle/CitationStyleOutputFormat.java b/jablib/src/main/java/org/jabref/logic/citationstyle/CitationStyleOutputFormat.java similarity index 100% rename from src/main/java/org/jabref/logic/citationstyle/CitationStyleOutputFormat.java rename to jablib/src/main/java/org/jabref/logic/citationstyle/CitationStyleOutputFormat.java diff --git a/src/main/java/org/jabref/logic/citationstyle/CitationStylePreviewLayout.java b/jablib/src/main/java/org/jabref/logic/citationstyle/CitationStylePreviewLayout.java similarity index 100% rename from src/main/java/org/jabref/logic/citationstyle/CitationStylePreviewLayout.java rename to jablib/src/main/java/org/jabref/logic/citationstyle/CitationStylePreviewLayout.java diff --git a/src/main/java/org/jabref/logic/citationstyle/JabRefItemDataProvider.java b/jablib/src/main/java/org/jabref/logic/citationstyle/JabRefItemDataProvider.java similarity index 100% rename from src/main/java/org/jabref/logic/citationstyle/JabRefItemDataProvider.java rename to jablib/src/main/java/org/jabref/logic/citationstyle/JabRefItemDataProvider.java diff --git a/src/main/java/org/jabref/logic/citationstyle/JabRefLocaleProvider.java b/jablib/src/main/java/org/jabref/logic/citationstyle/JabRefLocaleProvider.java similarity index 100% rename from src/main/java/org/jabref/logic/citationstyle/JabRefLocaleProvider.java rename to jablib/src/main/java/org/jabref/logic/citationstyle/JabRefLocaleProvider.java diff --git a/src/main/java/org/jabref/logic/cleanup/CleanupJob.java b/jablib/src/main/java/org/jabref/logic/cleanup/CleanupJob.java similarity index 100% rename from src/main/java/org/jabref/logic/cleanup/CleanupJob.java rename to jablib/src/main/java/org/jabref/logic/cleanup/CleanupJob.java diff --git a/src/main/java/org/jabref/logic/cleanup/CleanupPreferences.java b/jablib/src/main/java/org/jabref/logic/cleanup/CleanupPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/cleanup/CleanupPreferences.java rename to jablib/src/main/java/org/jabref/logic/cleanup/CleanupPreferences.java diff --git a/src/main/java/org/jabref/logic/cleanup/CleanupWorker.java b/jablib/src/main/java/org/jabref/logic/cleanup/CleanupWorker.java similarity index 100% rename from src/main/java/org/jabref/logic/cleanup/CleanupWorker.java rename to jablib/src/main/java/org/jabref/logic/cleanup/CleanupWorker.java diff --git a/src/main/java/org/jabref/logic/cleanup/ConvertToBiblatexCleanup.java b/jablib/src/main/java/org/jabref/logic/cleanup/ConvertToBiblatexCleanup.java similarity index 100% rename from src/main/java/org/jabref/logic/cleanup/ConvertToBiblatexCleanup.java rename to jablib/src/main/java/org/jabref/logic/cleanup/ConvertToBiblatexCleanup.java diff --git a/src/main/java/org/jabref/logic/cleanup/ConvertToBibtexCleanup.java b/jablib/src/main/java/org/jabref/logic/cleanup/ConvertToBibtexCleanup.java similarity index 100% rename from src/main/java/org/jabref/logic/cleanup/ConvertToBibtexCleanup.java rename to jablib/src/main/java/org/jabref/logic/cleanup/ConvertToBibtexCleanup.java diff --git a/src/main/java/org/jabref/logic/cleanup/DoiCleanup.java b/jablib/src/main/java/org/jabref/logic/cleanup/DoiCleanup.java similarity index 100% rename from src/main/java/org/jabref/logic/cleanup/DoiCleanup.java rename to jablib/src/main/java/org/jabref/logic/cleanup/DoiCleanup.java diff --git a/src/main/java/org/jabref/logic/cleanup/EprintCleanup.java b/jablib/src/main/java/org/jabref/logic/cleanup/EprintCleanup.java similarity index 100% rename from src/main/java/org/jabref/logic/cleanup/EprintCleanup.java rename to jablib/src/main/java/org/jabref/logic/cleanup/EprintCleanup.java diff --git a/src/main/java/org/jabref/logic/cleanup/FieldFormatterCleanup.java b/jablib/src/main/java/org/jabref/logic/cleanup/FieldFormatterCleanup.java similarity index 100% rename from src/main/java/org/jabref/logic/cleanup/FieldFormatterCleanup.java rename to jablib/src/main/java/org/jabref/logic/cleanup/FieldFormatterCleanup.java diff --git a/src/main/java/org/jabref/logic/cleanup/FieldFormatterCleanups.java b/jablib/src/main/java/org/jabref/logic/cleanup/FieldFormatterCleanups.java similarity index 99% rename from src/main/java/org/jabref/logic/cleanup/FieldFormatterCleanups.java rename to jablib/src/main/java/org/jabref/logic/cleanup/FieldFormatterCleanups.java index 6b5d2d587d8..cd1f0f69c62 100644 --- a/src/main/java/org/jabref/logic/cleanup/FieldFormatterCleanups.java +++ b/jablib/src/main/java/org/jabref/logic/cleanup/FieldFormatterCleanups.java @@ -131,7 +131,7 @@ public List applySaveActions(BibEntry entry) { if (enabled) { return applyAllActions(entry); } else { - return Collections.emptyList(); + return List.of(); } } @@ -148,7 +148,7 @@ private List applyAllActions(BibEntry entry) { public static List parse(String formatterString) { if ((formatterString == null) || formatterString.isEmpty()) { // no save actions defined in the meta data - return Collections.emptyList(); + return List.of(); } List result = new ArrayList<>(); diff --git a/src/main/java/org/jabref/logic/cleanup/FileLinksCleanup.java b/jablib/src/main/java/org/jabref/logic/cleanup/FileLinksCleanup.java similarity index 87% rename from src/main/java/org/jabref/logic/cleanup/FileLinksCleanup.java rename to jablib/src/main/java/org/jabref/logic/cleanup/FileLinksCleanup.java index 5e89cacbbec..0f580a4d4d3 100644 --- a/src/main/java/org/jabref/logic/cleanup/FileLinksCleanup.java +++ b/jablib/src/main/java/org/jabref/logic/cleanup/FileLinksCleanup.java @@ -1,6 +1,5 @@ package org.jabref.logic.cleanup; -import java.util.Collections; import java.util.List; import java.util.Optional; @@ -19,7 +18,7 @@ public class FileLinksCleanup implements CleanupJob { public List cleanup(BibEntry entry) { Optional oldValue = entry.getField(StandardField.FILE); if (oldValue.isEmpty()) { - return Collections.emptyList(); + return List.of(); } List fileList = entry.getFiles(); @@ -29,8 +28,8 @@ public List cleanup(BibEntry entry) { if (!oldValue.get().equals(newValue)) { entry.setField(StandardField.FILE, newValue); FieldChange change = new FieldChange(entry, StandardField.FILE, oldValue.get(), newValue); - return Collections.singletonList(change); + return List.of(change); } - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/logic/cleanup/Formatter.java b/jablib/src/main/java/org/jabref/logic/cleanup/Formatter.java similarity index 100% rename from src/main/java/org/jabref/logic/cleanup/Formatter.java rename to jablib/src/main/java/org/jabref/logic/cleanup/Formatter.java diff --git a/src/main/java/org/jabref/logic/cleanup/ISSNCleanup.java b/jablib/src/main/java/org/jabref/logic/cleanup/ISSNCleanup.java similarity index 83% rename from src/main/java/org/jabref/logic/cleanup/ISSNCleanup.java rename to jablib/src/main/java/org/jabref/logic/cleanup/ISSNCleanup.java index e703c296c75..602048469fa 100644 --- a/src/main/java/org/jabref/logic/cleanup/ISSNCleanup.java +++ b/jablib/src/main/java/org/jabref/logic/cleanup/ISSNCleanup.java @@ -1,6 +1,5 @@ package org.jabref.logic.cleanup; -import java.util.Collections; import java.util.List; import java.util.Optional; @@ -15,7 +14,7 @@ public class ISSNCleanup implements CleanupJob { public List cleanup(BibEntry entry) { Optional issnString = entry.getField(StandardField.ISSN); if (issnString.isEmpty()) { - return Collections.emptyList(); + return List.of(); } ISSN issn = new ISSN(issnString.get()); @@ -23,8 +22,8 @@ public List cleanup(BibEntry entry) { String newValue = issn.getCleanedISSN(); FieldChange change = new FieldChange(entry, StandardField.ISSN, issnString.get(), newValue); entry.setField(StandardField.ISSN, newValue); - return Collections.singletonList(change); + return List.of(change); } - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/logic/cleanup/MoveFieldCleanup.java b/jablib/src/main/java/org/jabref/logic/cleanup/MoveFieldCleanup.java similarity index 100% rename from src/main/java/org/jabref/logic/cleanup/MoveFieldCleanup.java rename to jablib/src/main/java/org/jabref/logic/cleanup/MoveFieldCleanup.java diff --git a/src/main/java/org/jabref/logic/cleanup/MoveFilesCleanup.java b/jablib/src/main/java/org/jabref/logic/cleanup/MoveFilesCleanup.java similarity index 97% rename from src/main/java/org/jabref/logic/cleanup/MoveFilesCleanup.java rename to jablib/src/main/java/org/jabref/logic/cleanup/MoveFilesCleanup.java index c1cec043d88..9652e782046 100644 --- a/src/main/java/org/jabref/logic/cleanup/MoveFilesCleanup.java +++ b/jablib/src/main/java/org/jabref/logic/cleanup/MoveFilesCleanup.java @@ -2,7 +2,6 @@ import java.io.IOException; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -58,7 +57,7 @@ public List cleanup(BibEntry entry) { return OptionalUtil.toList(changes); } - return Collections.emptyList(); + return List.of(); } public List getIoExceptions() { diff --git a/src/main/java/org/jabref/logic/cleanup/NormalizeWhitespacesCleanup.java b/jablib/src/main/java/org/jabref/logic/cleanup/NormalizeWhitespacesCleanup.java similarity index 100% rename from src/main/java/org/jabref/logic/cleanup/NormalizeWhitespacesCleanup.java rename to jablib/src/main/java/org/jabref/logic/cleanup/NormalizeWhitespacesCleanup.java diff --git a/src/main/java/org/jabref/logic/cleanup/RelativePathsCleanup.java b/jablib/src/main/java/org/jabref/logic/cleanup/RelativePathsCleanup.java similarity index 87% rename from src/main/java/org/jabref/logic/cleanup/RelativePathsCleanup.java rename to jablib/src/main/java/org/jabref/logic/cleanup/RelativePathsCleanup.java index 46ee41fcce3..ead40302553 100644 --- a/src/main/java/org/jabref/logic/cleanup/RelativePathsCleanup.java +++ b/jablib/src/main/java/org/jabref/logic/cleanup/RelativePathsCleanup.java @@ -2,7 +2,6 @@ import java.nio.file.Path; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -32,7 +31,7 @@ public List cleanup(BibEntry entry) { for (LinkedFile fileEntry : fileList) { String oldFileName = fileEntry.getLink(); - String newFileName = null; + String newFileName; if (fileEntry.isOnlineLink()) { // keep online link untouched newFileName = oldFileName; @@ -52,13 +51,9 @@ public List cleanup(BibEntry entry) { if (changed) { Optional change = entry.setFiles(newFileList); - if (change.isPresent()) { - return Collections.singletonList(change.get()); - } else { - return Collections.emptyList(); - } + return change.map(List::of).orElseGet(List::of); } - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/logic/cleanup/RemoveLinksToNotExistentFiles.java b/jablib/src/main/java/org/jabref/logic/cleanup/RemoveLinksToNotExistentFiles.java similarity index 95% rename from src/main/java/org/jabref/logic/cleanup/RemoveLinksToNotExistentFiles.java rename to jablib/src/main/java/org/jabref/logic/cleanup/RemoveLinksToNotExistentFiles.java index 4ba12d0bf74..a63d9fb0cc7 100644 --- a/src/main/java/org/jabref/logic/cleanup/RemoveLinksToNotExistentFiles.java +++ b/jablib/src/main/java/org/jabref/logic/cleanup/RemoveLinksToNotExistentFiles.java @@ -2,7 +2,6 @@ import java.nio.file.Path; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -47,6 +46,6 @@ public List cleanup(BibEntry entry) { return OptionalUtil.toList(changes); } - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/logic/cleanup/RenamePdfCleanup.java b/jablib/src/main/java/org/jabref/logic/cleanup/RenamePdfCleanup.java similarity index 96% rename from src/main/java/org/jabref/logic/cleanup/RenamePdfCleanup.java rename to jablib/src/main/java/org/jabref/logic/cleanup/RenamePdfCleanup.java index 674596df2bd..50b5abe9f40 100644 --- a/src/main/java/org/jabref/logic/cleanup/RenamePdfCleanup.java +++ b/jablib/src/main/java/org/jabref/logic/cleanup/RenamePdfCleanup.java @@ -2,7 +2,6 @@ import java.io.IOException; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -58,6 +57,6 @@ public List cleanup(BibEntry entry) { return OptionalUtil.toList(changes); } - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/logic/cleanup/TimeStampToCreationDate.java b/jablib/src/main/java/org/jabref/logic/cleanup/TimeStampToCreationDate.java similarity index 96% rename from src/main/java/org/jabref/logic/cleanup/TimeStampToCreationDate.java rename to jablib/src/main/java/org/jabref/logic/cleanup/TimeStampToCreationDate.java index 2d69a224853..62600a88701 100644 --- a/src/main/java/org/jabref/logic/cleanup/TimeStampToCreationDate.java +++ b/jablib/src/main/java/org/jabref/logic/cleanup/TimeStampToCreationDate.java @@ -4,7 +4,6 @@ import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Optional; @@ -70,7 +69,7 @@ public List cleanup(BibEntry entry) { Optional formattedTimeStamp = formatTimeStamp(entry.getField(timeStampField).get()); if (formattedTimeStamp.isEmpty()) { // In case the timestamp could not be parsed, do nothing to not lose data - return Collections.emptyList(); + return List.of(); } // Setting the EventSource is necessary to circumvent the update of the modification date during timestamp migration entry.clearField(timeStampField, EntriesEventSource.CLEANUP_TIMESTAMP); @@ -83,6 +82,6 @@ public List cleanup(BibEntry entry) { changeList.add(changeTo); return changeList; } - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/logic/cleanup/TimeStampToModificationDate.java b/jablib/src/main/java/org/jabref/logic/cleanup/TimeStampToModificationDate.java similarity index 96% rename from src/main/java/org/jabref/logic/cleanup/TimeStampToModificationDate.java rename to jablib/src/main/java/org/jabref/logic/cleanup/TimeStampToModificationDate.java index 6006484f7ff..06b0fea074e 100644 --- a/src/main/java/org/jabref/logic/cleanup/TimeStampToModificationDate.java +++ b/jablib/src/main/java/org/jabref/logic/cleanup/TimeStampToModificationDate.java @@ -4,7 +4,6 @@ import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Optional; @@ -70,7 +69,7 @@ public List cleanup(BibEntry entry) { Optional formattedTimeStamp = formatTimeStamp(entry.getField(timeStampField).get()); if (formattedTimeStamp.isEmpty()) { // In case the timestamp could not be parsed, do nothing to not lose data - return Collections.emptyList(); + return List.of(); } // Setting the EventSource is necessary to circumvent the update of the modification date during timestamp migration entry.clearField(timeStampField, EntriesEventSource.CLEANUP_TIMESTAMP); @@ -83,6 +82,6 @@ public List cleanup(BibEntry entry) { changeList.add(changeTo); return changeList; } - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/logic/cleanup/URLCleanup.java b/jablib/src/main/java/org/jabref/logic/cleanup/URLCleanup.java similarity index 100% rename from src/main/java/org/jabref/logic/cleanup/URLCleanup.java rename to jablib/src/main/java/org/jabref/logic/cleanup/URLCleanup.java diff --git a/src/main/java/org/jabref/logic/cleanup/UpgradePdfPsToFileCleanup.java b/jablib/src/main/java/org/jabref/logic/cleanup/UpgradePdfPsToFileCleanup.java similarity index 100% rename from src/main/java/org/jabref/logic/cleanup/UpgradePdfPsToFileCleanup.java rename to jablib/src/main/java/org/jabref/logic/cleanup/UpgradePdfPsToFileCleanup.java diff --git a/src/main/java/org/jabref/logic/crawler/Crawler.java b/jablib/src/main/java/org/jabref/logic/crawler/Crawler.java similarity index 100% rename from src/main/java/org/jabref/logic/crawler/Crawler.java rename to jablib/src/main/java/org/jabref/logic/crawler/Crawler.java diff --git a/src/main/java/org/jabref/logic/crawler/StudyCatalogToFetcherConverter.java b/jablib/src/main/java/org/jabref/logic/crawler/StudyCatalogToFetcherConverter.java similarity index 100% rename from src/main/java/org/jabref/logic/crawler/StudyCatalogToFetcherConverter.java rename to jablib/src/main/java/org/jabref/logic/crawler/StudyCatalogToFetcherConverter.java diff --git a/src/main/java/org/jabref/logic/crawler/StudyFetcher.java b/jablib/src/main/java/org/jabref/logic/crawler/StudyFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/crawler/StudyFetcher.java rename to jablib/src/main/java/org/jabref/logic/crawler/StudyFetcher.java diff --git a/src/main/java/org/jabref/logic/crawler/StudyRepository.java b/jablib/src/main/java/org/jabref/logic/crawler/StudyRepository.java similarity index 100% rename from src/main/java/org/jabref/logic/crawler/StudyRepository.java rename to jablib/src/main/java/org/jabref/logic/crawler/StudyRepository.java diff --git a/src/main/java/org/jabref/logic/crawler/StudyYamlParser.java b/jablib/src/main/java/org/jabref/logic/crawler/StudyYamlParser.java similarity index 91% rename from src/main/java/org/jabref/logic/crawler/StudyYamlParser.java rename to jablib/src/main/java/org/jabref/logic/crawler/StudyYamlParser.java index 618dd18c42b..b3906d9815b 100644 --- a/src/main/java/org/jabref/logic/crawler/StudyYamlParser.java +++ b/jablib/src/main/java/org/jabref/logic/crawler/StudyYamlParser.java @@ -1,8 +1,8 @@ package org.jabref.logic.crawler; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; +import java.nio.file.Files; import java.nio.file.Path; import org.jabref.model.study.Study; @@ -21,7 +21,7 @@ public class StudyYamlParser { */ public Study parseStudyYamlFile(Path studyYamlFile) throws IOException { ObjectMapper yamlMapper = new ObjectMapper(new YAMLFactory()); - try (InputStream fileInputStream = new FileInputStream(studyYamlFile.toFile())) { + try (InputStream fileInputStream = Files.newInputStream(studyYamlFile)) { return yamlMapper.readValue(fileInputStream, Study.class); } } diff --git a/src/main/java/org/jabref/logic/database/DatabaseMerger.java b/jablib/src/main/java/org/jabref/logic/database/DatabaseMerger.java similarity index 100% rename from src/main/java/org/jabref/logic/database/DatabaseMerger.java rename to jablib/src/main/java/org/jabref/logic/database/DatabaseMerger.java diff --git a/src/main/java/org/jabref/logic/database/DuplicateCheck.java b/jablib/src/main/java/org/jabref/logic/database/DuplicateCheck.java similarity index 100% rename from src/main/java/org/jabref/logic/database/DuplicateCheck.java rename to jablib/src/main/java/org/jabref/logic/database/DuplicateCheck.java diff --git a/src/main/java/org/jabref/logic/exporter/AtomicFileOutputStream.java b/jablib/src/main/java/org/jabref/logic/exporter/AtomicFileOutputStream.java similarity index 98% rename from src/main/java/org/jabref/logic/exporter/AtomicFileOutputStream.java rename to jablib/src/main/java/org/jabref/logic/exporter/AtomicFileOutputStream.java index 6a7f56472fa..fc61539cb80 100644 --- a/src/main/java/org/jabref/logic/exporter/AtomicFileOutputStream.java +++ b/jablib/src/main/java/org/jabref/logic/exporter/AtomicFileOutputStream.java @@ -80,7 +80,7 @@ public class AtomicFileOutputStream extends FilterOutputStream { */ public AtomicFileOutputStream(Path path, boolean keepBackup) throws IOException { // Files.newOutputStream(getPathOfTemporaryFile(path)) leads to a "sun.nio.ch.ChannelOutputStream", which does not offer "lock" - this(path, getPathOfTemporaryFile(path), new FileOutputStream(getPathOfTemporaryFile(path).toFile()), keepBackup); + this(path, getPathOfTemporaryFile(path), Files.newOutputStream(getPathOfTemporaryFile(path)), keepBackup); } /** diff --git a/src/main/java/org/jabref/logic/exporter/AtomicFileWriter.java b/jablib/src/main/java/org/jabref/logic/exporter/AtomicFileWriter.java similarity index 100% rename from src/main/java/org/jabref/logic/exporter/AtomicFileWriter.java rename to jablib/src/main/java/org/jabref/logic/exporter/AtomicFileWriter.java diff --git a/src/main/java/org/jabref/logic/exporter/BibDatabaseWriter.java b/jablib/src/main/java/org/jabref/logic/exporter/BibDatabaseWriter.java similarity index 100% rename from src/main/java/org/jabref/logic/exporter/BibDatabaseWriter.java rename to jablib/src/main/java/org/jabref/logic/exporter/BibDatabaseWriter.java diff --git a/src/main/java/org/jabref/logic/exporter/BibWriter.java b/jablib/src/main/java/org/jabref/logic/exporter/BibWriter.java similarity index 100% rename from src/main/java/org/jabref/logic/exporter/BibWriter.java rename to jablib/src/main/java/org/jabref/logic/exporter/BibWriter.java diff --git a/src/main/java/org/jabref/logic/exporter/BibtexDatabaseWriter.java b/jablib/src/main/java/org/jabref/logic/exporter/BibtexDatabaseWriter.java similarity index 100% rename from src/main/java/org/jabref/logic/exporter/BibtexDatabaseWriter.java rename to jablib/src/main/java/org/jabref/logic/exporter/BibtexDatabaseWriter.java diff --git a/src/main/java/org/jabref/logic/exporter/BlankLineBehaviour.java b/jablib/src/main/java/org/jabref/logic/exporter/BlankLineBehaviour.java similarity index 100% rename from src/main/java/org/jabref/logic/exporter/BlankLineBehaviour.java rename to jablib/src/main/java/org/jabref/logic/exporter/BlankLineBehaviour.java diff --git a/src/main/java/org/jabref/logic/exporter/CffExporter.java b/jablib/src/main/java/org/jabref/logic/exporter/CffExporter.java similarity index 98% rename from src/main/java/org/jabref/logic/exporter/CffExporter.java rename to jablib/src/main/java/org/jabref/logic/exporter/CffExporter.java index 4788edd57bf..ebf7199f107 100644 --- a/src/main/java/org/jabref/logic/exporter/CffExporter.java +++ b/jablib/src/main/java/org/jabref/logic/exporter/CffExporter.java @@ -1,8 +1,9 @@ package org.jabref.logic.exporter; -import java.io.FileWriter; +import java.io.BufferedWriter; import java.io.IOException; import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; import java.util.HashMap; @@ -83,7 +84,7 @@ public CffExporter() { } @Override - public void export(BibDatabaseContext databaseContext, Path file, List entries) throws Exception { + public void export(BibDatabaseContext databaseContext, Path file, List entries) throws SaveException { Objects.requireNonNull(databaseContext); Objects.requireNonNull(file); Objects.requireNonNull(entries); @@ -159,7 +160,7 @@ public void export(BibDatabaseContext databaseContext, Path file, List cffData.put("references", related); } - try (FileWriter writer = new FileWriter(file.toFile(), StandardCharsets.UTF_8)) { + try (BufferedWriter writer = Files.newBufferedWriter(file, StandardCharsets.UTF_8)) { yaml.dump(cffData, writer); } catch (IOException ex) { throw new SaveException(ex); diff --git a/src/main/java/org/jabref/logic/exporter/EmbeddedBibFilePdfExporter.java b/jablib/src/main/java/org/jabref/logic/exporter/EmbeddedBibFilePdfExporter.java similarity index 99% rename from src/main/java/org/jabref/logic/exporter/EmbeddedBibFilePdfExporter.java rename to jablib/src/main/java/org/jabref/logic/exporter/EmbeddedBibFilePdfExporter.java index 9ec5f64dda3..91c6b147cff 100644 --- a/src/main/java/org/jabref/logic/exporter/EmbeddedBibFilePdfExporter.java +++ b/jablib/src/main/java/org/jabref/logic/exporter/EmbeddedBibFilePdfExporter.java @@ -63,7 +63,7 @@ public EmbeddedBibFilePdfExporter(BibDatabaseMode bibDatabaseMode, BibEntryTypes * @param entries a list containing all entries that should be exported */ @Override - public void export(BibDatabaseContext databaseContext, Path file, List entries) throws Exception { + public void export(BibDatabaseContext databaseContext, Path file, List entries) throws IOException { Objects.requireNonNull(databaseContext); Objects.requireNonNull(file); Objects.requireNonNull(entries); diff --git a/src/main/java/org/jabref/logic/exporter/EndnoteXmlExporter.java b/jablib/src/main/java/org/jabref/logic/exporter/EndnoteXmlExporter.java similarity index 98% rename from src/main/java/org/jabref/logic/exporter/EndnoteXmlExporter.java rename to jablib/src/main/java/org/jabref/logic/exporter/EndnoteXmlExporter.java index c06f5bbab99..11cb48b4d28 100644 --- a/src/main/java/org/jabref/logic/exporter/EndnoteXmlExporter.java +++ b/jablib/src/main/java/org/jabref/logic/exporter/EndnoteXmlExporter.java @@ -11,9 +11,11 @@ import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; @@ -101,7 +103,7 @@ public EndnoteXmlExporter(BibEntryPreferences bibEntryPreferences) { } @Override - public void export(BibDatabaseContext databaseContext, Path file, List entries) throws Exception { + public void export(BibDatabaseContext databaseContext, Path file, List entries) throws ParserConfigurationException, TransformerException { Objects.requireNonNull(databaseContext); Objects.requireNonNull(file); Objects.requireNonNull(entries); diff --git a/src/main/java/org/jabref/logic/exporter/ExportPreferences.java b/jablib/src/main/java/org/jabref/logic/exporter/ExportPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/exporter/ExportPreferences.java rename to jablib/src/main/java/org/jabref/logic/exporter/ExportPreferences.java diff --git a/src/main/java/org/jabref/logic/exporter/Exporter.java b/jablib/src/main/java/org/jabref/logic/exporter/Exporter.java similarity index 85% rename from src/main/java/org/jabref/logic/exporter/Exporter.java rename to jablib/src/main/java/org/jabref/logic/exporter/Exporter.java index 39329082703..07927e5aea9 100644 --- a/src/main/java/org/jabref/logic/exporter/Exporter.java +++ b/jablib/src/main/java/org/jabref/logic/exporter/Exporter.java @@ -1,11 +1,14 @@ package org.jabref.logic.exporter; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.Optional; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + import org.jabref.logic.FilePreferences; import org.jabref.logic.journals.JournalAbbreviationRepository; import org.jabref.logic.util.FileType; @@ -58,9 +61,9 @@ public String toString() { * @param file the file to write to * @param entries a list containing all entries that should be exported */ - public abstract void export(BibDatabaseContext databaseContext, Path file, List entries) throws Exception; + public abstract void export(BibDatabaseContext databaseContext, Path file, List entries) throws IOException, TransformerException, ParserConfigurationException, SaveException; - public void export(BibDatabaseContext databaseContext, Path file, List entries, List fileDirForDatabase, JournalAbbreviationRepository abbreviationRepository) throws Exception { + public void export(BibDatabaseContext databaseContext, Path file, List entries, List fileDirForDatabase, JournalAbbreviationRepository abbreviationRepository) throws IOException, SaveException, ParserConfigurationException, TransformerException { export(databaseContext, file, entries); } @@ -73,20 +76,20 @@ public void export(BibDatabaseContext databaseContext, Path file, List * @param entriesToWrite the content that we want to export to the pdfs * @param abbreviationRepository the opened repository of journal abbreviations * @return whether any file was written on - * @throws Exception if the writing fails + * @throws IOException if the writing fails */ public boolean exportToAllFilesOfEntry(BibDatabaseContext databaseContext, FilePreferences filePreferences, BibEntry entryToWriteOn, List entriesToWrite, - JournalAbbreviationRepository abbreviationRepository) throws Exception { + JournalAbbreviationRepository abbreviationRepository) throws IOException, SaveException, ParserConfigurationException, TransformerException { boolean writtenToAFile = false; for (LinkedFile file : entryToWriteOn.getFiles()) { if (file.getFileType().equals(fileType.getName())) { Optional filePath = file.findIn(databaseContext, filePreferences); if (filePath.isPresent()) { - export(databaseContext, filePath.get(), entriesToWrite, Collections.emptyList(), abbreviationRepository); + export(databaseContext, filePath.get(), entriesToWrite, List.of(), abbreviationRepository); writtenToAFile = true; } } @@ -106,12 +109,12 @@ public boolean exportToAllFilesOfEntry(BibDatabaseContext databaseContext, * @param filePath the path to the file we want to write on * @param abbreviationRepository the opened repository of journal abbreviations * @return whether the file was written on at least once - * @throws Exception if the writing fails + * @throws IOException if the writing fails */ public boolean exportToFileByPath(BibDatabaseContext databaseContext, FilePreferences filePreferences, Path filePath, - JournalAbbreviationRepository abbreviationRepository) throws Exception { + JournalAbbreviationRepository abbreviationRepository) throws IOException, SaveException, ParserConfigurationException, TransformerException { if (!Files.exists(filePath)) { return false; } @@ -121,7 +124,7 @@ public boolean exportToFileByPath(BibDatabaseContext databaseContext, if (linkedFile.getFileType().equals(fileType.getName())) { Optional linkedFilePath = linkedFile.findIn(databaseContext.getFileDirectories(filePreferences)); if (linkedFilePath.isPresent() && Files.exists(linkedFilePath.get()) && Files.isSameFile(linkedFilePath.get(), filePath)) { - export(databaseContext, filePath, List.of(entry), Collections.emptyList(), abbreviationRepository); + export(databaseContext, filePath, List.of(entry), List.of(), abbreviationRepository); writtenABibEntry = true; } } diff --git a/src/main/java/org/jabref/logic/exporter/ExporterFactory.java b/jablib/src/main/java/org/jabref/logic/exporter/ExporterFactory.java similarity index 100% rename from src/main/java/org/jabref/logic/exporter/ExporterFactory.java rename to jablib/src/main/java/org/jabref/logic/exporter/ExporterFactory.java diff --git a/src/main/java/org/jabref/logic/exporter/GroupSerializer.java b/jablib/src/main/java/org/jabref/logic/exporter/GroupSerializer.java similarity index 100% rename from src/main/java/org/jabref/logic/exporter/GroupSerializer.java rename to jablib/src/main/java/org/jabref/logic/exporter/GroupSerializer.java diff --git a/src/main/java/org/jabref/logic/exporter/MSBibExporter.java b/jablib/src/main/java/org/jabref/logic/exporter/MSBibExporter.java similarity index 100% rename from src/main/java/org/jabref/logic/exporter/MSBibExporter.java rename to jablib/src/main/java/org/jabref/logic/exporter/MSBibExporter.java diff --git a/src/main/java/org/jabref/logic/exporter/MetaDataSerializer.java b/jablib/src/main/java/org/jabref/logic/exporter/MetaDataSerializer.java similarity index 93% rename from src/main/java/org/jabref/logic/exporter/MetaDataSerializer.java rename to jablib/src/main/java/org/jabref/logic/exporter/MetaDataSerializer.java index 06ac141e1b2..8e38375a986 100644 --- a/src/main/java/org/jabref/logic/exporter/MetaDataSerializer.java +++ b/jablib/src/main/java/org/jabref/logic/exporter/MetaDataSerializer.java @@ -1,7 +1,6 @@ package org.jabref.logic.exporter; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,22 +47,20 @@ public static Map getSerializedStringMap(MetaData metaData, metaData.getSaveActions().ifPresent( saveActions -> stringyMetaData.put(MetaData.SAVE_ACTIONS, getAsStringList(saveActions, OS.NEWLINE))); if (metaData.isProtected()) { - stringyMetaData.put(MetaData.PROTECTED_FLAG_META, Collections.singletonList("true")); + stringyMetaData.put(MetaData.PROTECTED_FLAG_META, List.of("true")); } stringyMetaData.putAll(serializeCiteKeyPatterns(metaData, globalCiteKeyPatterns)); metaData.getMode().ifPresent( - mode -> stringyMetaData.put(MetaData.DATABASE_TYPE, Collections.singletonList(mode.getAsString()))); + mode -> stringyMetaData.put(MetaData.DATABASE_TYPE, List.of(mode.getAsString()))); metaData.getLibrarySpecificFileDirectory().ifPresent( - path -> stringyMetaData.put(MetaData.FILE_DIRECTORY, Collections.singletonList(path.trim()))); + path -> stringyMetaData.put(MetaData.FILE_DIRECTORY, List.of(path.trim()))); metaData.getUserFileDirectories().forEach((user, path) -> stringyMetaData - .put(MetaData.FILE_DIRECTORY + '-' + user, Collections.singletonList(path.trim()))); + .put(MetaData.FILE_DIRECTORY + '-' + user, List.of(path.trim()))); metaData.getLatexFileDirectories().forEach((user, path) -> stringyMetaData - .put(MetaData.FILE_DIRECTORY_LATEX + '-' + user, Collections.singletonList(path.toString().trim()))); + .put(MetaData.FILE_DIRECTORY_LATEX + '-' + user, List.of(path.toString().trim()))); metaData.getVersionDBStructure().ifPresent( - versionDBStructure -> stringyMetaData.put(MetaData.VERSION_DB_STRUCT, Collections.singletonList(versionDBStructure.trim()))); - metaData.getBlgFilePaths().forEach((user, path) -> { - stringyMetaData.put(MetaData.BLG_FILE_PATH + "-" + user, Collections.singletonList(path.toString().trim())); - }); + versionDBStructure -> stringyMetaData.put(MetaData.VERSION_DB_STRUCT, List.of(versionDBStructure.trim()))); + metaData.getBlgFilePaths().forEach((user, path) -> stringyMetaData.put(MetaData.BLG_FILE_PATH + "-" + user, List.of(path.toString().trim()))); for (ContentSelector selector : metaData.getContentSelectorsSorted()) { stringyMetaData.put(MetaData.SELECTOR_META_PREFIX + selector.getField().getName(), selector.getValues()); diff --git a/src/main/java/org/jabref/logic/exporter/ModsExporter.java b/jablib/src/main/java/org/jabref/logic/exporter/ModsExporter.java similarity index 99% rename from src/main/java/org/jabref/logic/exporter/ModsExporter.java rename to jablib/src/main/java/org/jabref/logic/exporter/ModsExporter.java index 893f93980b9..54c5fd0541b 100644 --- a/src/main/java/org/jabref/logic/exporter/ModsExporter.java +++ b/jablib/src/main/java/org/jabref/logic/exporter/ModsExporter.java @@ -2,7 +2,7 @@ import java.io.IOException; import java.io.OutputStream; -import java.io.StringReader; +import java.io.Reader; import java.io.StringWriter; import java.math.BigInteger; import java.nio.file.Files; @@ -162,7 +162,7 @@ private void writerFormatted(Path file, StringWriter sw) throws TransformerExcep transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); try (OutputStream outputStream = Files.newOutputStream(file)) { - transformer.transform(new StreamSource(new StringReader(sw.toString())), new StreamResult(outputStream)); + transformer.transform(new StreamSource(Reader.of(sw.toString())), new StreamResult(outputStream)); } } diff --git a/src/main/java/org/jabref/logic/exporter/OOCalcDatabase.java b/jablib/src/main/java/org/jabref/logic/exporter/OOCalcDatabase.java similarity index 100% rename from src/main/java/org/jabref/logic/exporter/OOCalcDatabase.java rename to jablib/src/main/java/org/jabref/logic/exporter/OOCalcDatabase.java diff --git a/src/main/java/org/jabref/logic/exporter/OpenDocumentRepresentation.java b/jablib/src/main/java/org/jabref/logic/exporter/OpenDocumentRepresentation.java similarity index 100% rename from src/main/java/org/jabref/logic/exporter/OpenDocumentRepresentation.java rename to jablib/src/main/java/org/jabref/logic/exporter/OpenDocumentRepresentation.java diff --git a/src/main/java/org/jabref/logic/exporter/OpenDocumentSpreadsheetCreator.java b/jablib/src/main/java/org/jabref/logic/exporter/OpenDocumentSpreadsheetCreator.java similarity index 95% rename from src/main/java/org/jabref/logic/exporter/OpenDocumentSpreadsheetCreator.java rename to jablib/src/main/java/org/jabref/logic/exporter/OpenDocumentSpreadsheetCreator.java index d58c57a7331..06381ab5c75 100644 --- a/src/main/java/org/jabref/logic/exporter/OpenDocumentSpreadsheetCreator.java +++ b/jablib/src/main/java/org/jabref/logic/exporter/OpenDocumentSpreadsheetCreator.java @@ -3,8 +3,6 @@ import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -87,7 +85,7 @@ private static void exportOpenDocumentSpreadsheet(Path file, BibDatabase databas OpenDocumentSpreadsheetCreator.exportOpenDocumentSpreadsheetXML(tmpFile, database, entries); // Then add the content to the zip file: - try (BufferedInputStream in = new BufferedInputStream(new FileInputStream(tmpFile))) { + try (BufferedInputStream in = new BufferedInputStream(Files.newInputStream(tmpFile.toPath()))) { OpenDocumentSpreadsheetCreator.storeOpenDocumentSpreadsheetFile(file, in); } // Delete the temporary file: @@ -109,7 +107,7 @@ public void export(final BibDatabaseContext databaseContext, final Path file, private static void exportOpenDocumentSpreadsheetXML(File tmpFile, BibDatabase database, List entries) { OpenDocumentRepresentation od = new OpenDocumentRepresentation(database, entries); - try (Writer ps = new OutputStreamWriter(new FileOutputStream(tmpFile), StandardCharsets.UTF_8)) { + try (Writer ps = new OutputStreamWriter(Files.newOutputStream(tmpFile.toPath()), StandardCharsets.UTF_8)) { DOMSource source = new DOMSource(od.getDOMrepresentation()); StreamResult result = new StreamResult(ps); Transformer trans = TransformerFactory.newInstance().newTransformer(); diff --git a/src/main/java/org/jabref/logic/exporter/OpenOfficeDocumentCreator.java b/jablib/src/main/java/org/jabref/logic/exporter/OpenOfficeDocumentCreator.java similarity index 91% rename from src/main/java/org/jabref/logic/exporter/OpenOfficeDocumentCreator.java rename to jablib/src/main/java/org/jabref/logic/exporter/OpenOfficeDocumentCreator.java index e31cb7bd243..f80093cf26a 100644 --- a/src/main/java/org/jabref/logic/exporter/OpenOfficeDocumentCreator.java +++ b/jablib/src/main/java/org/jabref/logic/exporter/OpenOfficeDocumentCreator.java @@ -3,8 +3,6 @@ import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -43,7 +41,7 @@ public OpenOfficeDocumentCreator() { super("oocalc", "Old OpenOffice/LibreOffice Calc format", StandardFileType.SXC); } - private static void storeOpenOfficeFile(Path file, InputStream source) throws Exception { + private static void storeOpenOfficeFile(Path file, InputStream source) throws IOException { try (ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(Files.newOutputStream(file)))) { ZipEntry zipEntry = new ZipEntry("content.xml"); out.putNextEntry(zipEntry); @@ -62,13 +60,13 @@ private static void storeOpenOfficeFile(Path file, InputStream source) throws Ex } } - private static void exportOpenOfficeCalc(Path file, BibDatabase database, List entries) throws Exception { + private static void exportOpenOfficeCalc(Path file, BibDatabase database, List entries) throws IOException { // First store the xml formatted content to a temporary file. File tmpFile = File.createTempFile("oocalc", null); OpenOfficeDocumentCreator.exportOpenOfficeCalcXML(tmpFile, database, entries); // Then add the content to the zip file: - try (BufferedInputStream in = new BufferedInputStream(new FileInputStream(tmpFile))) { + try (BufferedInputStream in = new BufferedInputStream(Files.newInputStream(tmpFile.toPath()))) { OpenOfficeDocumentCreator.storeOpenOfficeFile(file, in); } @@ -80,7 +78,7 @@ private static void exportOpenOfficeCalc(Path file, BibDatabase database, List entries) throws Exception { + List entries) throws IOException { Objects.requireNonNull(databaseContext); Objects.requireNonNull(entries); if (!entries.isEmpty()) { // Do not export if no entries @@ -91,7 +89,7 @@ public void export(final BibDatabaseContext databaseContext, final Path file, private static void exportOpenOfficeCalcXML(File tmpFile, BibDatabase database, List entries) { OOCalcDatabase od = new OOCalcDatabase(database, entries); - try (Writer ps = new OutputStreamWriter(new FileOutputStream(tmpFile), StandardCharsets.UTF_8)) { + try (Writer ps = new OutputStreamWriter(Files.newOutputStream(tmpFile.toPath()), StandardCharsets.UTF_8)) { DOMSource source = new DOMSource(od.getDOMrepresentation()); StreamResult result = new StreamResult(ps); Transformer trans = TransformerFactory.newInstance().newTransformer(); diff --git a/src/main/java/org/jabref/logic/exporter/SaveConfiguration.java b/jablib/src/main/java/org/jabref/logic/exporter/SaveConfiguration.java similarity index 93% rename from src/main/java/org/jabref/logic/exporter/SaveConfiguration.java rename to jablib/src/main/java/org/jabref/logic/exporter/SaveConfiguration.java index 358659113e5..dc50f71b40a 100644 --- a/src/main/java/org/jabref/logic/exporter/SaveConfiguration.java +++ b/jablib/src/main/java/org/jabref/logic/exporter/SaveConfiguration.java @@ -1,6 +1,5 @@ package org.jabref.logic.exporter; -import org.jabref.gui.autosaveandbackup.BackupManager; import org.jabref.model.metadata.SaveOrder; public class SaveConfiguration { @@ -44,7 +43,7 @@ public boolean shouldMakeBackup() { } /** - * Required by {@link BackupManager}. Should not be used in other settings + * Required by {@link org.jabref.gui.autosaveandbackup.BackupManager}. Should not be used in other settings * * @param newMakeBackup whether a backup (.bak file) should be made */ diff --git a/src/main/java/org/jabref/logic/exporter/SaveException.java b/jablib/src/main/java/org/jabref/logic/exporter/SaveException.java similarity index 100% rename from src/main/java/org/jabref/logic/exporter/SaveException.java rename to jablib/src/main/java/org/jabref/logic/exporter/SaveException.java diff --git a/src/main/java/org/jabref/logic/exporter/SelfContainedSaveConfiguration.java b/jablib/src/main/java/org/jabref/logic/exporter/SelfContainedSaveConfiguration.java similarity index 100% rename from src/main/java/org/jabref/logic/exporter/SelfContainedSaveConfiguration.java rename to jablib/src/main/java/org/jabref/logic/exporter/SelfContainedSaveConfiguration.java diff --git a/src/main/java/org/jabref/logic/exporter/TemplateExporter.java b/jablib/src/main/java/org/jabref/logic/exporter/TemplateExporter.java similarity index 98% rename from src/main/java/org/jabref/logic/exporter/TemplateExporter.java rename to jablib/src/main/java/org/jabref/logic/exporter/TemplateExporter.java index fe74b512308..ab81e466238 100644 --- a/src/main/java/org/jabref/logic/exporter/TemplateExporter.java +++ b/jablib/src/main/java/org/jabref/logic/exporter/TemplateExporter.java @@ -10,7 +10,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -192,8 +191,8 @@ private Reader getReader(String filename) throws IOException { } @Override - public void export(BibDatabaseContext databaseContext, Path file, List entries) throws Exception { - export(databaseContext, file, entries, Collections.emptyList(), JournalAbbreviationLoader.loadBuiltInRepository()); + public void export(BibDatabaseContext databaseContext, Path file, List entries) throws IOException { + export(databaseContext, file, entries, List.of(), JournalAbbreviationLoader.loadBuiltInRepository()); } @Override @@ -201,7 +200,7 @@ public void export(final BibDatabaseContext databaseContext, final Path file, List entries, List fileDirForDatabase, - JournalAbbreviationRepository abbreviationRepository) throws Exception { + JournalAbbreviationRepository abbreviationRepository) throws IOException { Objects.requireNonNull(databaseContext); Objects.requireNonNull(entries); diff --git a/src/main/java/org/jabref/logic/exporter/XmpExporter.java b/jablib/src/main/java/org/jabref/logic/exporter/XmpExporter.java similarity index 94% rename from src/main/java/org/jabref/logic/exporter/XmpExporter.java rename to jablib/src/main/java/org/jabref/logic/exporter/XmpExporter.java index 3cb88848a06..1ed7a14bab7 100644 --- a/src/main/java/org/jabref/logic/exporter/XmpExporter.java +++ b/jablib/src/main/java/org/jabref/logic/exporter/XmpExporter.java @@ -3,7 +3,6 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.Objects; @@ -36,7 +35,7 @@ public XmpExporter(XmpPreferences xmpPreferences) { * @param entries a list containing all entries that should be exported */ @Override - public void export(BibDatabaseContext databaseContext, Path file, List entries) throws Exception { + public void export(BibDatabaseContext databaseContext, Path file, List entries) throws IOException { Objects.requireNonNull(databaseContext); Objects.requireNonNull(file); Objects.requireNonNull(entries); @@ -57,7 +56,7 @@ public void export(BibDatabaseContext databaseContext, Path file, List } else { entryFile = Path.of(file.getParent() + "/" + suffix); } - this.writeBibToXmp(entryFile, Collections.singletonList(entry)); + this.writeBibToXmp(entryFile, List.of(entry)); } } else { this.writeBibToXmp(file, entries); diff --git a/src/main/java/org/jabref/logic/exporter/XmpPdfExporter.java b/jablib/src/main/java/org/jabref/logic/exporter/XmpPdfExporter.java similarity index 95% rename from src/main/java/org/jabref/logic/exporter/XmpPdfExporter.java rename to jablib/src/main/java/org/jabref/logic/exporter/XmpPdfExporter.java index e9eaeeb56a0..7b267ffef7e 100644 --- a/src/main/java/org/jabref/logic/exporter/XmpPdfExporter.java +++ b/jablib/src/main/java/org/jabref/logic/exporter/XmpPdfExporter.java @@ -6,6 +6,8 @@ import java.util.List; import java.util.Objects; +import javax.xml.transform.TransformerException; + import org.jabref.logic.l10n.Localization; import org.jabref.logic.util.StandardFileType; import org.jabref.logic.xmp.XmpPreferences; @@ -32,7 +34,7 @@ public XmpPdfExporter(XmpPreferences xmpPreferences) { } @Override - public void export(BibDatabaseContext databaseContext, Path pdfFile, List entries) throws Exception { + public void export(BibDatabaseContext databaseContext, Path pdfFile, List entries) throws IOException, TransformerException { Objects.requireNonNull(databaseContext); Objects.requireNonNull(pdfFile); Objects.requireNonNull(entries); diff --git a/src/main/java/org/jabref/logic/externalfiles/DateRange.java b/jablib/src/main/java/org/jabref/logic/externalfiles/DateRange.java similarity index 100% rename from src/main/java/org/jabref/logic/externalfiles/DateRange.java rename to jablib/src/main/java/org/jabref/logic/externalfiles/DateRange.java diff --git a/src/main/java/org/jabref/logic/externalfiles/ExternalFileSorter.java b/jablib/src/main/java/org/jabref/logic/externalfiles/ExternalFileSorter.java similarity index 100% rename from src/main/java/org/jabref/logic/externalfiles/ExternalFileSorter.java rename to jablib/src/main/java/org/jabref/logic/externalfiles/ExternalFileSorter.java diff --git a/src/main/java/org/jabref/logic/externalfiles/ExternalFilesContentImporter.java b/jablib/src/main/java/org/jabref/logic/externalfiles/ExternalFilesContentImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/externalfiles/ExternalFilesContentImporter.java rename to jablib/src/main/java/org/jabref/logic/externalfiles/ExternalFilesContentImporter.java diff --git a/src/main/java/org/jabref/logic/externalfiles/LinkedFileHandler.java b/jablib/src/main/java/org/jabref/logic/externalfiles/LinkedFileHandler.java similarity index 100% rename from src/main/java/org/jabref/logic/externalfiles/LinkedFileHandler.java rename to jablib/src/main/java/org/jabref/logic/externalfiles/LinkedFileHandler.java diff --git a/src/main/java/org/jabref/logic/formatter/Formatters.java b/jablib/src/main/java/org/jabref/logic/formatter/Formatters.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/Formatters.java rename to jablib/src/main/java/org/jabref/logic/formatter/Formatters.java diff --git a/src/main/java/org/jabref/logic/formatter/IdentityFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/IdentityFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/IdentityFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/IdentityFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/AddBracesFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/AddBracesFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/AddBracesFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/AddBracesFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/CleanupUrlFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/CleanupUrlFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/CleanupUrlFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/CleanupUrlFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/ClearFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/ClearFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/ClearFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/ClearFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/EscapeAmpersandsFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/EscapeAmpersandsFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/EscapeAmpersandsFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/EscapeAmpersandsFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/EscapeDollarSignFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/EscapeDollarSignFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/EscapeDollarSignFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/EscapeDollarSignFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/EscapeUnderscoresFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/EscapeUnderscoresFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/EscapeUnderscoresFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/EscapeUnderscoresFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/HtmlToLatexFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/HtmlToLatexFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/HtmlToLatexFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/HtmlToLatexFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/LatexCleanupFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/LatexCleanupFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/LatexCleanupFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/LatexCleanupFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeDateFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeDateFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeDateFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeDateFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeEnDashesFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeEnDashesFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeEnDashesFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeEnDashesFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeMonthFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeMonthFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeMonthFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeMonthFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeNamesFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeNamesFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeNamesFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeNamesFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizePagesFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizePagesFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizePagesFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizePagesFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeUnicodeFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeUnicodeFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeUnicodeFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeUnicodeFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeWhitespaceFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeWhitespaceFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeWhitespaceFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizeWhitespaceFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/OrdinalsToSuperscriptFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/OrdinalsToSuperscriptFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/OrdinalsToSuperscriptFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/OrdinalsToSuperscriptFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/RegexFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/RegexFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/RegexFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/RegexFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveDigitsFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveDigitsFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveDigitsFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveDigitsFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveEnclosingBracesFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveEnclosingBracesFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveEnclosingBracesFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveEnclosingBracesFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveHyphenatedNewlinesFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveHyphenatedNewlinesFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveHyphenatedNewlinesFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveHyphenatedNewlinesFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveNewlinesFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveNewlinesFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveNewlinesFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveNewlinesFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveRedundantSpacesFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveRedundantSpacesFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveRedundantSpacesFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveRedundantSpacesFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveWordEnclosingAndOuterEnclosingBracesFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveWordEnclosingAndOuterEnclosingBracesFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveWordEnclosingAndOuterEnclosingBracesFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/RemoveWordEnclosingAndOuterEnclosingBracesFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/ReplaceTabsBySpaceFormater.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/ReplaceTabsBySpaceFormater.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/ReplaceTabsBySpaceFormater.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/ReplaceTabsBySpaceFormater.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/ShortenDOIFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/ShortenDOIFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/ShortenDOIFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/ShortenDOIFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/TrimWhitespaceFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/TrimWhitespaceFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/TrimWhitespaceFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/TrimWhitespaceFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/UnicodeToLatexFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/UnicodeToLatexFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/UnicodeToLatexFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/UnicodeToLatexFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/bibtexfields/UnitsToLatexFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/UnitsToLatexFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/bibtexfields/UnitsToLatexFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/UnitsToLatexFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/casechanger/CamelFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/casechanger/CamelFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/casechanger/CamelFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/casechanger/CamelFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/casechanger/CamelNFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/casechanger/CamelNFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/casechanger/CamelNFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/casechanger/CamelNFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/casechanger/CapitalizeFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/casechanger/CapitalizeFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/casechanger/CapitalizeFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/casechanger/CapitalizeFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/casechanger/LowerCaseFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/casechanger/LowerCaseFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/casechanger/LowerCaseFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/casechanger/LowerCaseFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/casechanger/ProtectTermsFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/casechanger/ProtectTermsFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/casechanger/ProtectTermsFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/casechanger/ProtectTermsFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/casechanger/SentenceCaseFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/casechanger/SentenceCaseFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/casechanger/SentenceCaseFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/casechanger/SentenceCaseFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/casechanger/ShortTitleFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/casechanger/ShortTitleFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/casechanger/ShortTitleFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/casechanger/ShortTitleFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/casechanger/Title.java b/jablib/src/main/java/org/jabref/logic/formatter/casechanger/Title.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/casechanger/Title.java rename to jablib/src/main/java/org/jabref/logic/formatter/casechanger/Title.java diff --git a/src/main/java/org/jabref/logic/formatter/casechanger/TitleCaseFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/casechanger/TitleCaseFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/casechanger/TitleCaseFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/casechanger/TitleCaseFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/casechanger/TitleParser.java b/jablib/src/main/java/org/jabref/logic/formatter/casechanger/TitleParser.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/casechanger/TitleParser.java rename to jablib/src/main/java/org/jabref/logic/formatter/casechanger/TitleParser.java diff --git a/src/main/java/org/jabref/logic/formatter/casechanger/UnprotectTermsFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/casechanger/UnprotectTermsFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/casechanger/UnprotectTermsFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/casechanger/UnprotectTermsFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/casechanger/UpperCaseFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/casechanger/UpperCaseFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/casechanger/UpperCaseFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/casechanger/UpperCaseFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/casechanger/VeryShortTitleFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/casechanger/VeryShortTitleFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/casechanger/VeryShortTitleFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/casechanger/VeryShortTitleFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/casechanger/Word.java b/jablib/src/main/java/org/jabref/logic/formatter/casechanger/Word.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/casechanger/Word.java rename to jablib/src/main/java/org/jabref/logic/formatter/casechanger/Word.java diff --git a/src/main/java/org/jabref/logic/formatter/minifier/MinifyNameListFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/minifier/MinifyNameListFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/minifier/MinifyNameListFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/minifier/MinifyNameListFormatter.java diff --git a/src/main/java/org/jabref/logic/formatter/minifier/TruncateFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/minifier/TruncateFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/formatter/minifier/TruncateFormatter.java rename to jablib/src/main/java/org/jabref/logic/formatter/minifier/TruncateFormatter.java diff --git a/src/main/java/org/jabref/logic/git/GitHandler.java b/jablib/src/main/java/org/jabref/logic/git/GitHandler.java similarity index 100% rename from src/main/java/org/jabref/logic/git/GitHandler.java rename to jablib/src/main/java/org/jabref/logic/git/GitHandler.java diff --git a/src/main/java/org/jabref/logic/git/SlrGitHandler.java b/jablib/src/main/java/org/jabref/logic/git/SlrGitHandler.java similarity index 100% rename from src/main/java/org/jabref/logic/git/SlrGitHandler.java rename to jablib/src/main/java/org/jabref/logic/git/SlrGitHandler.java diff --git a/src/main/java/org/jabref/logic/groups/DefaultGroupsFactory.java b/jablib/src/main/java/org/jabref/logic/groups/DefaultGroupsFactory.java similarity index 100% rename from src/main/java/org/jabref/logic/groups/DefaultGroupsFactory.java rename to jablib/src/main/java/org/jabref/logic/groups/DefaultGroupsFactory.java diff --git a/src/main/java/org/jabref/logic/help/HelpFile.java b/jablib/src/main/java/org/jabref/logic/help/HelpFile.java similarity index 100% rename from src/main/java/org/jabref/logic/help/HelpFile.java rename to jablib/src/main/java/org/jabref/logic/help/HelpFile.java diff --git a/src/main/java/org/jabref/logic/importer/AuthorListParser.java b/jablib/src/main/java/org/jabref/logic/importer/AuthorListParser.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/AuthorListParser.java rename to jablib/src/main/java/org/jabref/logic/importer/AuthorListParser.java diff --git a/src/main/java/org/jabref/logic/importer/CompositeIdFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/CompositeIdFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/CompositeIdFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/CompositeIdFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/EntryBasedFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/EntryBasedFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/EntryBasedFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/EntryBasedFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/EntryBasedParserFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/EntryBasedParserFetcher.java similarity index 96% rename from src/main/java/org/jabref/logic/importer/EntryBasedParserFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/EntryBasedParserFetcher.java index 38a010c62ce..854e14f9aea 100644 --- a/src/main/java/org/jabref/logic/importer/EntryBasedParserFetcher.java +++ b/jablib/src/main/java/org/jabref/logic/importer/EntryBasedParserFetcher.java @@ -6,7 +6,6 @@ import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URL; -import java.util.Collections; import java.util.List; import java.util.Objects; @@ -41,7 +40,7 @@ default List performSearch(BibEntry entry) throws FetcherException { URL urlForEntry; try { if ((urlForEntry = getURLForEntry(entry)) == null) { - return Collections.emptyList(); + return List.of(); } } catch (MalformedURLException | URISyntaxException e) { throw new FetcherException("Search URI is malformed", e); diff --git a/src/main/java/org/jabref/logic/importer/FetcherClientException.java b/jablib/src/main/java/org/jabref/logic/importer/FetcherClientException.java similarity index 87% rename from src/main/java/org/jabref/logic/importer/FetcherClientException.java rename to jablib/src/main/java/org/jabref/logic/importer/FetcherClientException.java index a5780cc08ff..02b97848977 100644 --- a/src/main/java/org/jabref/logic/importer/FetcherClientException.java +++ b/jablib/src/main/java/org/jabref/logic/importer/FetcherClientException.java @@ -2,7 +2,7 @@ import java.net.URL; -import org.jabref.http.dto.SimpleHttpResponse; +import org.jabref.model.http.SimpleHttpResponse; /** * Should be thrown when you encounter an HTTP status code error >= 400 and < 500. diff --git a/src/main/java/org/jabref/logic/importer/FetcherException.java b/jablib/src/main/java/org/jabref/logic/importer/FetcherException.java similarity index 98% rename from src/main/java/org/jabref/logic/importer/FetcherException.java rename to jablib/src/main/java/org/jabref/logic/importer/FetcherException.java index cd82a392fb9..0bb693449fd 100644 --- a/src/main/java/org/jabref/logic/importer/FetcherException.java +++ b/jablib/src/main/java/org/jabref/logic/importer/FetcherException.java @@ -5,8 +5,8 @@ import java.util.Optional; import java.util.regex.Pattern; -import org.jabref.http.dto.SimpleHttpResponse; import org.jabref.logic.JabRefException; +import org.jabref.model.http.SimpleHttpResponse; import org.jabref.model.strings.StringUtil; import org.slf4j.Logger; diff --git a/src/main/java/org/jabref/logic/importer/FetcherResult.java b/jablib/src/main/java/org/jabref/logic/importer/FetcherResult.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/FetcherResult.java rename to jablib/src/main/java/org/jabref/logic/importer/FetcherResult.java diff --git a/src/main/java/org/jabref/logic/importer/FetcherServerException.java b/jablib/src/main/java/org/jabref/logic/importer/FetcherServerException.java similarity index 87% rename from src/main/java/org/jabref/logic/importer/FetcherServerException.java rename to jablib/src/main/java/org/jabref/logic/importer/FetcherServerException.java index ed67992b65d..2261851ed81 100644 --- a/src/main/java/org/jabref/logic/importer/FetcherServerException.java +++ b/jablib/src/main/java/org/jabref/logic/importer/FetcherServerException.java @@ -2,7 +2,7 @@ import java.net.URL; -import org.jabref.http.dto.SimpleHttpResponse; +import org.jabref.model.http.SimpleHttpResponse; /** * Should be thrown when you encounter a http status code error >= 500 diff --git a/src/main/java/org/jabref/logic/importer/FulltextFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/FulltextFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/FulltextFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/FulltextFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/FulltextFetchers.java b/jablib/src/main/java/org/jabref/logic/importer/FulltextFetchers.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/FulltextFetchers.java rename to jablib/src/main/java/org/jabref/logic/importer/FulltextFetchers.java diff --git a/src/main/java/org/jabref/logic/importer/IdBasedFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/IdBasedFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/IdBasedFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/IdBasedFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/IdBasedParserFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/IdBasedParserFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/IdBasedParserFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/IdBasedParserFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/IdFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/IdFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/IdFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/IdFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/IdParserFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/IdParserFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/IdParserFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/IdParserFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/ImportCleanup.java b/jablib/src/main/java/org/jabref/logic/importer/ImportCleanup.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/ImportCleanup.java rename to jablib/src/main/java/org/jabref/logic/importer/ImportCleanup.java diff --git a/src/main/java/org/jabref/logic/importer/ImportCleanupBiblatex.java b/jablib/src/main/java/org/jabref/logic/importer/ImportCleanupBiblatex.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/ImportCleanupBiblatex.java rename to jablib/src/main/java/org/jabref/logic/importer/ImportCleanupBiblatex.java diff --git a/src/main/java/org/jabref/logic/importer/ImportCleanupBibtex.java b/jablib/src/main/java/org/jabref/logic/importer/ImportCleanupBibtex.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/ImportCleanupBibtex.java rename to jablib/src/main/java/org/jabref/logic/importer/ImportCleanupBibtex.java diff --git a/src/main/java/org/jabref/logic/importer/ImportException.java b/jablib/src/main/java/org/jabref/logic/importer/ImportException.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/ImportException.java rename to jablib/src/main/java/org/jabref/logic/importer/ImportException.java diff --git a/src/main/java/org/jabref/logic/importer/ImportFormatPreferences.java b/jablib/src/main/java/org/jabref/logic/importer/ImportFormatPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/ImportFormatPreferences.java rename to jablib/src/main/java/org/jabref/logic/importer/ImportFormatPreferences.java diff --git a/src/main/java/org/jabref/logic/importer/ImportFormatReader.java b/jablib/src/main/java/org/jabref/logic/importer/ImportFormatReader.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/ImportFormatReader.java rename to jablib/src/main/java/org/jabref/logic/importer/ImportFormatReader.java diff --git a/src/main/java/org/jabref/logic/importer/Importer.java b/jablib/src/main/java/org/jabref/logic/importer/Importer.java similarity index 97% rename from src/main/java/org/jabref/logic/importer/Importer.java rename to jablib/src/main/java/org/jabref/logic/importer/Importer.java index eb06e1ac6b9..ca54f38da9e 100644 --- a/src/main/java/org/jabref/logic/importer/Importer.java +++ b/jablib/src/main/java/org/jabref/logic/importer/Importer.java @@ -5,7 +5,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.io.StringReader; +import java.io.Reader; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -62,8 +62,8 @@ public boolean isRecognizedFormat(Path filePath) throws IOException { * @throws IOException Signals that an I/O exception has occurred. */ public boolean isRecognizedFormat(String data) throws IOException { - try (StringReader stringReader = new StringReader(data); - BufferedReader bufferedReader = new BufferedReader(stringReader)) { + try (Reader reader = Reader.of(data); + BufferedReader bufferedReader = new BufferedReader(reader)) { return isRecognizedFormat(bufferedReader); } } @@ -152,8 +152,8 @@ protected static Charset getCharset(BufferedInputStream bufferedInputStream) { * @throws IOException Signals that an I/O exception has occurred. */ public ParserResult importDatabase(String data) throws IOException { - try (StringReader stringReader = new StringReader(data); - BufferedReader bufferedReader = new BufferedReader(stringReader)) { + try (Reader reader = Reader.of(data); + BufferedReader bufferedReader = new BufferedReader(reader)) { return importDatabase(bufferedReader); } } diff --git a/src/main/java/org/jabref/logic/importer/ImporterPreferences.java b/jablib/src/main/java/org/jabref/logic/importer/ImporterPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/ImporterPreferences.java rename to jablib/src/main/java/org/jabref/logic/importer/ImporterPreferences.java diff --git a/jablib/src/main/java/org/jabref/logic/importer/OpenDatabase.java b/jablib/src/main/java/org/jabref/logic/importer/OpenDatabase.java new file mode 100644 index 00000000000..ac93222dc0e --- /dev/null +++ b/jablib/src/main/java/org/jabref/logic/importer/OpenDatabase.java @@ -0,0 +1,25 @@ +package org.jabref.logic.importer; + +import java.io.IOException; +import java.nio.file.Path; + +import org.jabref.logic.importer.fileformat.BibtexImporter; +import org.jabref.model.util.FileUpdateMonitor; + +public class OpenDatabase { + + private OpenDatabase() { + } + + /** + * Load database (bib-file) + * + * @param fileToOpen Name of the BIB-file to open + * @return ParserResult which never is null + */ + public static ParserResult loadDatabase(Path fileToOpen, ImportFormatPreferences importFormatPreferences, FileUpdateMonitor fileMonitor) + throws IOException { + ParserResult result = new BibtexImporter(importFormatPreferences, fileMonitor).importDatabase(fileToOpen); + return result; + } +} diff --git a/src/main/java/org/jabref/logic/importer/OutputPrinter.java b/jablib/src/main/java/org/jabref/logic/importer/OutputPrinter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/OutputPrinter.java rename to jablib/src/main/java/org/jabref/logic/importer/OutputPrinter.java diff --git a/src/main/java/org/jabref/logic/importer/PagedSearchBasedFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/PagedSearchBasedFetcher.java similarity index 94% rename from src/main/java/org/jabref/logic/importer/PagedSearchBasedFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/PagedSearchBasedFetcher.java index bafae176485..207b7e5e766 100644 --- a/src/main/java/org/jabref/logic/importer/PagedSearchBasedFetcher.java +++ b/jablib/src/main/java/org/jabref/logic/importer/PagedSearchBasedFetcher.java @@ -1,7 +1,6 @@ package org.jabref.logic.importer; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import org.jabref.model.entry.BibEntry; @@ -28,7 +27,7 @@ public interface PagedSearchBasedFetcher extends SearchBasedFetcher { */ default Page performSearchPaged(String searchQuery, int pageNumber) throws FetcherException { if (searchQuery.isBlank()) { - return new Page<>(searchQuery, pageNumber, Collections.emptyList()); + return new Page<>(searchQuery, pageNumber, List.of()); } SyntaxParser parser = new StandardSyntaxParser(); final String NO_EXPLICIT_FIELD = "default"; diff --git a/src/main/java/org/jabref/logic/importer/PagedSearchBasedParserFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/PagedSearchBasedParserFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/PagedSearchBasedParserFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/PagedSearchBasedParserFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/ParseException.java b/jablib/src/main/java/org/jabref/logic/importer/ParseException.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/ParseException.java rename to jablib/src/main/java/org/jabref/logic/importer/ParseException.java diff --git a/src/main/java/org/jabref/logic/importer/Parser.java b/jablib/src/main/java/org/jabref/logic/importer/Parser.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/Parser.java rename to jablib/src/main/java/org/jabref/logic/importer/Parser.java diff --git a/src/main/java/org/jabref/logic/importer/ParserFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/ParserFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/ParserFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/ParserFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/ParserResult.java b/jablib/src/main/java/org/jabref/logic/importer/ParserResult.java similarity index 98% rename from src/main/java/org/jabref/logic/importer/ParserResult.java rename to jablib/src/main/java/org/jabref/logic/importer/ParserResult.java index 60dd5af278a..d46b474d709 100644 --- a/src/main/java/org/jabref/logic/importer/ParserResult.java +++ b/jablib/src/main/java/org/jabref/logic/importer/ParserResult.java @@ -3,7 +3,6 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Objects; @@ -28,7 +27,7 @@ public class ParserResult { private boolean changedOnMigration = false; public ParserResult() { - this(Collections.emptyList()); + this(List.of()); } public ParserResult(Collection entries) { diff --git a/src/main/java/org/jabref/logic/importer/QueryParser.java b/jablib/src/main/java/org/jabref/logic/importer/QueryParser.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/QueryParser.java rename to jablib/src/main/java/org/jabref/logic/importer/QueryParser.java diff --git a/src/main/java/org/jabref/logic/importer/SearchBasedFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/SearchBasedFetcher.java similarity index 96% rename from src/main/java/org/jabref/logic/importer/SearchBasedFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/SearchBasedFetcher.java index 34858548f7e..c114b35f7f3 100644 --- a/src/main/java/org/jabref/logic/importer/SearchBasedFetcher.java +++ b/jablib/src/main/java/org/jabref/logic/importer/SearchBasedFetcher.java @@ -1,6 +1,5 @@ package org.jabref.logic.importer; -import java.util.Collections; import java.util.List; import org.jabref.model.entry.BibEntry; @@ -37,7 +36,7 @@ public interface SearchBasedFetcher extends WebFetcher { */ default List performSearch(String searchQuery) throws FetcherException { if (searchQuery.isBlank()) { - return Collections.emptyList(); + return List.of(); } SyntaxParser parser = new StandardSyntaxParser(); diff --git a/src/main/java/org/jabref/logic/importer/SearchBasedParserFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/SearchBasedParserFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/SearchBasedParserFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/SearchBasedParserFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/WebFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/WebFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/WebFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/WebFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/WebFetchers.java b/jablib/src/main/java/org/jabref/logic/importer/WebFetchers.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/WebFetchers.java rename to jablib/src/main/java/org/jabref/logic/importer/WebFetchers.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/ACMPortalFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/ACMPortalFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/ACMPortalFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/ACMPortalFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/ACS.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/ACS.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/ACS.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/ACS.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/AbstractIsbnFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/AbstractIsbnFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/AbstractIsbnFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/AbstractIsbnFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/ApsFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/ApsFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/ApsFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/ApsFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/ArXivFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/ArXivFetcher.java similarity index 98% rename from src/main/java/org/jabref/logic/importer/fetcher/ArXivFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/ArXivFetcher.java index 8ab2a590915..7a4c61efaf3 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/ArXivFetcher.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/ArXivFetcher.java @@ -7,7 +7,6 @@ import java.net.URL; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Objects; @@ -431,7 +430,7 @@ public TrustLevel getTrustLevel() { } private Optional searchForEntry(String searchQuery) throws FetcherException { - List entries = queryApi(searchQuery, Collections.emptyList(), 0, 1); + List entries = queryApi(searchQuery, List.of(), 0, 1); if (entries.size() == 1) { return Optional.of(entries.getFirst()); } else { @@ -445,7 +444,7 @@ private Optional searchForEntryById(String id) throws FetcherExcepti return Optional.empty(); } - List entries = queryApi("", Collections.singletonList(identifier.get()), 0, 1); + List entries = queryApi("", List.of(identifier.get()), 0, 1); if (!entries.isEmpty()) { return Optional.of(entries.getFirst()); } else { @@ -495,11 +494,11 @@ private List searchForEntries(BibEntry originalEntry) throws Fetcher } } - return Collections.emptyList(); + return List.of(); } private List searchForEntries(String searchQuery, int pageNumber) throws FetcherException { - return queryApi(searchQuery, Collections.emptyList(), getPageSize() * pageNumber, getPageSize()); + return queryApi(searchQuery, List.of(), getPageSize() * pageNumber, getPageSize()); } private List queryApi(String searchQuery, List ids, int start, int maxResults) @@ -781,7 +780,7 @@ public BibEntry toBibEntry(Character keywordDelimiter) { getDate().ifPresent(date -> bibEntry.setField(StandardField.DATE, date)); primaryCategory.ifPresent(category -> bibEntry.setField(StandardField.EPRINTCLASS, category)); journalReferenceText.ifPresent(journal -> bibEntry.setField(StandardField.JOURNAL, journal)); - getPdfUrl().ifPresent(url -> bibEntry.setFiles(Collections.singletonList(new LinkedFile(url, "PDF")))); + getPdfUrl().ifPresent(url -> bibEntry.setFiles(List.of(new LinkedFile(url, "PDF")))); return bibEntry; } } diff --git a/src/main/java/org/jabref/logic/importer/fetcher/AstrophysicsDataSystem.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/AstrophysicsDataSystem.java similarity index 97% rename from src/main/java/org/jabref/logic/importer/fetcher/AstrophysicsDataSystem.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/AstrophysicsDataSystem.java index df90f2b076e..57cc590f901 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/AstrophysicsDataSystem.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/AstrophysicsDataSystem.java @@ -5,7 +5,6 @@ import java.net.URL; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -173,10 +172,10 @@ public void doPostCleanup(BibEntry entry) { @Override public List performSearch(BibEntry entry) throws FetcherException { if (entry.getFieldOrAlias(StandardField.TITLE).isEmpty() && entry.getFieldOrAlias(StandardField.AUTHOR).isEmpty()) { - return Collections.emptyList(); + return List.of(); } - URL urlForEntry = null; + URL urlForEntry; try { urlForEntry = getURLForEntry(entry); } catch (URISyntaxException | MalformedURLException e) { @@ -204,7 +203,7 @@ private List fetchBibcodes(URL url) throws FetcherException { return bibcodes; } catch (JSONException e) { LOGGER.error("Error while parsing JSON", e); - return Collections.emptyList(); + return List.of(); } } @@ -241,7 +240,7 @@ public Optional performSearchById(String identifier) throws FetcherExc private List performSearchByIds(Collection identifiers) throws FetcherException { List ids = identifiers.stream().filter(identifier -> !StringUtil.isBlank(identifier)).collect(Collectors.toList()); if (ids.isEmpty()) { - return Collections.emptyList(); + return List.of(); } URL urLforExport; @@ -263,7 +262,7 @@ private List performSearchByIds(Collection identifiers) throws try { List fetchedEntries = getParser().parseEntries(obj.optString("export")); if (fetchedEntries.isEmpty()) { - return Collections.emptyList(); + return List.of(); } // Post-cleanup fetchedEntries.forEach(this::doPostCleanup); @@ -271,7 +270,7 @@ private List performSearchByIds(Collection identifiers) throws return fetchedEntries; } catch (JSONException e) { LOGGER.error("Error while parsing JSON", e); - return Collections.emptyList(); + return List.of(); } } catch (ParseException e) { throw new FetcherException(urLforExport, "An internal parser error occurred", e); diff --git a/src/main/java/org/jabref/logic/importer/fetcher/BibsonomyScraper.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/BibsonomyScraper.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/BibsonomyScraper.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/BibsonomyScraper.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/BiodiversityLibrary.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/BiodiversityLibrary.java similarity index 96% rename from src/main/java/org/jabref/logic/importer/fetcher/BiodiversityLibrary.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/BiodiversityLibrary.java index b0de78575ae..eb2612ad245 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/BiodiversityLibrary.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/BiodiversityLibrary.java @@ -4,7 +4,6 @@ import java.net.URISyntaxException; import java.net.URL; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.stream.IntStream; @@ -28,7 +27,8 @@ import kong.unirest.core.json.JSONObject; import org.apache.hc.core5.net.URIBuilder; import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; -import org.tinylog.Logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Fetches data from the Biodiversity Heritage Library @@ -38,6 +38,8 @@ public class BiodiversityLibrary implements SearchBasedParserFetcher, CustomizableKeyFetcher { public static final String FETCHER_NAME = "Biodiversity Heritage"; + private static final Logger LOGGER = LoggerFactory.getLogger(BiodiversityLibrary.class); + private static final String BASE_URL = "https://www.biodiversitylibrary.org/api3"; private static final String RESPONSE_FORMAT = "json"; private static final String TEST_URL_WIH_OPTIONAL_KEY = "https://www.biodiversitylibrary.org/api3?apikey="; @@ -91,7 +93,7 @@ URL getPartMetadataURL(String identifier) throws URISyntaxException, MalformedUR public JSONObject getDetails(URL url) throws FetcherException { URLDownload download = new URLDownload(url); String response = download.asString(); - Logger.debug("Response {}", response); + LOGGER.debug("Response {}", response); return new JSONObject(response).getJSONArray("Result").getJSONObject(0); } @@ -116,7 +118,7 @@ public BibEntry parseBibJSONtoBibtex(JSONObject item, BibEntry entry) throws Fet } if ("Item".equals(item.getString("BHLType"))) { - URL url = null; + URL url; try { url = getItemMetadataURL(item.getString("ItemID")); } catch (URISyntaxException | MalformedURLException e) { @@ -179,12 +181,12 @@ public Parser getParser() { return inputStream -> { JSONObject response = JsonReader.toJsonObject(inputStream); if (response.isEmpty()) { - return Collections.emptyList(); + return List.of(); } String errorMessage = response.getString("ErrorMessage"); if (!errorMessage.isBlank()) { - return Collections.emptyList(); + return List.of(); } JSONArray items = response.getJSONArray("Result"); diff --git a/src/main/java/org/jabref/logic/importer/fetcher/BvbFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/BvbFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/BvbFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/BvbFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/CiteSeer.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/CiteSeer.java similarity index 99% rename from src/main/java/org/jabref/logic/importer/fetcher/CiteSeer.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/CiteSeer.java index a7e066cc1f8..bd71e84a355 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/CiteSeer.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/CiteSeer.java @@ -6,7 +6,6 @@ import java.util.Objects; import java.util.Optional; -import org.jabref.http.dto.SimpleHttpResponse; import org.jabref.logic.help.HelpFile; import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.FulltextFetcher; @@ -17,6 +16,7 @@ import org.jabref.logic.util.URLUtil; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; +import org.jabref.model.http.SimpleHttpResponse; import kong.unirest.core.HttpResponse; import kong.unirest.core.JsonNode; diff --git a/src/main/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesParser.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesParser.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesParser.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesParser.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/ComplexSearchQuery.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/ComplexSearchQuery.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/ComplexSearchQuery.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/ComplexSearchQuery.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcher.java similarity index 97% rename from src/main/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcher.java index 224900238b2..ba1b287119d 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcher.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcher.java @@ -36,7 +36,7 @@ public CompositeSearchBasedFetcher(Set searchBasedFetchers, .filter(searchBasedFetcher -> searchBasedFetcher != this) // Remove any unselected Fetcher instance .filter(searchBasedFetcher -> importerPreferences.getCatalogs().stream() - .anyMatch((name -> name.equals(searchBasedFetcher.getName())))) + .anyMatch(name -> name.equals(searchBasedFetcher.getName()))) .collect(Collectors.toSet()); this.maximumNumberOfReturnedResults = maximumNumberOfReturnedResults; } diff --git a/src/main/java/org/jabref/logic/importer/fetcher/CrossRef.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/CrossRef.java similarity index 96% rename from src/main/java/org/jabref/logic/importer/fetcher/CrossRef.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/CrossRef.java index 7a3e20f19a7..9859460429e 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/CrossRef.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/CrossRef.java @@ -4,7 +4,6 @@ import java.net.URISyntaxException; import java.net.URL; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.stream.IntStream; @@ -13,7 +12,6 @@ import org.jabref.logic.formatter.bibtexfields.ClearFormatter; import org.jabref.logic.formatter.bibtexfields.RemoveEnclosingBracesFormatter; import org.jabref.logic.importer.EntryBasedParserFetcher; -import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.IdBasedParserFetcher; import org.jabref.logic.importer.IdParserFetcher; import org.jabref.logic.importer.ParseException; @@ -54,7 +52,7 @@ public String getName() { } @Override - public URL getURLForEntry(BibEntry entry) throws URISyntaxException, MalformedURLException, FetcherException { + public URL getURLForEntry(BibEntry entry) throws URISyntaxException, MalformedURLException { URIBuilder uriBuilder = new URIBuilder(API_URL); entry.getFieldLatexFree(StandardField.TITLE).ifPresent(title -> uriBuilder.addParameter("query.bibliographic", title)); entry.getFieldLatexFree(StandardField.AUTHOR).ifPresent(author -> uriBuilder.addParameter("query.author", author)); @@ -84,18 +82,18 @@ public Parser getParser() { return inputStream -> { JSONObject response = JsonReader.toJsonObject(inputStream); if (response.isEmpty()) { - return Collections.emptyList(); + return List.of(); } response = response.getJSONObject("message"); if (response.isEmpty()) { - return Collections.emptyList(); + return List.of(); } if (!response.has("items")) { // Singleton response BibEntry entry = jsonItemToBibEntry(response); - return Collections.singletonList(entry); + return List.of(entry); } // Response contains a list @@ -170,8 +168,7 @@ private EntryType convertType(String type) { } @Override - public Optional extractIdentifier(BibEntry inputEntry, List fetchedEntries) throws FetcherException { - + public Optional extractIdentifier(BibEntry inputEntry, List fetchedEntries) { final String entryTitle = REMOVE_BRACES_FORMATTER.format(inputEntry.getFieldLatexFree(StandardField.TITLE).orElse("")); final StringSimilarity stringSimilarity = new StringSimilarity(); diff --git a/src/main/java/org/jabref/logic/importer/fetcher/CustomizableKeyFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/CustomizableKeyFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/CustomizableKeyFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/CustomizableKeyFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/DBLPFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/DBLPFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/DBLPFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/DBLPFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/DOABFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/DOABFetcher.java similarity index 97% rename from src/main/java/org/jabref/logic/importer/fetcher/DOABFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/DOABFetcher.java index 3408c631142..74e73773414 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/DOABFetcher.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/DOABFetcher.java @@ -4,7 +4,6 @@ import java.net.URISyntaxException; import java.net.URL; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.StringJoiner; @@ -43,7 +42,7 @@ public URL getURLForQuery(QueryNode luceneQuery) throws URISyntaxException, Malf String query = new DefaultQueryTransformer().transformLuceneQuery(luceneQuery).orElse(""); // adding quotations for the query for more specified results // without the quotation the results returned are not relevant to the query - query = ("\"".concat(query)).concat("\""); + query = "\"".concat(query).concat("\""); builder.addParameter("query", query); // bitstreams included in URL building to acquire ISBN's. builder.addParameter("expand", "metadata,bitstreams"); @@ -59,7 +58,7 @@ public Parser getParser() { // created a similar method suitable for this case "toJsonArray" JSONArray response = JsonReader.toJsonArray(InputStream); if (response.isEmpty()) { - return Collections.emptyList(); + return List.of(); } if (response.length() == 1) { // the information used for bibtex entries are in an array inside the resulting jsonarray @@ -67,7 +66,7 @@ public Parser getParser() { JSONArray metadataArray = response.getJSONObject(0).getJSONArray("metadata"); JSONArray bitstreamArray = response.getJSONObject(0).getJSONArray("bitstreams"); BibEntry entry = jsonToBibEntry(metadataArray, bitstreamArray); - return Collections.singletonList(entry); + return List.of(entry); } List entries = new ArrayList<>(response.length()); for (int i = 0; i < response.length(); i++) { diff --git a/src/main/java/org/jabref/logic/importer/fetcher/DOAJFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/DOAJFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/DOAJFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/DOAJFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/DiVA.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/DiVA.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/DiVA.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/DiVA.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/DoiFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/DoiFetcher.java similarity index 99% rename from src/main/java/org/jabref/logic/importer/fetcher/DoiFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/DoiFetcher.java index dcebd2785d7..0681d7e2d59 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/DoiFetcher.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/DoiFetcher.java @@ -7,7 +7,6 @@ import java.net.URLConnection; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; -import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.concurrent.CompletableFuture; @@ -209,7 +208,7 @@ public List performSearch(BibEntry entry) throws FetcherException { if (doi.isPresent()) { return OptionalUtil.toList(performSearchById(doi.get())); } else { - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/logic/importer/fetcher/DoiResolution.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/DoiResolution.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/DoiResolution.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/DoiResolution.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/GoogleScholar.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/GoogleScholar.java similarity index 98% rename from src/main/java/org/jabref/logic/importer/fetcher/GoogleScholar.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/GoogleScholar.java index 4fbfba362e2..bb73400f75d 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/GoogleScholar.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/GoogleScholar.java @@ -1,7 +1,7 @@ package org.jabref.logic.importer.fetcher; import java.io.IOException; -import java.io.StringReader; +import java.io.Reader; import java.net.HttpCookie; import java.net.MalformedURLException; import java.net.URISyntaxException; @@ -150,7 +150,7 @@ private void addHitsFromQuery(List entryList, String queryURL) throws private BibEntry downloadEntry(String link) throws IOException, FetcherException { String downloadedContent = new URLDownload(link).asString(); BibtexParser parser = new BibtexParser(importFormatPreferences); - ParserResult result = parser.parse(new StringReader(downloadedContent)); + ParserResult result = parser.parse(Reader.of(downloadedContent)); if ((result == null) || (result.getDatabase() == null)) { throw new FetcherException("Parsing entries from Google Scholar bib file failed."); } else { diff --git a/src/main/java/org/jabref/logic/importer/fetcher/GvkFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/GvkFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/GvkFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/GvkFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/IEEE.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/IEEE.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/IEEE.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/IEEE.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/INSPIREFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/INSPIREFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/INSPIREFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/INSPIREFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/ISIDOREFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/ISIDOREFetcher.java similarity index 98% rename from src/main/java/org/jabref/logic/importer/fetcher/ISIDOREFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/ISIDOREFetcher.java index da924eb4326..58cb2f66d77 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/ISIDOREFetcher.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/ISIDOREFetcher.java @@ -181,7 +181,7 @@ private String getAuthor(Node itemElement) { } stringJoiner.add(next); } - return (stringJoiner.toString().substring(0, stringJoiner.length())).trim().replaceAll("\\s+", " "); + return stringJoiner.toString().substring(0, stringJoiner.length()).trim().replaceAll("\\s+", " "); } /** diff --git a/src/main/java/org/jabref/logic/importer/fetcher/IacrEprintFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/IacrEprintFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/IacrEprintFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/IacrEprintFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/IssnFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/IssnFetcher.java similarity index 96% rename from src/main/java/org/jabref/logic/importer/fetcher/IssnFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/IssnFetcher.java index 11f85d12304..cc6beef6f86 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/IssnFetcher.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/IssnFetcher.java @@ -1,6 +1,5 @@ package org.jabref.logic.importer.fetcher; -import java.util.Collections; import java.util.List; import java.util.Optional; @@ -32,7 +31,7 @@ public List performSearch(BibEntry entry) throws FetcherException { Optional journalInformation = journalInformationFetcher.getJournalInformation(issn.get(), ""); return journalInformation.map(journalInfo -> journalInformationToBibEntry(journalInfo, issn.get())).stream().toList(); } - return Collections.emptyList(); + return List.of(); } @Override diff --git a/src/main/java/org/jabref/logic/importer/fetcher/JournalInformationFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/JournalInformationFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/JournalInformationFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/JournalInformationFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/JstorFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/JstorFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/JstorFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/JstorFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/LOBIDFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/LOBIDFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/LOBIDFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/LOBIDFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/LibraryOfCongress.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/LibraryOfCongress.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/LibraryOfCongress.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/LibraryOfCongress.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/MathSciNet.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/MathSciNet.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/MathSciNet.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/MathSciNet.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/MedlineFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/MedlineFetcher.java similarity index 98% rename from src/main/java/org/jabref/logic/importer/fetcher/MedlineFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/MedlineFetcher.java index 1ff01428aa6..eef636db451 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/MedlineFetcher.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/MedlineFetcher.java @@ -9,7 +9,6 @@ import java.net.URLConnection; import java.nio.charset.StandardCharsets; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Optional; @@ -194,14 +193,14 @@ public List performSearch(QueryNode luceneQuery) throws FetcherExcepti Optional transformedQuery = transformer.transformLuceneQuery(luceneQuery); if (transformedQuery.isEmpty() || transformedQuery.get().isBlank()) { - return Collections.emptyList(); + return List.of(); } else { // searching for pubmed ids matching the query List idList = getPubMedIdsFromQuery(transformedQuery.get()); if (idList.isEmpty()) { LOGGER.info("No results found."); - return Collections.emptyList(); + return List.of(); } if (numberOfResultsFound > NUMBER_TO_FETCH) { LOGGER.info("{} results found. Only 50 relevant results will be fetched by default.", numberOfResultsFound); diff --git a/src/main/java/org/jabref/logic/importer/fetcher/Medra.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/Medra.java similarity index 96% rename from src/main/java/org/jabref/logic/importer/fetcher/Medra.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/Medra.java index 0d1f01a2b6f..b81975cb009 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/Medra.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/Medra.java @@ -3,7 +3,7 @@ import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URL; -import java.util.Collections; +import java.util.List; import java.util.Optional; import java.util.stream.IntStream; @@ -47,9 +47,9 @@ public Parser getParser() { return inputStream -> { JSONObject response = JsonReader.toJsonObject(inputStream); if (response.isEmpty()) { - return Collections.emptyList(); + return List.of(); } - return Collections.singletonList(jsonItemToBibEntry(response)); + return List.of(jsonItemToBibEntry(response)); }; } diff --git a/src/main/java/org/jabref/logic/importer/fetcher/MrDLibFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/MrDLibFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/MrDLibFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/MrDLibFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/MrDlibPreferences.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/MrDlibPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/MrDlibPreferences.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/MrDlibPreferences.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/OpenAccessDoi.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/OpenAccessDoi.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/OpenAccessDoi.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/OpenAccessDoi.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/ResearchGate.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/ResearchGate.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/ResearchGate.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/ResearchGate.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/RfcFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/RfcFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/RfcFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/RfcFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/ScholarArchiveFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/ScholarArchiveFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/ScholarArchiveFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/ScholarArchiveFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/ScienceDirect.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/ScienceDirect.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/ScienceDirect.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/ScienceDirect.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/SemanticScholar.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/SemanticScholar.java similarity index 98% rename from src/main/java/org/jabref/logic/importer/fetcher/SemanticScholar.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/SemanticScholar.java index c46772da100..d5bb1f66178 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/SemanticScholar.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/SemanticScholar.java @@ -5,7 +5,6 @@ import java.net.URISyntaxException; import java.net.URL; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -156,12 +155,12 @@ public Parser getParser() { JSONObject response = JsonReader.toJsonObject(inputStream); LOGGER.debug("Response for Parser: {}", response); if (response.isEmpty()) { - return Collections.emptyList(); + return List.of(); } int total = response.getInt("total"); if (total == 0) { - return Collections.emptyList(); + return List.of(); } else if (response.has("next")) { total = Math.min(total, response.getInt("next") - response.getInt("offset")); } diff --git a/src/main/java/org/jabref/logic/importer/fetcher/SpringerFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/SpringerFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/SpringerFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/SpringerFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/SpringerLink.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/SpringerLink.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/SpringerLink.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/SpringerLink.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/TitleFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/TitleFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/TitleFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/TitleFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/TrustLevel.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/TrustLevel.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/TrustLevel.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/TrustLevel.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/ZbMATH.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/ZbMATH.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/ZbMATH.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/ZbMATH.java diff --git a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/CitationFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/CitationFetcher.java similarity index 94% rename from src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/CitationFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/CitationFetcher.java index 1b87c7ab0bb..959f5fa275a 100644 --- a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/CitationFetcher.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/CitationFetcher.java @@ -1,4 +1,4 @@ -package org.jabref.gui.entryeditor.citationrelationtab.semanticscholar; +package org.jabref.logic.importer.fetcher.citation; import java.util.List; diff --git a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/AuthorResponse.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/semanticscholar/AuthorResponse.java similarity index 84% rename from src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/AuthorResponse.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/semanticscholar/AuthorResponse.java index 539b99cc39d..3d3a1e6bfda 100644 --- a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/AuthorResponse.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/semanticscholar/AuthorResponse.java @@ -1,4 +1,4 @@ -package org.jabref.gui.entryeditor.citationrelationtab.semanticscholar; +package org.jabref.logic.importer.fetcher.citation.semanticscholar; /** * Used for GSON diff --git a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/CitationDataItem.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/semanticscholar/CitationDataItem.java similarity index 79% rename from src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/CitationDataItem.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/semanticscholar/CitationDataItem.java index 684285b46df..f080c2c3212 100644 --- a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/CitationDataItem.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/semanticscholar/CitationDataItem.java @@ -1,4 +1,4 @@ -package org.jabref.gui.entryeditor.citationrelationtab.semanticscholar; +package org.jabref.logic.importer.fetcher.citation.semanticscholar; /** * Used for GSON diff --git a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/CitationsResponse.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/semanticscholar/CitationsResponse.java similarity index 89% rename from src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/CitationsResponse.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/semanticscholar/CitationsResponse.java index 999eb7eca2a..67b42621d1e 100644 --- a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/CitationsResponse.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/semanticscholar/CitationsResponse.java @@ -1,4 +1,4 @@ -package org.jabref.gui.entryeditor.citationrelationtab.semanticscholar; +package org.jabref.logic.importer.fetcher.citation.semanticscholar; import java.util.List; diff --git a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/PaperDetails.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/semanticscholar/PaperDetails.java similarity index 98% rename from src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/PaperDetails.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/semanticscholar/PaperDetails.java index 58ba269616e..1ab9085a5cc 100644 --- a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/PaperDetails.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/semanticscholar/PaperDetails.java @@ -1,4 +1,4 @@ -package org.jabref.gui.entryeditor.citationrelationtab.semanticscholar; +package org.jabref.logic.importer.fetcher.citation.semanticscholar; import java.util.List; import java.util.Map; diff --git a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/ReferenceDataItem.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/semanticscholar/ReferenceDataItem.java similarity index 70% rename from src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/ReferenceDataItem.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/semanticscholar/ReferenceDataItem.java index b9c53c355e9..06b31514a0d 100644 --- a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/ReferenceDataItem.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/semanticscholar/ReferenceDataItem.java @@ -1,4 +1,4 @@ -package org.jabref.gui.entryeditor.citationrelationtab.semanticscholar; +package org.jabref.logic.importer.fetcher.citation.semanticscholar; /** * Used for GSON diff --git a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/ReferencesResponse.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/semanticscholar/ReferencesResponse.java similarity index 89% rename from src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/ReferencesResponse.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/semanticscholar/ReferencesResponse.java index 0a6ac34af07..527cca79e08 100644 --- a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/ReferencesResponse.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/semanticscholar/ReferencesResponse.java @@ -1,4 +1,4 @@ -package org.jabref.gui.entryeditor.citationrelationtab.semanticscholar; +package org.jabref.logic.importer.fetcher.citation.semanticscholar; import java.util.List; diff --git a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/SemanticScholarFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/semanticscholar/SemanticScholarFetcher.java similarity index 96% rename from src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/SemanticScholarFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/semanticscholar/SemanticScholarFetcher.java index c085fbc50bd..4a2e1297d9a 100644 --- a/src/main/java/org/jabref/gui/entryeditor/citationrelationtab/semanticscholar/SemanticScholarFetcher.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/semanticscholar/SemanticScholarFetcher.java @@ -1,4 +1,4 @@ -package org.jabref.gui.entryeditor.citationrelationtab.semanticscholar; +package org.jabref.logic.importer.fetcher.citation.semanticscholar; import java.net.MalformedURLException; import java.net.URL; @@ -7,6 +7,7 @@ import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.ImporterPreferences; import org.jabref.logic.importer.fetcher.CustomizableKeyFetcher; +import org.jabref.logic.importer.fetcher.citation.CitationFetcher; import org.jabref.logic.net.URLDownload; import org.jabref.logic.util.URLUtil; import org.jabref.model.entry.BibEntry; diff --git a/src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/DoiToBibtexConverterComIsbnFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/DoiToBibtexConverterComIsbnFetcher.java similarity index 98% rename from src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/DoiToBibtexConverterComIsbnFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/DoiToBibtexConverterComIsbnFetcher.java index 66bd0235ee6..550de7bd044 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/DoiToBibtexConverterComIsbnFetcher.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/DoiToBibtexConverterComIsbnFetcher.java @@ -3,7 +3,6 @@ import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URL; -import java.util.Collections; import java.util.List; import java.util.stream.IntStream; import java.util.stream.Stream; @@ -54,7 +53,7 @@ public Parser getParser() { return inputStream -> { JSONObject response = JsonReader.toJsonObject(inputStream); if (response.isEmpty()) { - return Collections.emptyList(); + return List.of(); } String error = response.optString("error"); diff --git a/src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/EbookDeIsbnFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/EbookDeIsbnFetcher.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/EbookDeIsbnFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/EbookDeIsbnFetcher.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/IsbnFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/IsbnFetcher.java similarity index 98% rename from src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/IsbnFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/IsbnFetcher.java index ac94fe5f919..a60c942a45f 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/IsbnFetcher.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/IsbnFetcher.java @@ -1,7 +1,6 @@ package org.jabref.logic.importer.fetcher.isbntobibtex; import java.util.ArrayList; -import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Objects; @@ -95,7 +94,7 @@ public List performSearch(BibEntry entry) throws FetcherException { if (isbn.isPresent()) { return OptionalUtil.toList(performSearchById(isbn.get())); } else { - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/OpenLibraryIsbnFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/OpenLibraryIsbnFetcher.java similarity index 98% rename from src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/OpenLibraryIsbnFetcher.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/OpenLibraryIsbnFetcher.java index cb8e7267d77..0c6f76b9a32 100644 --- a/src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/OpenLibraryIsbnFetcher.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/OpenLibraryIsbnFetcher.java @@ -3,7 +3,6 @@ import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URL; -import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -65,7 +64,7 @@ public Parser getParser() { return inputStream -> { JSONObject response = JsonReader.toJsonObject(inputStream); if (response.isEmpty()) { - return Collections.emptyList(); + return List.of(); } String error = response.optString("error"); diff --git a/src/main/java/org/jabref/logic/importer/fetcher/transformers/AbstractQueryTransformer.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/AbstractQueryTransformer.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/transformers/AbstractQueryTransformer.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/AbstractQueryTransformer.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/transformers/ArXivQueryTransformer.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/ArXivQueryTransformer.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/transformers/ArXivQueryTransformer.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/ArXivQueryTransformer.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/transformers/BiodiversityLibraryTransformer.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/BiodiversityLibraryTransformer.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/transformers/BiodiversityLibraryTransformer.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/BiodiversityLibraryTransformer.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/transformers/CiteSeerQueryTransformer.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/CiteSeerQueryTransformer.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/transformers/CiteSeerQueryTransformer.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/CiteSeerQueryTransformer.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/transformers/CollectionOfComputerScienceBibliographiesQueryTransformer.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/CollectionOfComputerScienceBibliographiesQueryTransformer.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/transformers/CollectionOfComputerScienceBibliographiesQueryTransformer.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/CollectionOfComputerScienceBibliographiesQueryTransformer.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/transformers/DBLPQueryTransformer.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/DBLPQueryTransformer.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/transformers/DBLPQueryTransformer.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/DBLPQueryTransformer.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/transformers/DefaultLuceneQueryTransformer.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/DefaultLuceneQueryTransformer.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/transformers/DefaultLuceneQueryTransformer.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/DefaultLuceneQueryTransformer.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/transformers/DefaultQueryTransformer.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/DefaultQueryTransformer.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/transformers/DefaultQueryTransformer.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/DefaultQueryTransformer.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/transformers/GVKQueryTransformer.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/GVKQueryTransformer.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/transformers/GVKQueryTransformer.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/GVKQueryTransformer.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/transformers/IEEEQueryTransformer.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/IEEEQueryTransformer.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/transformers/IEEEQueryTransformer.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/IEEEQueryTransformer.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/transformers/ISIDOREQueryTransformer.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/ISIDOREQueryTransformer.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/transformers/ISIDOREQueryTransformer.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/ISIDOREQueryTransformer.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/transformers/JstorQueryTransformer.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/JstorQueryTransformer.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/transformers/JstorQueryTransformer.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/JstorQueryTransformer.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/transformers/LOBIDQueryTransformer.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/LOBIDQueryTransformer.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/transformers/LOBIDQueryTransformer.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/LOBIDQueryTransformer.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/transformers/MedlineQueryTransformer.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/MedlineQueryTransformer.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/transformers/MedlineQueryTransformer.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/MedlineQueryTransformer.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/transformers/ResearchGateQueryTransformer.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/ResearchGateQueryTransformer.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/transformers/ResearchGateQueryTransformer.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/ResearchGateQueryTransformer.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/transformers/ScholarArchiveQueryTransformer.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/ScholarArchiveQueryTransformer.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/transformers/ScholarArchiveQueryTransformer.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/ScholarArchiveQueryTransformer.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/transformers/ScholarQueryTransformer.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/ScholarQueryTransformer.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/transformers/ScholarQueryTransformer.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/ScholarQueryTransformer.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/transformers/SpringerQueryTransformer.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/SpringerQueryTransformer.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/transformers/SpringerQueryTransformer.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/SpringerQueryTransformer.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/transformers/YearAndYearRangeByFilteringQueryTransformer.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/YearAndYearRangeByFilteringQueryTransformer.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/transformers/YearAndYearRangeByFilteringQueryTransformer.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/YearAndYearRangeByFilteringQueryTransformer.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/transformers/YearRangeByFilteringQueryTransformer.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/YearRangeByFilteringQueryTransformer.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/transformers/YearRangeByFilteringQueryTransformer.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/YearRangeByFilteringQueryTransformer.java diff --git a/src/main/java/org/jabref/logic/importer/fetcher/transformers/ZbMathQueryTransformer.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/ZbMathQueryTransformer.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fetcher/transformers/ZbMathQueryTransformer.java rename to jablib/src/main/java/org/jabref/logic/importer/fetcher/transformers/ZbMathQueryTransformer.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/ACMPortalParser.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/ACMPortalParser.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/ACMPortalParser.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/ACMPortalParser.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/BibliographyFromPdfImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/BibliographyFromPdfImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/BibliographyFromPdfImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/BibliographyFromPdfImporter.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/BiblioscapeImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/BiblioscapeImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/BiblioscapeImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/BiblioscapeImporter.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/BibtexImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/BibtexImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/BibtexImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/BibtexImporter.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/BibtexParser.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/BibtexParser.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/BibtexParser.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/BibtexParser.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/CffImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/CffImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/CffImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/CffImporter.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/CitaviXmlImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/CitaviXmlImporter.java similarity index 99% rename from src/main/java/org/jabref/logic/importer/fileformat/CitaviXmlImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/CitaviXmlImporter.java index 9bed9fdeadb..8a514730d7c 100644 --- a/src/main/java/org/jabref/logic/importer/fileformat/CitaviXmlImporter.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fileformat/CitaviXmlImporter.java @@ -10,7 +10,6 @@ import java.nio.file.StandardCopyOption; import java.nio.file.StandardOpenOption; import java.util.ArrayList; -import java.util.Collections; import java.util.EnumSet; import java.util.HashMap; import java.util.List; @@ -443,7 +442,7 @@ public List parseEntries(InputStream inputStream) { } catch (IOException e) { LOGGER.error(e.getLocalizedMessage(), e); } - return Collections.emptyList(); + return List.of(); } private BufferedReader getReaderFromZip(Path filePath) throws IOException { diff --git a/src/main/java/org/jabref/logic/importer/fileformat/CiteSeerParser.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/CiteSeerParser.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/CiteSeerParser.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/CiteSeerParser.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/CoinsParser.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/CoinsParser.java similarity index 97% rename from src/main/java/org/jabref/logic/importer/fileformat/CoinsParser.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/CoinsParser.java index 2ffeba04337..105b14b5494 100644 --- a/src/main/java/org/jabref/logic/importer/fileformat/CoinsParser.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fileformat/CoinsParser.java @@ -4,7 +4,6 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -67,7 +66,7 @@ public List parseEntries(InputStream inputStream) throws ParseExceptio } entry.setField(StandardField.AUTHOR, String.join(" and ", authors)); - return Collections.singletonList(entry); + return List.of(entry); } private void appendData(String data, BibEntry entry, Pattern pattern, Field field) { diff --git a/src/main/java/org/jabref/logic/importer/fileformat/CopacImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/CopacImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/CopacImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/CopacImporter.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/CustomImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/CustomImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/CustomImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/CustomImporter.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/EndnoteImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/EndnoteImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/EndnoteImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/EndnoteImporter.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/EndnoteXmlImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/EndnoteXmlImporter.java similarity index 99% rename from src/main/java/org/jabref/logic/importer/fileformat/EndnoteXmlImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/EndnoteXmlImporter.java index d6f52a23ac2..f356d5570f1 100644 --- a/src/main/java/org/jabref/logic/importer/fileformat/EndnoteXmlImporter.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fileformat/EndnoteXmlImporter.java @@ -6,7 +6,6 @@ import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.Map; @@ -454,6 +453,6 @@ public List parseEntries(InputStream inputStream) throws ParseExceptio } catch (IOException e) { LOGGER.error("Could not import file", e); } - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/logic/importer/fileformat/InspecImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/InspecImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/InspecImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/InspecImporter.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/IsiImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/IsiImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/IsiImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/IsiImporter.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/MarcXmlParser.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/MarcXmlParser.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/MarcXmlParser.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/MarcXmlParser.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/MedlineImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/MedlineImporter.java similarity index 99% rename from src/main/java/org/jabref/logic/importer/fileformat/MedlineImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/MedlineImporter.java index 34117c668f0..1695d90b250 100644 --- a/src/main/java/org/jabref/logic/importer/fileformat/MedlineImporter.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fileformat/MedlineImporter.java @@ -6,7 +6,6 @@ import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -1236,6 +1235,6 @@ public List parseEntries(InputStream inputStream) throws ParseExceptio } catch (IOException e) { LOGGER.error(e.getLocalizedMessage(), e); } - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/logic/importer/fileformat/MedlinePlainImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/MedlinePlainImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/MedlinePlainImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/MedlinePlainImporter.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/ModsImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/ModsImporter.java similarity index 99% rename from src/main/java/org/jabref/logic/importer/fileformat/ModsImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/ModsImporter.java index b01ebf41772..c5ce1251d00 100644 --- a/src/main/java/org/jabref/logic/importer/fileformat/ModsImporter.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fileformat/ModsImporter.java @@ -6,7 +6,6 @@ import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -15,7 +14,6 @@ import java.util.Optional; import java.util.Set; import java.util.regex.Pattern; -import java.util.stream.Collectors; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamException; @@ -521,7 +519,7 @@ private void putDate(Map fields, String elementName, String date) private void putIfListIsNotEmpty(Map fields, List list, Field key, String separator) { if (!list.isEmpty()) { - fields.put(key, list.stream().collect(Collectors.joining(separator))); + fields.put(key, String.join(separator, list)); } } @@ -616,6 +614,6 @@ public List parseEntries(InputStream inputStream) throws ParseExceptio } catch (IOException e) { LOGGER.error(e.getLocalizedMessage(), e); } - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/logic/importer/fileformat/MrDLibImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/MrDLibImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/MrDLibImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/MrDLibImporter.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/MsBibImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/MsBibImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/MsBibImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/MsBibImporter.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/OvidImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/OvidImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/OvidImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/OvidImporter.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/PdfMergeMetadataImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/PdfMergeMetadataImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/PdfMergeMetadataImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/PdfMergeMetadataImporter.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/PicaXmlParser.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/PicaXmlParser.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/PicaXmlParser.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/PicaXmlParser.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/RepecNepImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/RepecNepImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/RepecNepImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/RepecNepImporter.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/RisImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/RisImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/RisImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/RisImporter.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/medline/ArticleId.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/medline/ArticleId.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/medline/ArticleId.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/medline/ArticleId.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/medline/Investigator.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/medline/Investigator.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/medline/Investigator.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/medline/Investigator.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/medline/MeshHeading.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/medline/MeshHeading.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/medline/MeshHeading.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/medline/MeshHeading.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/medline/OtherId.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/medline/OtherId.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/medline/OtherId.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/medline/OtherId.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/medline/PersonalNameSubject.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/medline/PersonalNameSubject.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/medline/PersonalNameSubject.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/medline/PersonalNameSubject.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/mods/Identifier.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/mods/Identifier.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/mods/Identifier.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/mods/Identifier.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/mods/Name.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/mods/Name.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/mods/Name.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/mods/Name.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/mods/RecordInfo.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/mods/RecordInfo.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/mods/RecordInfo.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/mods/RecordInfo.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/mods/package-info.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/mods/package-info.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/mods/package-info.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/mods/package-info.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfContentImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfContentImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfContentImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfContentImporter.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfEmbeddedBibFileImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfEmbeddedBibFileImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfEmbeddedBibFileImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfEmbeddedBibFileImporter.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfGrobidImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfGrobidImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfGrobidImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfGrobidImporter.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfImporter.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfVerbatimBibtexImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfVerbatimBibtexImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfVerbatimBibtexImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfVerbatimBibtexImporter.java diff --git a/src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfXmpImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfXmpImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfXmpImporter.java rename to jablib/src/main/java/org/jabref/logic/importer/fileformat/pdf/PdfXmpImporter.java diff --git a/src/main/java/org/jabref/logic/importer/plaincitation/GrobidPlainCitationParser.java b/jablib/src/main/java/org/jabref/logic/importer/plaincitation/GrobidPlainCitationParser.java similarity index 97% rename from src/main/java/org/jabref/logic/importer/plaincitation/GrobidPlainCitationParser.java rename to jablib/src/main/java/org/jabref/logic/importer/plaincitation/GrobidPlainCitationParser.java index b26e8e9154c..34f1db1ec26 100644 --- a/src/main/java/org/jabref/logic/importer/plaincitation/GrobidPlainCitationParser.java +++ b/jablib/src/main/java/org/jabref/logic/importer/plaincitation/GrobidPlainCitationParser.java @@ -4,13 +4,13 @@ import java.net.SocketTimeoutException; import java.util.Optional; -import org.jabref.http.dto.SimpleHttpResponse; import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.logic.importer.ParseException; import org.jabref.logic.importer.util.GrobidPreferences; import org.jabref.logic.importer.util.GrobidService; import org.jabref.model.entry.BibEntry; +import org.jabref.model.http.SimpleHttpResponse; import org.jsoup.HttpStatusException; import org.slf4j.Logger; diff --git a/src/main/java/org/jabref/logic/importer/plaincitation/LlmPlainCitationParser.java b/jablib/src/main/java/org/jabref/logic/importer/plaincitation/LlmPlainCitationParser.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/plaincitation/LlmPlainCitationParser.java rename to jablib/src/main/java/org/jabref/logic/importer/plaincitation/LlmPlainCitationParser.java diff --git a/src/main/java/org/jabref/logic/importer/plaincitation/PlainCitationParser.java b/jablib/src/main/java/org/jabref/logic/importer/plaincitation/PlainCitationParser.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/plaincitation/PlainCitationParser.java rename to jablib/src/main/java/org/jabref/logic/importer/plaincitation/PlainCitationParser.java diff --git a/src/main/java/org/jabref/logic/importer/plaincitation/PlainCitationParserChoice.java b/jablib/src/main/java/org/jabref/logic/importer/plaincitation/PlainCitationParserChoice.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/plaincitation/PlainCitationParserChoice.java rename to jablib/src/main/java/org/jabref/logic/importer/plaincitation/PlainCitationParserChoice.java diff --git a/src/main/java/org/jabref/logic/importer/plaincitation/RuleBasedPlainCitationParser.java b/jablib/src/main/java/org/jabref/logic/importer/plaincitation/RuleBasedPlainCitationParser.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/plaincitation/RuleBasedPlainCitationParser.java rename to jablib/src/main/java/org/jabref/logic/importer/plaincitation/RuleBasedPlainCitationParser.java diff --git a/src/main/java/org/jabref/logic/importer/plaincitation/SeveralPlainCitationParser.java b/jablib/src/main/java/org/jabref/logic/importer/plaincitation/SeveralPlainCitationParser.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/plaincitation/SeveralPlainCitationParser.java rename to jablib/src/main/java/org/jabref/logic/importer/plaincitation/SeveralPlainCitationParser.java diff --git a/src/main/java/org/jabref/logic/importer/util/FileFieldParser.java b/jablib/src/main/java/org/jabref/logic/importer/util/FileFieldParser.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/util/FileFieldParser.java rename to jablib/src/main/java/org/jabref/logic/importer/util/FileFieldParser.java diff --git a/src/main/java/org/jabref/logic/importer/util/GrobidPreferences.java b/jablib/src/main/java/org/jabref/logic/importer/util/GrobidPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/util/GrobidPreferences.java rename to jablib/src/main/java/org/jabref/logic/importer/util/GrobidPreferences.java diff --git a/src/main/java/org/jabref/logic/importer/util/GrobidService.java b/jablib/src/main/java/org/jabref/logic/importer/util/GrobidService.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/util/GrobidService.java rename to jablib/src/main/java/org/jabref/logic/importer/util/GrobidService.java diff --git a/src/main/java/org/jabref/logic/importer/util/GroupsParser.java b/jablib/src/main/java/org/jabref/logic/importer/util/GroupsParser.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/util/GroupsParser.java rename to jablib/src/main/java/org/jabref/logic/importer/util/GroupsParser.java diff --git a/src/main/java/org/jabref/logic/importer/util/INSPIREBibtexFilterReader.java b/jablib/src/main/java/org/jabref/logic/importer/util/INSPIREBibtexFilterReader.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/util/INSPIREBibtexFilterReader.java rename to jablib/src/main/java/org/jabref/logic/importer/util/INSPIREBibtexFilterReader.java diff --git a/src/main/java/org/jabref/logic/importer/util/IdentifierParser.java b/jablib/src/main/java/org/jabref/logic/importer/util/IdentifierParser.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/util/IdentifierParser.java rename to jablib/src/main/java/org/jabref/logic/importer/util/IdentifierParser.java diff --git a/src/main/java/org/jabref/logic/importer/util/JsonReader.java b/jablib/src/main/java/org/jabref/logic/importer/util/JsonReader.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/util/JsonReader.java rename to jablib/src/main/java/org/jabref/logic/importer/util/JsonReader.java diff --git a/src/main/java/org/jabref/logic/importer/util/MathMLParser.java b/jablib/src/main/java/org/jabref/logic/importer/util/MathMLParser.java similarity index 95% rename from src/main/java/org/jabref/logic/importer/util/MathMLParser.java rename to jablib/src/main/java/org/jabref/logic/importer/util/MathMLParser.java index 39975d0ceed..7c8a00bf2b6 100644 --- a/src/main/java/org/jabref/logic/importer/util/MathMLParser.java +++ b/jablib/src/main/java/org/jabref/logic/importer/util/MathMLParser.java @@ -1,7 +1,7 @@ package org.jabref.logic.importer.util; import java.io.InputStream; -import java.io.StringReader; +import java.io.Reader; import java.io.StringWriter; import javax.xml.stream.XMLStreamReader; @@ -38,7 +38,7 @@ public static String parse(XMLStreamReader reader) { xmlContent = StaxParser.getXMLContent(reader); // convert to LaTeX using XSLT file - Source xmlSource = new StreamSource(new StringReader(xmlContent)); + Source xmlSource = new StreamSource(Reader.of(xmlContent)); // No SystemId required, because no relative URLs need to be resolved Source xsltSource = new StreamSource(xsltResource, MathMLParser.class.getResource(XSLT_FILE_PATH).toExternalForm()); diff --git a/src/main/java/org/jabref/logic/importer/util/MediaTypes.java b/jablib/src/main/java/org/jabref/logic/importer/util/MediaTypes.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/util/MediaTypes.java rename to jablib/src/main/java/org/jabref/logic/importer/util/MediaTypes.java diff --git a/src/main/java/org/jabref/logic/importer/util/MetaDataParser.java b/jablib/src/main/java/org/jabref/logic/importer/util/MetaDataParser.java similarity index 99% rename from src/main/java/org/jabref/logic/importer/util/MetaDataParser.java rename to jablib/src/main/java/org/jabref/logic/importer/util/MetaDataParser.java index 918e8e6b5c5..f18372135ee 100644 --- a/src/main/java/org/jabref/logic/importer/util/MetaDataParser.java +++ b/jablib/src/main/java/org/jabref/logic/importer/util/MetaDataParser.java @@ -2,7 +2,6 @@ import java.io.IOException; import java.io.Reader; -import java.io.StringReader; import java.nio.file.InvalidPathException; import java.nio.file.Path; import java.util.ArrayList; @@ -209,7 +208,7 @@ private static String getSingleItem(List value) throws ParseException { } private static List getAsList(String value) throws ParseException { - StringReader valueReader = new StringReader(value); + Reader valueReader = Reader.of(value); List orderedValue = new ArrayList<>(); // We must allow for ; and \ in escape sequences. diff --git a/src/main/java/org/jabref/logic/importer/util/ShortDOIService.java b/jablib/src/main/java/org/jabref/logic/importer/util/ShortDOIService.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/util/ShortDOIService.java rename to jablib/src/main/java/org/jabref/logic/importer/util/ShortDOIService.java diff --git a/src/main/java/org/jabref/logic/importer/util/ShortDOIServiceException.java b/jablib/src/main/java/org/jabref/logic/importer/util/ShortDOIServiceException.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/util/ShortDOIServiceException.java rename to jablib/src/main/java/org/jabref/logic/importer/util/ShortDOIServiceException.java diff --git a/src/main/java/org/jabref/logic/importer/util/StaxParser.java b/jablib/src/main/java/org/jabref/logic/importer/util/StaxParser.java similarity index 100% rename from src/main/java/org/jabref/logic/importer/util/StaxParser.java rename to jablib/src/main/java/org/jabref/logic/importer/util/StaxParser.java diff --git a/src/main/java/org/jabref/logic/integrity/ASCIICharacterChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/ASCIICharacterChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/ASCIICharacterChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/ASCIICharacterChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/AbbreviationChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/AbbreviationChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/AbbreviationChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/AbbreviationChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/AmpersandChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/AmpersandChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/AmpersandChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/AmpersandChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/BibStringChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/BibStringChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/BibStringChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/BibStringChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/BibTeXEntryTypeChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/BibTeXEntryTypeChecker.java similarity index 88% rename from src/main/java/org/jabref/logic/integrity/BibTeXEntryTypeChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/BibTeXEntryTypeChecker.java index b83e3039e93..953f8d222de 100644 --- a/src/main/java/org/jabref/logic/integrity/BibTeXEntryTypeChecker.java +++ b/jablib/src/main/java/org/jabref/logic/integrity/BibTeXEntryTypeChecker.java @@ -1,6 +1,5 @@ package org.jabref.logic.integrity; -import java.util.Collections; import java.util.List; import org.jabref.logic.l10n.Localization; @@ -19,10 +18,10 @@ public class BibTeXEntryTypeChecker implements EntryChecker { @Override public List check(BibEntry entry) { if (EntryTypeFactory.isExclusiveBiblatex(entry.getType())) { - return Collections.singletonList( + return List.of( new IntegrityMessage(Localization.lang("Entry type %0 is only defined for Biblatex but not for BibTeX", entry.getType().getDisplayName()), entry, InternalField.KEY_FIELD) ); } - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/logic/integrity/BooktitleChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/BooktitleChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/BooktitleChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/BooktitleChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/BracesCorrector.java b/jablib/src/main/java/org/jabref/logic/integrity/BracesCorrector.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/BracesCorrector.java rename to jablib/src/main/java/org/jabref/logic/integrity/BracesCorrector.java diff --git a/src/main/java/org/jabref/logic/integrity/BracketChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/BracketChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/BracketChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/BracketChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/CitationKeyChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/CitationKeyChecker.java similarity index 85% rename from src/main/java/org/jabref/logic/integrity/CitationKeyChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/CitationKeyChecker.java index 931bdd1a52e..162b2d3776d 100644 --- a/src/main/java/org/jabref/logic/integrity/CitationKeyChecker.java +++ b/jablib/src/main/java/org/jabref/logic/integrity/CitationKeyChecker.java @@ -1,6 +1,5 @@ package org.jabref.logic.integrity; -import java.util.Collections; import java.util.List; import java.util.Optional; @@ -21,15 +20,15 @@ public List check(BibEntry entry) { Optional title = entry.getField(StandardField.TITLE); Optional year = entry.getField(StandardField.YEAR); if (author.isEmpty() || title.isEmpty() || year.isEmpty()) { - return Collections.emptyList(); + return List.of(); } if (StringUtil.isBlank(entry.getCitationKey())) { String authorTitleYear = entry.getAuthorTitleYear(100); - return Collections.singletonList(new IntegrityMessage( + return List.of(new IntegrityMessage( Localization.lang("empty citation key") + ": " + authorTitleYear, entry, InternalField.KEY_FIELD)); } - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/logic/integrity/CitationKeyDeviationChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/CitationKeyDeviationChecker.java similarity index 89% rename from src/main/java/org/jabref/logic/integrity/CitationKeyDeviationChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/CitationKeyDeviationChecker.java index 47d7bff811a..bd755caad88 100644 --- a/src/main/java/org/jabref/logic/integrity/CitationKeyDeviationChecker.java +++ b/jablib/src/main/java/org/jabref/logic/integrity/CitationKeyDeviationChecker.java @@ -1,6 +1,5 @@ package org.jabref.logic.integrity; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -26,7 +25,7 @@ public CitationKeyDeviationChecker(BibDatabaseContext bibDatabaseContext, Citati public List check(BibEntry entry) { Optional valuekey = entry.getCitationKey(); if (valuekey.isEmpty()) { - return Collections.emptyList(); + return List.of(); } String key = valuekey.get(); @@ -35,10 +34,10 @@ public List check(BibEntry entry) { String generatedKey = new CitationKeyGenerator(bibDatabaseContext, citationKeyPatternPreferences).generateKey(entry); if (!Objects.equals(key, generatedKey)) { - return Collections.singletonList(new IntegrityMessage( + return List.of(new IntegrityMessage( Localization.lang("Citation key deviates from generated key"), entry, InternalField.KEY_FIELD)); } - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/logic/integrity/CitationKeyDuplicationChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/CitationKeyDuplicationChecker.java similarity index 85% rename from src/main/java/org/jabref/logic/integrity/CitationKeyDuplicationChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/CitationKeyDuplicationChecker.java index ae222225e26..4dac5f36eb9 100644 --- a/src/main/java/org/jabref/logic/integrity/CitationKeyDuplicationChecker.java +++ b/jablib/src/main/java/org/jabref/logic/integrity/CitationKeyDuplicationChecker.java @@ -1,6 +1,5 @@ package org.jabref.logic.integrity; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -22,14 +21,14 @@ public CitationKeyDuplicationChecker(BibDatabase database) { public List check(BibEntry entry) { Optional citeKey = entry.getCitationKey(); if (citeKey.isEmpty()) { - return Collections.emptyList(); + return List.of(); } boolean isDuplicate = database.isDuplicateCitationKeyExisting(citeKey.get()); if (isDuplicate) { - return Collections.singletonList( + return List.of( new IntegrityMessage(Localization.lang("Duplicate citation key"), entry, StandardField.KEY)); } - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/logic/integrity/DatabaseChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/DatabaseChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/DatabaseChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/DatabaseChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/DateChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/DateChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/DateChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/DateChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/DoiDuplicationChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/DoiDuplicationChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/DoiDuplicationChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/DoiDuplicationChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/DoiValidityChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/DoiValidityChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/DoiValidityChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/DoiValidityChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/EditionChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/EditionChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/EditionChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/EditionChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/EntryChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/EntryChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/EntryChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/EntryChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/EntryLinkChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/EntryLinkChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/EntryLinkChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/EntryLinkChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/FieldChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/FieldChecker.java similarity index 77% rename from src/main/java/org/jabref/logic/integrity/FieldChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/FieldChecker.java index fa809a884cb..5412c478845 100644 --- a/src/main/java/org/jabref/logic/integrity/FieldChecker.java +++ b/jablib/src/main/java/org/jabref/logic/integrity/FieldChecker.java @@ -1,6 +1,5 @@ package org.jabref.logic.integrity; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -25,10 +24,6 @@ public FieldChecker(Field field, ValueChecker checker) { @Override public List check(BibEntry entry) { Optional value = entry.getField(field); - if (value.isEmpty()) { - return Collections.emptyList(); - } - - return OptionalUtil.toList(checker.checkValue(value.get()).map(message -> new IntegrityMessage(message, entry, field))); + return value.map(s -> OptionalUtil.toList(checker.checkValue(s).map(message -> new IntegrityMessage(message, entry, field)))).orElseGet(List::of); } } diff --git a/src/main/java/org/jabref/logic/integrity/FieldCheckers.java b/jablib/src/main/java/org/jabref/logic/integrity/FieldCheckers.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/FieldCheckers.java rename to jablib/src/main/java/org/jabref/logic/integrity/FieldCheckers.java diff --git a/src/main/java/org/jabref/logic/integrity/FileChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/FileChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/FileChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/FileChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/HTMLCharacterChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/HTMLCharacterChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/HTMLCharacterChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/HTMLCharacterChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/HowPublishedChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/HowPublishedChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/HowPublishedChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/HowPublishedChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/ISBNChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/ISBNChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/ISBNChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/ISBNChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/ISSNChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/ISSNChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/ISSNChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/ISSNChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/IntegrityCheck.java b/jablib/src/main/java/org/jabref/logic/integrity/IntegrityCheck.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/IntegrityCheck.java rename to jablib/src/main/java/org/jabref/logic/integrity/IntegrityCheck.java diff --git a/src/main/java/org/jabref/logic/integrity/IntegrityMessage.java b/jablib/src/main/java/org/jabref/logic/integrity/IntegrityMessage.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/IntegrityMessage.java rename to jablib/src/main/java/org/jabref/logic/integrity/IntegrityMessage.java diff --git a/src/main/java/org/jabref/logic/integrity/JournalInAbbreviationListChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/JournalInAbbreviationListChecker.java similarity index 80% rename from src/main/java/org/jabref/logic/integrity/JournalInAbbreviationListChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/JournalInAbbreviationListChecker.java index 88269b27dd7..7e0cc55772b 100644 --- a/src/main/java/org/jabref/logic/integrity/JournalInAbbreviationListChecker.java +++ b/jablib/src/main/java/org/jabref/logic/integrity/JournalInAbbreviationListChecker.java @@ -1,6 +1,5 @@ package org.jabref.logic.integrity; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -24,14 +23,14 @@ public JournalInAbbreviationListChecker(Field field, JournalAbbreviationReposito public List check(BibEntry entry) { Optional value = entry.getFieldOrAliasLatexFree(field); if (value.isEmpty()) { - return Collections.emptyList(); + return List.of(); } final String journal = value.get(); if (!abbreviationRepository.isKnownName(journal)) { - return Collections.singletonList(new IntegrityMessage(Localization.lang("journal not found in abbreviation list"), entry, field)); + return List.of(new IntegrityMessage(Localization.lang("journal not found in abbreviation list"), entry, field)); } - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/logic/integrity/LatexIntegrityChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/LatexIntegrityChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/LatexIntegrityChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/LatexIntegrityChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/MonthChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/MonthChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/MonthChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/MonthChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/NoBibtexFieldChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/NoBibtexFieldChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/NoBibtexFieldChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/NoBibtexFieldChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/NoURLChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/NoURLChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/NoURLChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/NoURLChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/NoteChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/NoteChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/NoteChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/NoteChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/PagesChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/PagesChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/PagesChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/PagesChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/PersonNamesChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/PersonNamesChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/PersonNamesChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/PersonNamesChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/TitleChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/TitleChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/TitleChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/TitleChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/TypeChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/TypeChecker.java similarity index 79% rename from src/main/java/org/jabref/logic/integrity/TypeChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/TypeChecker.java index a22663e53bf..b9290933321 100644 --- a/src/main/java/org/jabref/logic/integrity/TypeChecker.java +++ b/jablib/src/main/java/org/jabref/logic/integrity/TypeChecker.java @@ -1,6 +1,5 @@ package org.jabref.logic.integrity; -import java.util.Collections; import java.util.List; import java.util.Optional; @@ -15,14 +14,14 @@ public class TypeChecker implements EntryChecker { public List check(BibEntry entry) { Optional value = entry.getField(StandardField.PAGES); if (value.isEmpty()) { - return Collections.emptyList(); + return List.of(); } if (StandardEntryType.Proceedings == entry.getType()) { - return Collections.singletonList(new IntegrityMessage( + return List.of(new IntegrityMessage( Localization.lang("wrong entry type as proceedings has page numbers"), entry, StandardField.PAGES)); } - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/logic/integrity/UTF8Checker.java b/jablib/src/main/java/org/jabref/logic/integrity/UTF8Checker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/UTF8Checker.java rename to jablib/src/main/java/org/jabref/logic/integrity/UTF8Checker.java diff --git a/src/main/java/org/jabref/logic/integrity/UnicodeNormalFormCanonicalCompositionCheck.java b/jablib/src/main/java/org/jabref/logic/integrity/UnicodeNormalFormCanonicalCompositionCheck.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/UnicodeNormalFormCanonicalCompositionCheck.java rename to jablib/src/main/java/org/jabref/logic/integrity/UnicodeNormalFormCanonicalCompositionCheck.java diff --git a/src/main/java/org/jabref/logic/integrity/UrlChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/UrlChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/UrlChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/UrlChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/ValidCitationKeyChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/ValidCitationKeyChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/ValidCitationKeyChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/ValidCitationKeyChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/ValueChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/ValueChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/ValueChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/ValueChecker.java diff --git a/src/main/java/org/jabref/logic/integrity/YearChecker.java b/jablib/src/main/java/org/jabref/logic/integrity/YearChecker.java similarity index 100% rename from src/main/java/org/jabref/logic/integrity/YearChecker.java rename to jablib/src/main/java/org/jabref/logic/integrity/YearChecker.java diff --git a/src/main/java/org/jabref/logic/journals/Abbreviation.java b/jablib/src/main/java/org/jabref/logic/journals/Abbreviation.java similarity index 100% rename from src/main/java/org/jabref/logic/journals/Abbreviation.java rename to jablib/src/main/java/org/jabref/logic/journals/Abbreviation.java diff --git a/src/main/java/org/jabref/logic/journals/AbbreviationFormat.java b/jablib/src/main/java/org/jabref/logic/journals/AbbreviationFormat.java similarity index 100% rename from src/main/java/org/jabref/logic/journals/AbbreviationFormat.java rename to jablib/src/main/java/org/jabref/logic/journals/AbbreviationFormat.java diff --git a/src/main/java/org/jabref/logic/journals/AbbreviationParser.java b/jablib/src/main/java/org/jabref/logic/journals/AbbreviationParser.java similarity index 100% rename from src/main/java/org/jabref/logic/journals/AbbreviationParser.java rename to jablib/src/main/java/org/jabref/logic/journals/AbbreviationParser.java diff --git a/src/main/java/org/jabref/logic/journals/AbbreviationWriter.java b/jablib/src/main/java/org/jabref/logic/journals/AbbreviationWriter.java similarity index 100% rename from src/main/java/org/jabref/logic/journals/AbbreviationWriter.java rename to jablib/src/main/java/org/jabref/logic/journals/AbbreviationWriter.java diff --git a/src/main/java/org/jabref/logic/journals/JournalAbbreviationLoader.java b/jablib/src/main/java/org/jabref/logic/journals/JournalAbbreviationLoader.java similarity index 99% rename from src/main/java/org/jabref/logic/journals/JournalAbbreviationLoader.java rename to jablib/src/main/java/org/jabref/logic/journals/JournalAbbreviationLoader.java index 0d0b7d665c0..951d97df070 100644 --- a/src/main/java/org/jabref/logic/journals/JournalAbbreviationLoader.java +++ b/jablib/src/main/java/org/jabref/logic/journals/JournalAbbreviationLoader.java @@ -91,6 +91,6 @@ private static LtwaRepository loadLtwaRepository() throws IOException { } public static JournalAbbreviationRepository loadBuiltInRepository() { - return loadRepository(new JournalAbbreviationPreferences(Collections.emptyList(), true)); + return loadRepository(new JournalAbbreviationPreferences(List.of(), true)); } } diff --git a/src/main/java/org/jabref/logic/journals/JournalAbbreviationPreferences.java b/jablib/src/main/java/org/jabref/logic/journals/JournalAbbreviationPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/journals/JournalAbbreviationPreferences.java rename to jablib/src/main/java/org/jabref/logic/journals/JournalAbbreviationPreferences.java diff --git a/src/main/java/org/jabref/logic/journals/JournalAbbreviationRepository.java b/jablib/src/main/java/org/jabref/logic/journals/JournalAbbreviationRepository.java similarity index 100% rename from src/main/java/org/jabref/logic/journals/JournalAbbreviationRepository.java rename to jablib/src/main/java/org/jabref/logic/journals/JournalAbbreviationRepository.java diff --git a/src/main/java/org/jabref/logic/journals/JournalInformation.java b/jablib/src/main/java/org/jabref/logic/journals/JournalInformation.java similarity index 100% rename from src/main/java/org/jabref/logic/journals/JournalInformation.java rename to jablib/src/main/java/org/jabref/logic/journals/JournalInformation.java diff --git a/src/main/java/org/jabref/logic/journals/ltwa/LtwaEntry.java b/jablib/src/main/java/org/jabref/logic/journals/ltwa/LtwaEntry.java similarity index 100% rename from src/main/java/org/jabref/logic/journals/ltwa/LtwaEntry.java rename to jablib/src/main/java/org/jabref/logic/journals/ltwa/LtwaEntry.java diff --git a/src/main/java/org/jabref/logic/journals/ltwa/LtwaRepository.java b/jablib/src/main/java/org/jabref/logic/journals/ltwa/LtwaRepository.java similarity index 100% rename from src/main/java/org/jabref/logic/journals/ltwa/LtwaRepository.java rename to jablib/src/main/java/org/jabref/logic/journals/ltwa/LtwaRepository.java diff --git a/src/main/java/org/jabref/logic/journals/ltwa/LtwaTsvParser.java b/jablib/src/main/java/org/jabref/logic/journals/ltwa/LtwaTsvParser.java similarity index 100% rename from src/main/java/org/jabref/logic/journals/ltwa/LtwaTsvParser.java rename to jablib/src/main/java/org/jabref/logic/journals/ltwa/LtwaTsvParser.java diff --git a/src/main/java/org/jabref/logic/journals/ltwa/NormalizeUtils.java b/jablib/src/main/java/org/jabref/logic/journals/ltwa/NormalizeUtils.java similarity index 100% rename from src/main/java/org/jabref/logic/journals/ltwa/NormalizeUtils.java rename to jablib/src/main/java/org/jabref/logic/journals/ltwa/NormalizeUtils.java diff --git a/src/main/java/org/jabref/logic/journals/ltwa/PrefixTree.java b/jablib/src/main/java/org/jabref/logic/journals/ltwa/PrefixTree.java similarity index 100% rename from src/main/java/org/jabref/logic/journals/ltwa/PrefixTree.java rename to jablib/src/main/java/org/jabref/logic/journals/ltwa/PrefixTree.java diff --git a/src/main/java/org/jabref/logic/l10n/Encodings.java b/jablib/src/main/java/org/jabref/logic/l10n/Encodings.java similarity index 100% rename from src/main/java/org/jabref/logic/l10n/Encodings.java rename to jablib/src/main/java/org/jabref/logic/l10n/Encodings.java diff --git a/src/main/java/org/jabref/logic/l10n/Language.java b/jablib/src/main/java/org/jabref/logic/l10n/Language.java similarity index 100% rename from src/main/java/org/jabref/logic/l10n/Language.java rename to jablib/src/main/java/org/jabref/logic/l10n/Language.java diff --git a/src/main/java/org/jabref/logic/l10n/Localization.java b/jablib/src/main/java/org/jabref/logic/l10n/Localization.java similarity index 100% rename from src/main/java/org/jabref/logic/l10n/Localization.java rename to jablib/src/main/java/org/jabref/logic/l10n/Localization.java diff --git a/src/main/java/org/jabref/logic/l10n/LocalizationKey.java b/jablib/src/main/java/org/jabref/logic/l10n/LocalizationKey.java similarity index 100% rename from src/main/java/org/jabref/logic/l10n/LocalizationKey.java rename to jablib/src/main/java/org/jabref/logic/l10n/LocalizationKey.java diff --git a/src/main/java/org/jabref/logic/l10n/LocalizationKeyParams.java b/jablib/src/main/java/org/jabref/logic/l10n/LocalizationKeyParams.java similarity index 100% rename from src/main/java/org/jabref/logic/l10n/LocalizationKeyParams.java rename to jablib/src/main/java/org/jabref/logic/l10n/LocalizationKeyParams.java diff --git a/src/main/java/org/jabref/logic/layout/AbstractParamLayoutFormatter.java b/jablib/src/main/java/org/jabref/logic/layout/AbstractParamLayoutFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/AbstractParamLayoutFormatter.java rename to jablib/src/main/java/org/jabref/logic/layout/AbstractParamLayoutFormatter.java diff --git a/src/main/java/org/jabref/logic/layout/Layout.java b/jablib/src/main/java/org/jabref/logic/layout/Layout.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/Layout.java rename to jablib/src/main/java/org/jabref/logic/layout/Layout.java diff --git a/src/main/java/org/jabref/logic/layout/LayoutEntry.java b/jablib/src/main/java/org/jabref/logic/layout/LayoutEntry.java similarity index 99% rename from src/main/java/org/jabref/logic/layout/LayoutEntry.java rename to jablib/src/main/java/org/jabref/logic/layout/LayoutEntry.java index 772623b072c..7f8fc3f2a28 100644 --- a/src/main/java/org/jabref/logic/layout/LayoutEntry.java +++ b/jablib/src/main/java/org/jabref/logic/layout/LayoutEntry.java @@ -4,7 +4,6 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Objects; @@ -118,7 +117,7 @@ public LayoutEntry(StringInt si, JournalAbbreviationRepository abbreviationRepository) { this.preferences = preferences; this.abbreviationRepository = abbreviationRepository; - this.fileDirForDatabase = Objects.requireNonNullElse(fileDirForDatabase, Collections.emptyList()); + this.fileDirForDatabase = Objects.requireNonNullElse(fileDirForDatabase, List.of()); type = si.i; switch (type) { @@ -141,7 +140,7 @@ public LayoutEntry(List parsedEntries, JournalAbbreviationRepository abbreviationRepository) { this.preferences = preferences; this.abbreviationRepository = abbreviationRepository; - this.fileDirForDatabase = Objects.requireNonNullElse(fileDirForDatabase, Collections.emptyList()); + this.fileDirForDatabase = Objects.requireNonNullElse(fileDirForDatabase, List.of()); List tmpEntries = new ArrayList<>(); String blockStart = parsedEntries.getFirst().s; @@ -610,11 +609,11 @@ public static List> parseMethodsCalls(String calls) { } } else { // Incorrectly terminated open brace - result.add(Collections.singletonList(method)); + result.add(List.of(method)); } } else { String method = calls.substring(start, i); - result.add(Collections.singletonList(method)); + result.add(List.of(method)); } } i++; diff --git a/src/main/java/org/jabref/logic/layout/LayoutFormatter.java b/jablib/src/main/java/org/jabref/logic/layout/LayoutFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/LayoutFormatter.java rename to jablib/src/main/java/org/jabref/logic/layout/LayoutFormatter.java diff --git a/src/main/java/org/jabref/logic/layout/LayoutFormatterBasedFormatter.java b/jablib/src/main/java/org/jabref/logic/layout/LayoutFormatterBasedFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/LayoutFormatterBasedFormatter.java rename to jablib/src/main/java/org/jabref/logic/layout/LayoutFormatterBasedFormatter.java diff --git a/src/main/java/org/jabref/logic/layout/LayoutFormatterPreferences.java b/jablib/src/main/java/org/jabref/logic/layout/LayoutFormatterPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/LayoutFormatterPreferences.java rename to jablib/src/main/java/org/jabref/logic/layout/LayoutFormatterPreferences.java diff --git a/src/main/java/org/jabref/logic/layout/LayoutHelper.java b/jablib/src/main/java/org/jabref/logic/layout/LayoutHelper.java similarity index 98% rename from src/main/java/org/jabref/logic/layout/LayoutHelper.java rename to jablib/src/main/java/org/jabref/logic/layout/LayoutHelper.java index 1a923f17b64..a835b7e7aa1 100644 --- a/src/main/java/org/jabref/logic/layout/LayoutHelper.java +++ b/jablib/src/main/java/org/jabref/logic/layout/LayoutHelper.java @@ -5,7 +5,6 @@ import java.io.Reader; import java.nio.file.Path; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.Objects; @@ -57,7 +56,7 @@ public LayoutHelper(Reader in, public LayoutHelper(Reader in, LayoutFormatterPreferences preferences, JournalAbbreviationRepository abbreviationRepository) { - this(in, Collections.emptyList(), preferences, abbreviationRepository); + this(in, List.of(), preferences, abbreviationRepository); } public Layout getLayoutFromText() throws IOException { @@ -352,7 +351,7 @@ private boolean validAnnotation(int c) throws IOException { return annotation; } - private boolean validChar(int c) throws IOException { + private boolean validChar(int c) { boolean character = Character.isLetter((char) c) || (c == '_'); return character; diff --git a/src/main/java/org/jabref/logic/layout/ParamLayoutFormatter.java b/jablib/src/main/java/org/jabref/logic/layout/ParamLayoutFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/ParamLayoutFormatter.java rename to jablib/src/main/java/org/jabref/logic/layout/ParamLayoutFormatter.java diff --git a/src/main/java/org/jabref/logic/layout/StringInt.java b/jablib/src/main/java/org/jabref/logic/layout/StringInt.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/StringInt.java rename to jablib/src/main/java/org/jabref/logic/layout/StringInt.java diff --git a/src/main/java/org/jabref/logic/layout/TextBasedPreviewLayout.java b/jablib/src/main/java/org/jabref/logic/layout/TextBasedPreviewLayout.java similarity index 90% rename from src/main/java/org/jabref/logic/layout/TextBasedPreviewLayout.java rename to jablib/src/main/java/org/jabref/logic/layout/TextBasedPreviewLayout.java index 328ea411a3d..6be8f31feae 100644 --- a/src/main/java/org/jabref/logic/layout/TextBasedPreviewLayout.java +++ b/jablib/src/main/java/org/jabref/logic/layout/TextBasedPreviewLayout.java @@ -1,7 +1,7 @@ package org.jabref.logic.layout; import java.io.IOException; -import java.io.StringReader; +import java.io.Reader; import org.jabref.logic.journals.JournalAbbreviationRepository; import org.jabref.logic.l10n.Localization; @@ -37,9 +37,9 @@ public TextBasedPreviewLayout(Layout layout) { public void setText(String text) { this.text = text; - StringReader sr = new StringReader(text.replace("__NEWLINE__", "\n")); + Reader reader = Reader.of(text.replace("__NEWLINE__", "\n")); try { - layout = new LayoutHelper(sr, layoutFormatterPreferences, abbreviationRepository).getLayoutFromText(); + layout = new LayoutHelper(reader, layoutFormatterPreferences, abbreviationRepository).getLayoutFromText(); } catch (IOException e) { LOGGER.error("Could not generate layout", e); } diff --git a/src/main/java/org/jabref/logic/layout/format/AuthorAbbreviator.java b/jablib/src/main/java/org/jabref/logic/layout/format/AuthorAbbreviator.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/AuthorAbbreviator.java rename to jablib/src/main/java/org/jabref/logic/layout/format/AuthorAbbreviator.java diff --git a/src/main/java/org/jabref/logic/layout/format/AuthorAndToSemicolonReplacer.java b/jablib/src/main/java/org/jabref/logic/layout/format/AuthorAndToSemicolonReplacer.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/AuthorAndToSemicolonReplacer.java rename to jablib/src/main/java/org/jabref/logic/layout/format/AuthorAndToSemicolonReplacer.java diff --git a/src/main/java/org/jabref/logic/layout/format/AuthorAndsCommaReplacer.java b/jablib/src/main/java/org/jabref/logic/layout/format/AuthorAndsCommaReplacer.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/AuthorAndsCommaReplacer.java rename to jablib/src/main/java/org/jabref/logic/layout/format/AuthorAndsCommaReplacer.java diff --git a/src/main/java/org/jabref/logic/layout/format/AuthorAndsReplacer.java b/jablib/src/main/java/org/jabref/logic/layout/format/AuthorAndsReplacer.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/AuthorAndsReplacer.java rename to jablib/src/main/java/org/jabref/logic/layout/format/AuthorAndsReplacer.java diff --git a/src/main/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastCommas.java b/jablib/src/main/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastCommas.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastCommas.java rename to jablib/src/main/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastCommas.java diff --git a/src/main/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastOxfordCommas.java b/jablib/src/main/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastOxfordCommas.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastOxfordCommas.java rename to jablib/src/main/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastOxfordCommas.java diff --git a/src/main/java/org/jabref/logic/layout/format/AuthorFirstFirst.java b/jablib/src/main/java/org/jabref/logic/layout/format/AuthorFirstFirst.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/AuthorFirstFirst.java rename to jablib/src/main/java/org/jabref/logic/layout/format/AuthorFirstFirst.java diff --git a/src/main/java/org/jabref/logic/layout/format/AuthorFirstFirstCommas.java b/jablib/src/main/java/org/jabref/logic/layout/format/AuthorFirstFirstCommas.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/AuthorFirstFirstCommas.java rename to jablib/src/main/java/org/jabref/logic/layout/format/AuthorFirstFirstCommas.java diff --git a/src/main/java/org/jabref/logic/layout/format/AuthorFirstLastCommas.java b/jablib/src/main/java/org/jabref/logic/layout/format/AuthorFirstLastCommas.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/AuthorFirstLastCommas.java rename to jablib/src/main/java/org/jabref/logic/layout/format/AuthorFirstLastCommas.java diff --git a/src/main/java/org/jabref/logic/layout/format/AuthorFirstLastOxfordCommas.java b/jablib/src/main/java/org/jabref/logic/layout/format/AuthorFirstLastOxfordCommas.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/AuthorFirstLastOxfordCommas.java rename to jablib/src/main/java/org/jabref/logic/layout/format/AuthorFirstLastOxfordCommas.java diff --git a/src/main/java/org/jabref/logic/layout/format/AuthorLF_FF.java b/jablib/src/main/java/org/jabref/logic/layout/format/AuthorLF_FF.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/AuthorLF_FF.java rename to jablib/src/main/java/org/jabref/logic/layout/format/AuthorLF_FF.java diff --git a/src/main/java/org/jabref/logic/layout/format/AuthorLF_FFAbbr.java b/jablib/src/main/java/org/jabref/logic/layout/format/AuthorLF_FFAbbr.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/AuthorLF_FFAbbr.java rename to jablib/src/main/java/org/jabref/logic/layout/format/AuthorLF_FFAbbr.java diff --git a/src/main/java/org/jabref/logic/layout/format/AuthorLastFirst.java b/jablib/src/main/java/org/jabref/logic/layout/format/AuthorLastFirst.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/AuthorLastFirst.java rename to jablib/src/main/java/org/jabref/logic/layout/format/AuthorLastFirst.java diff --git a/src/main/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrCommas.java b/jablib/src/main/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrCommas.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrCommas.java rename to jablib/src/main/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrCommas.java diff --git a/src/main/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrOxfordCommas.java b/jablib/src/main/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrOxfordCommas.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrOxfordCommas.java rename to jablib/src/main/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrOxfordCommas.java diff --git a/src/main/java/org/jabref/logic/layout/format/AuthorLastFirstAbbreviator.java b/jablib/src/main/java/org/jabref/logic/layout/format/AuthorLastFirstAbbreviator.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/AuthorLastFirstAbbreviator.java rename to jablib/src/main/java/org/jabref/logic/layout/format/AuthorLastFirstAbbreviator.java diff --git a/src/main/java/org/jabref/logic/layout/format/AuthorLastFirstCommas.java b/jablib/src/main/java/org/jabref/logic/layout/format/AuthorLastFirstCommas.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/AuthorLastFirstCommas.java rename to jablib/src/main/java/org/jabref/logic/layout/format/AuthorLastFirstCommas.java diff --git a/src/main/java/org/jabref/logic/layout/format/AuthorLastFirstOxfordCommas.java b/jablib/src/main/java/org/jabref/logic/layout/format/AuthorLastFirstOxfordCommas.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/AuthorLastFirstOxfordCommas.java rename to jablib/src/main/java/org/jabref/logic/layout/format/AuthorLastFirstOxfordCommas.java diff --git a/src/main/java/org/jabref/logic/layout/format/AuthorNatBib.java b/jablib/src/main/java/org/jabref/logic/layout/format/AuthorNatBib.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/AuthorNatBib.java rename to jablib/src/main/java/org/jabref/logic/layout/format/AuthorNatBib.java diff --git a/src/main/java/org/jabref/logic/layout/format/AuthorOrgSci.java b/jablib/src/main/java/org/jabref/logic/layout/format/AuthorOrgSci.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/AuthorOrgSci.java rename to jablib/src/main/java/org/jabref/logic/layout/format/AuthorOrgSci.java diff --git a/src/main/java/org/jabref/logic/layout/format/Authors.java b/jablib/src/main/java/org/jabref/logic/layout/format/Authors.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/Authors.java rename to jablib/src/main/java/org/jabref/logic/layout/format/Authors.java diff --git a/src/main/java/org/jabref/logic/layout/format/CSLType.java b/jablib/src/main/java/org/jabref/logic/layout/format/CSLType.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/CSLType.java rename to jablib/src/main/java/org/jabref/logic/layout/format/CSLType.java diff --git a/src/main/java/org/jabref/logic/layout/format/CompositeFormat.java b/jablib/src/main/java/org/jabref/logic/layout/format/CompositeFormat.java similarity index 92% rename from src/main/java/org/jabref/logic/layout/format/CompositeFormat.java rename to jablib/src/main/java/org/jabref/logic/layout/format/CompositeFormat.java index f54ca3a8939..cbc23ff26f5 100644 --- a/src/main/java/org/jabref/logic/layout/format/CompositeFormat.java +++ b/jablib/src/main/java/org/jabref/logic/layout/format/CompositeFormat.java @@ -1,7 +1,6 @@ package org.jabref.logic.layout.format; import java.util.Arrays; -import java.util.Collections; import java.util.List; import org.jabref.logic.layout.LayoutFormatter; @@ -17,7 +16,7 @@ public class CompositeFormat implements LayoutFormatter { * If called with this constructor, this formatter does nothing. */ public CompositeFormat() { - formatters = Collections.emptyList(); + formatters = List.of(); } public CompositeFormat(LayoutFormatter first, LayoutFormatter second) { diff --git a/src/main/java/org/jabref/logic/layout/format/CreateBibORDFAuthors.java b/jablib/src/main/java/org/jabref/logic/layout/format/CreateBibORDFAuthors.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/CreateBibORDFAuthors.java rename to jablib/src/main/java/org/jabref/logic/layout/format/CreateBibORDFAuthors.java diff --git a/src/main/java/org/jabref/logic/layout/format/CreateDocBook4Authors.java b/jablib/src/main/java/org/jabref/logic/layout/format/CreateDocBook4Authors.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/CreateDocBook4Authors.java rename to jablib/src/main/java/org/jabref/logic/layout/format/CreateDocBook4Authors.java diff --git a/src/main/java/org/jabref/logic/layout/format/CreateDocBook4Editors.java b/jablib/src/main/java/org/jabref/logic/layout/format/CreateDocBook4Editors.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/CreateDocBook4Editors.java rename to jablib/src/main/java/org/jabref/logic/layout/format/CreateDocBook4Editors.java diff --git a/src/main/java/org/jabref/logic/layout/format/CreateDocBook5Authors.java b/jablib/src/main/java/org/jabref/logic/layout/format/CreateDocBook5Authors.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/CreateDocBook5Authors.java rename to jablib/src/main/java/org/jabref/logic/layout/format/CreateDocBook5Authors.java diff --git a/src/main/java/org/jabref/logic/layout/format/CreateDocBook5Editors.java b/jablib/src/main/java/org/jabref/logic/layout/format/CreateDocBook5Editors.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/CreateDocBook5Editors.java rename to jablib/src/main/java/org/jabref/logic/layout/format/CreateDocBook5Editors.java diff --git a/src/main/java/org/jabref/logic/layout/format/CurrentDate.java b/jablib/src/main/java/org/jabref/logic/layout/format/CurrentDate.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/CurrentDate.java rename to jablib/src/main/java/org/jabref/logic/layout/format/CurrentDate.java diff --git a/src/main/java/org/jabref/logic/layout/format/DOICheck.java b/jablib/src/main/java/org/jabref/logic/layout/format/DOICheck.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/DOICheck.java rename to jablib/src/main/java/org/jabref/logic/layout/format/DOICheck.java diff --git a/src/main/java/org/jabref/logic/layout/format/DOIStrip.java b/jablib/src/main/java/org/jabref/logic/layout/format/DOIStrip.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/DOIStrip.java rename to jablib/src/main/java/org/jabref/logic/layout/format/DOIStrip.java diff --git a/src/main/java/org/jabref/logic/layout/format/DateFormatter.java b/jablib/src/main/java/org/jabref/logic/layout/format/DateFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/DateFormatter.java rename to jablib/src/main/java/org/jabref/logic/layout/format/DateFormatter.java diff --git a/src/main/java/org/jabref/logic/layout/format/Default.java b/jablib/src/main/java/org/jabref/logic/layout/format/Default.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/Default.java rename to jablib/src/main/java/org/jabref/logic/layout/format/Default.java diff --git a/src/main/java/org/jabref/logic/layout/format/DocBookAuthorFormatter.java b/jablib/src/main/java/org/jabref/logic/layout/format/DocBookAuthorFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/DocBookAuthorFormatter.java rename to jablib/src/main/java/org/jabref/logic/layout/format/DocBookAuthorFormatter.java diff --git a/src/main/java/org/jabref/logic/layout/format/DocBookVersion.java b/jablib/src/main/java/org/jabref/logic/layout/format/DocBookVersion.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/DocBookVersion.java rename to jablib/src/main/java/org/jabref/logic/layout/format/DocBookVersion.java diff --git a/src/main/java/org/jabref/logic/layout/format/EntryTypeFormatter.java b/jablib/src/main/java/org/jabref/logic/layout/format/EntryTypeFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/EntryTypeFormatter.java rename to jablib/src/main/java/org/jabref/logic/layout/format/EntryTypeFormatter.java diff --git a/src/main/java/org/jabref/logic/layout/format/FileLink.java b/jablib/src/main/java/org/jabref/logic/layout/format/FileLink.java similarity index 95% rename from src/main/java/org/jabref/logic/layout/format/FileLink.java rename to jablib/src/main/java/org/jabref/logic/layout/format/FileLink.java index 202fba42b9d..f59a57abe70 100644 --- a/src/main/java/org/jabref/logic/layout/format/FileLink.java +++ b/jablib/src/main/java/org/jabref/logic/layout/format/FileLink.java @@ -1,7 +1,6 @@ package org.jabref.logic.layout.format; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import org.jabref.logic.importer.util.FileFieldParser; @@ -53,7 +52,7 @@ public String format(String field) { List dirs; if (fileDirectories.isEmpty()) { - dirs = Collections.singletonList(Path.of(mainFileDirectory)); + dirs = List.of(Path.of(mainFileDirectory)); } else { dirs = fileDirectories; } diff --git a/src/main/java/org/jabref/logic/layout/format/FirstPage.java b/jablib/src/main/java/org/jabref/logic/layout/format/FirstPage.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/FirstPage.java rename to jablib/src/main/java/org/jabref/logic/layout/format/FirstPage.java diff --git a/src/main/java/org/jabref/logic/layout/format/FormatPagesForHTML.java b/jablib/src/main/java/org/jabref/logic/layout/format/FormatPagesForHTML.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/FormatPagesForHTML.java rename to jablib/src/main/java/org/jabref/logic/layout/format/FormatPagesForHTML.java diff --git a/src/main/java/org/jabref/logic/layout/format/FormatPagesForXML.java b/jablib/src/main/java/org/jabref/logic/layout/format/FormatPagesForXML.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/FormatPagesForXML.java rename to jablib/src/main/java/org/jabref/logic/layout/format/FormatPagesForXML.java diff --git a/src/main/java/org/jabref/logic/layout/format/GetOpenOfficeType.java b/jablib/src/main/java/org/jabref/logic/layout/format/GetOpenOfficeType.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/GetOpenOfficeType.java rename to jablib/src/main/java/org/jabref/logic/layout/format/GetOpenOfficeType.java diff --git a/src/main/java/org/jabref/logic/layout/format/HTMLChars.java b/jablib/src/main/java/org/jabref/logic/layout/format/HTMLChars.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/HTMLChars.java rename to jablib/src/main/java/org/jabref/logic/layout/format/HTMLChars.java diff --git a/src/main/java/org/jabref/logic/layout/format/HTMLParagraphs.java b/jablib/src/main/java/org/jabref/logic/layout/format/HTMLParagraphs.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/HTMLParagraphs.java rename to jablib/src/main/java/org/jabref/logic/layout/format/HTMLParagraphs.java diff --git a/src/main/java/org/jabref/logic/layout/format/HayagrivaType.java b/jablib/src/main/java/org/jabref/logic/layout/format/HayagrivaType.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/HayagrivaType.java rename to jablib/src/main/java/org/jabref/logic/layout/format/HayagrivaType.java diff --git a/src/main/java/org/jabref/logic/layout/format/IfPlural.java b/jablib/src/main/java/org/jabref/logic/layout/format/IfPlural.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/IfPlural.java rename to jablib/src/main/java/org/jabref/logic/layout/format/IfPlural.java diff --git a/src/main/java/org/jabref/logic/layout/format/Iso690FormatDate.java b/jablib/src/main/java/org/jabref/logic/layout/format/Iso690FormatDate.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/Iso690FormatDate.java rename to jablib/src/main/java/org/jabref/logic/layout/format/Iso690FormatDate.java diff --git a/src/main/java/org/jabref/logic/layout/format/Iso690NamesAuthors.java b/jablib/src/main/java/org/jabref/logic/layout/format/Iso690NamesAuthors.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/Iso690NamesAuthors.java rename to jablib/src/main/java/org/jabref/logic/layout/format/Iso690NamesAuthors.java diff --git a/src/main/java/org/jabref/logic/layout/format/JournalAbbreviator.java b/jablib/src/main/java/org/jabref/logic/layout/format/JournalAbbreviator.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/JournalAbbreviator.java rename to jablib/src/main/java/org/jabref/logic/layout/format/JournalAbbreviator.java diff --git a/src/main/java/org/jabref/logic/layout/format/LastPage.java b/jablib/src/main/java/org/jabref/logic/layout/format/LastPage.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/LastPage.java rename to jablib/src/main/java/org/jabref/logic/layout/format/LastPage.java diff --git a/src/main/java/org/jabref/logic/layout/format/LatexToUnicodeFormatter.java b/jablib/src/main/java/org/jabref/logic/layout/format/LatexToUnicodeFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/LatexToUnicodeFormatter.java rename to jablib/src/main/java/org/jabref/logic/layout/format/LatexToUnicodeFormatter.java diff --git a/src/main/java/org/jabref/logic/layout/format/MarkdownFormatter.java b/jablib/src/main/java/org/jabref/logic/layout/format/MarkdownFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/MarkdownFormatter.java rename to jablib/src/main/java/org/jabref/logic/layout/format/MarkdownFormatter.java diff --git a/src/main/java/org/jabref/logic/layout/format/NameFormatter.java b/jablib/src/main/java/org/jabref/logic/layout/format/NameFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/NameFormatter.java rename to jablib/src/main/java/org/jabref/logic/layout/format/NameFormatter.java diff --git a/src/main/java/org/jabref/logic/layout/format/NameFormatterPreferences.java b/jablib/src/main/java/org/jabref/logic/layout/format/NameFormatterPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/NameFormatterPreferences.java rename to jablib/src/main/java/org/jabref/logic/layout/format/NameFormatterPreferences.java diff --git a/src/main/java/org/jabref/logic/layout/format/NoSpaceBetweenAbbreviations.java b/jablib/src/main/java/org/jabref/logic/layout/format/NoSpaceBetweenAbbreviations.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/NoSpaceBetweenAbbreviations.java rename to jablib/src/main/java/org/jabref/logic/layout/format/NoSpaceBetweenAbbreviations.java diff --git a/src/main/java/org/jabref/logic/layout/format/NotFoundFormatter.java b/jablib/src/main/java/org/jabref/logic/layout/format/NotFoundFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/NotFoundFormatter.java rename to jablib/src/main/java/org/jabref/logic/layout/format/NotFoundFormatter.java diff --git a/src/main/java/org/jabref/logic/layout/format/Number.java b/jablib/src/main/java/org/jabref/logic/layout/format/Number.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/Number.java rename to jablib/src/main/java/org/jabref/logic/layout/format/Number.java diff --git a/src/main/java/org/jabref/logic/layout/format/Ordinal.java b/jablib/src/main/java/org/jabref/logic/layout/format/Ordinal.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/Ordinal.java rename to jablib/src/main/java/org/jabref/logic/layout/format/Ordinal.java diff --git a/src/main/java/org/jabref/logic/layout/format/RTFChars.java b/jablib/src/main/java/org/jabref/logic/layout/format/RTFChars.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/RTFChars.java rename to jablib/src/main/java/org/jabref/logic/layout/format/RTFChars.java diff --git a/src/main/java/org/jabref/logic/layout/format/RemoveBrackets.java b/jablib/src/main/java/org/jabref/logic/layout/format/RemoveBrackets.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/RemoveBrackets.java rename to jablib/src/main/java/org/jabref/logic/layout/format/RemoveBrackets.java diff --git a/src/main/java/org/jabref/logic/layout/format/RemoveBracketsAddComma.java b/jablib/src/main/java/org/jabref/logic/layout/format/RemoveBracketsAddComma.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/RemoveBracketsAddComma.java rename to jablib/src/main/java/org/jabref/logic/layout/format/RemoveBracketsAddComma.java diff --git a/src/main/java/org/jabref/logic/layout/format/RemoveLatexCommandsFormatter.java b/jablib/src/main/java/org/jabref/logic/layout/format/RemoveLatexCommandsFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/RemoveLatexCommandsFormatter.java rename to jablib/src/main/java/org/jabref/logic/layout/format/RemoveLatexCommandsFormatter.java diff --git a/src/main/java/org/jabref/logic/layout/format/RemoveTilde.java b/jablib/src/main/java/org/jabref/logic/layout/format/RemoveTilde.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/RemoveTilde.java rename to jablib/src/main/java/org/jabref/logic/layout/format/RemoveTilde.java diff --git a/src/main/java/org/jabref/logic/layout/format/RemoveWhitespace.java b/jablib/src/main/java/org/jabref/logic/layout/format/RemoveWhitespace.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/RemoveWhitespace.java rename to jablib/src/main/java/org/jabref/logic/layout/format/RemoveWhitespace.java diff --git a/src/main/java/org/jabref/logic/layout/format/Replace.java b/jablib/src/main/java/org/jabref/logic/layout/format/Replace.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/Replace.java rename to jablib/src/main/java/org/jabref/logic/layout/format/Replace.java diff --git a/src/main/java/org/jabref/logic/layout/format/ReplaceUnicodeLigaturesFormatter.java b/jablib/src/main/java/org/jabref/logic/layout/format/ReplaceUnicodeLigaturesFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/ReplaceUnicodeLigaturesFormatter.java rename to jablib/src/main/java/org/jabref/logic/layout/format/ReplaceUnicodeLigaturesFormatter.java diff --git a/src/main/java/org/jabref/logic/layout/format/ReplaceWithEscapedDoubleQuotes.java b/jablib/src/main/java/org/jabref/logic/layout/format/ReplaceWithEscapedDoubleQuotes.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/ReplaceWithEscapedDoubleQuotes.java rename to jablib/src/main/java/org/jabref/logic/layout/format/ReplaceWithEscapedDoubleQuotes.java diff --git a/src/main/java/org/jabref/logic/layout/format/RisAuthors.java b/jablib/src/main/java/org/jabref/logic/layout/format/RisAuthors.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/RisAuthors.java rename to jablib/src/main/java/org/jabref/logic/layout/format/RisAuthors.java diff --git a/src/main/java/org/jabref/logic/layout/format/RisKeywords.java b/jablib/src/main/java/org/jabref/logic/layout/format/RisKeywords.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/RisKeywords.java rename to jablib/src/main/java/org/jabref/logic/layout/format/RisKeywords.java diff --git a/src/main/java/org/jabref/logic/layout/format/RisMonth.java b/jablib/src/main/java/org/jabref/logic/layout/format/RisMonth.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/RisMonth.java rename to jablib/src/main/java/org/jabref/logic/layout/format/RisMonth.java diff --git a/src/main/java/org/jabref/logic/layout/format/ShortMonthFormatter.java b/jablib/src/main/java/org/jabref/logic/layout/format/ShortMonthFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/ShortMonthFormatter.java rename to jablib/src/main/java/org/jabref/logic/layout/format/ShortMonthFormatter.java diff --git a/src/main/java/org/jabref/logic/layout/format/ToLowerCase.java b/jablib/src/main/java/org/jabref/logic/layout/format/ToLowerCase.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/ToLowerCase.java rename to jablib/src/main/java/org/jabref/logic/layout/format/ToLowerCase.java diff --git a/src/main/java/org/jabref/logic/layout/format/ToUpperCase.java b/jablib/src/main/java/org/jabref/logic/layout/format/ToUpperCase.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/ToUpperCase.java rename to jablib/src/main/java/org/jabref/logic/layout/format/ToUpperCase.java diff --git a/src/main/java/org/jabref/logic/layout/format/WrapContent.java b/jablib/src/main/java/org/jabref/logic/layout/format/WrapContent.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/WrapContent.java rename to jablib/src/main/java/org/jabref/logic/layout/format/WrapContent.java diff --git a/src/main/java/org/jabref/logic/layout/format/WrapFileLinks.java b/jablib/src/main/java/org/jabref/logic/layout/format/WrapFileLinks.java similarity index 98% rename from src/main/java/org/jabref/logic/layout/format/WrapFileLinks.java rename to jablib/src/main/java/org/jabref/logic/layout/format/WrapFileLinks.java index bb365892ea4..317f96e12e8 100644 --- a/src/main/java/org/jabref/logic/layout/format/WrapFileLinks.java +++ b/jablib/src/main/java/org/jabref/logic/layout/format/WrapFileLinks.java @@ -2,7 +2,6 @@ import java.nio.file.Path; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -130,7 +129,7 @@ private static List parseFormatString(String format) { } else if (WrapFileLinks.ESCAPE_SEQ.containsKey(c)) { // Ok, we have the code. Add the previous string (if any) and // the entry indicated by the escape sequence: - if (sb.length() > 0) { + if (!sb.isEmpty()) { l.add(new FormatEntry(sb.toString())); // Clear the buffer: sb = new StringBuilder(); @@ -151,7 +150,7 @@ private static List parseFormatString(String format) { } } // Finished scanning the string. If we collected text at the end, add an entry for it: - if (sb.length() > 0) { + if (!sb.isEmpty()) { l.add(new FormatEntry(sb.toString())); } @@ -197,7 +196,7 @@ public String format(String field) { case FILE_PATH: List dirs; if (fileDirectories.isEmpty()) { - dirs = Collections.singletonList(Path.of(mainFileDirectory)); + dirs = List.of(Path.of(mainFileDirectory)); } else { dirs = fileDirectories; } diff --git a/src/main/java/org/jabref/logic/layout/format/XMLChars.java b/jablib/src/main/java/org/jabref/logic/layout/format/XMLChars.java similarity index 100% rename from src/main/java/org/jabref/logic/layout/format/XMLChars.java rename to jablib/src/main/java/org/jabref/logic/layout/format/XMLChars.java diff --git a/src/main/java/org/jabref/logic/msbib/BibTeXConverter.java b/jablib/src/main/java/org/jabref/logic/msbib/BibTeXConverter.java similarity index 100% rename from src/main/java/org/jabref/logic/msbib/BibTeXConverter.java rename to jablib/src/main/java/org/jabref/logic/msbib/BibTeXConverter.java diff --git a/src/main/java/org/jabref/logic/msbib/MSBibConverter.java b/jablib/src/main/java/org/jabref/logic/msbib/MSBibConverter.java similarity index 100% rename from src/main/java/org/jabref/logic/msbib/MSBibConverter.java rename to jablib/src/main/java/org/jabref/logic/msbib/MSBibConverter.java diff --git a/src/main/java/org/jabref/logic/msbib/MSBibDatabase.java b/jablib/src/main/java/org/jabref/logic/msbib/MSBibDatabase.java similarity index 98% rename from src/main/java/org/jabref/logic/msbib/MSBibDatabase.java rename to jablib/src/main/java/org/jabref/logic/msbib/MSBibDatabase.java index 10a646f401d..bfdb4410589 100644 --- a/src/main/java/org/jabref/logic/msbib/MSBibDatabase.java +++ b/jablib/src/main/java/org/jabref/logic/msbib/MSBibDatabase.java @@ -3,7 +3,6 @@ import java.io.BufferedReader; import java.io.IOException; import java.util.ArrayList; -import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -80,7 +79,7 @@ public List importEntriesFromXml(BufferedReader reader) { inputDocument = documentBuilder.parse(new InputSource(reader)); } catch (ParserConfigurationException | SAXException | IOException e) { LOGGER.warn("Could not parse document", e); - return Collections.emptyList(); + return List.of(); } NodeList rootList = inputDocument.getElementsByTagNameNS("*", "Sources"); if (rootList.getLength() == 0) { diff --git a/src/main/java/org/jabref/logic/msbib/MSBibEntry.java b/jablib/src/main/java/org/jabref/logic/msbib/MSBibEntry.java similarity index 100% rename from src/main/java/org/jabref/logic/msbib/MSBibEntry.java rename to jablib/src/main/java/org/jabref/logic/msbib/MSBibEntry.java diff --git a/src/main/java/org/jabref/logic/msbib/MSBibEntryType.java b/jablib/src/main/java/org/jabref/logic/msbib/MSBibEntryType.java similarity index 100% rename from src/main/java/org/jabref/logic/msbib/MSBibEntryType.java rename to jablib/src/main/java/org/jabref/logic/msbib/MSBibEntryType.java diff --git a/src/main/java/org/jabref/logic/msbib/MSBibMapping.java b/jablib/src/main/java/org/jabref/logic/msbib/MSBibMapping.java similarity index 100% rename from src/main/java/org/jabref/logic/msbib/MSBibMapping.java rename to jablib/src/main/java/org/jabref/logic/msbib/MSBibMapping.java diff --git a/src/main/java/org/jabref/logic/msbib/MsBibAuthor.java b/jablib/src/main/java/org/jabref/logic/msbib/MsBibAuthor.java similarity index 100% rename from src/main/java/org/jabref/logic/msbib/MsBibAuthor.java rename to jablib/src/main/java/org/jabref/logic/msbib/MsBibAuthor.java diff --git a/src/main/java/org/jabref/logic/msbib/PageNumbers.java b/jablib/src/main/java/org/jabref/logic/msbib/PageNumbers.java similarity index 100% rename from src/main/java/org/jabref/logic/msbib/PageNumbers.java rename to jablib/src/main/java/org/jabref/logic/msbib/PageNumbers.java diff --git a/src/main/java/org/jabref/logic/net/ProgressInputStream.java b/jablib/src/main/java/org/jabref/logic/net/ProgressInputStream.java similarity index 100% rename from src/main/java/org/jabref/logic/net/ProgressInputStream.java rename to jablib/src/main/java/org/jabref/logic/net/ProgressInputStream.java diff --git a/src/main/java/org/jabref/logic/net/ProxyAuthenticator.java b/jablib/src/main/java/org/jabref/logic/net/ProxyAuthenticator.java similarity index 100% rename from src/main/java/org/jabref/logic/net/ProxyAuthenticator.java rename to jablib/src/main/java/org/jabref/logic/net/ProxyAuthenticator.java diff --git a/src/main/java/org/jabref/logic/net/ProxyPreferences.java b/jablib/src/main/java/org/jabref/logic/net/ProxyPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/net/ProxyPreferences.java rename to jablib/src/main/java/org/jabref/logic/net/ProxyPreferences.java diff --git a/src/main/java/org/jabref/logic/net/ProxyRegisterer.java b/jablib/src/main/java/org/jabref/logic/net/ProxyRegisterer.java similarity index 100% rename from src/main/java/org/jabref/logic/net/ProxyRegisterer.java rename to jablib/src/main/java/org/jabref/logic/net/ProxyRegisterer.java diff --git a/src/main/java/org/jabref/logic/net/URLDownload.java b/jablib/src/main/java/org/jabref/logic/net/URLDownload.java similarity index 99% rename from src/main/java/org/jabref/logic/net/URLDownload.java rename to jablib/src/main/java/org/jabref/logic/net/URLDownload.java index 32993af4eff..c7842d293ef 100644 --- a/src/main/java/org/jabref/logic/net/URLDownload.java +++ b/jablib/src/main/java/org/jabref/logic/net/URLDownload.java @@ -27,7 +27,6 @@ import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.time.Duration; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -37,12 +36,12 @@ import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; -import org.jabref.http.dto.SimpleHttpResponse; import org.jabref.logic.importer.FetcherClientException; import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.FetcherServerException; import org.jabref.logic.util.URLUtil; import org.jabref.logic.util.io.FileUtil; +import org.jabref.model.http.SimpleHttpResponse; import org.jabref.model.strings.StringUtil; import kong.unirest.core.HttpResponse; @@ -253,7 +252,7 @@ public List getCookieFromUrl() throws FetcherException { return cookieManager.getCookieStore().get(this.source.toURI()); } catch (URISyntaxException e) { LOGGER.error("Unable to convert download URL to URI", e); - return Collections.emptyList(); + return List.of(); } } @@ -314,7 +313,7 @@ public Path toTemporaryFile() throws FetcherException { String extension = "." + FileUtil.getFileExtension(fileNameWithExtension).orElse("tmp"); // Create temporary file and download to it - Path file = null; + Path file; try { file = Files.createTempFile(fileName, extension); } catch (IOException e) { diff --git a/src/main/java/org/jabref/logic/net/ssl/SSLCertificate.java b/jablib/src/main/java/org/jabref/logic/net/ssl/SSLCertificate.java similarity index 94% rename from src/main/java/org/jabref/logic/net/ssl/SSLCertificate.java rename to jablib/src/main/java/org/jabref/logic/net/ssl/SSLCertificate.java index d2229b87850..6271a702d8a 100644 --- a/src/main/java/org/jabref/logic/net/ssl/SSLCertificate.java +++ b/jablib/src/main/java/org/jabref/logic/net/ssl/SSLCertificate.java @@ -1,7 +1,8 @@ package org.jabref.logic.net.ssl; -import java.io.FileInputStream; import java.io.FileNotFoundException; +import java.io.IOException; +import java.nio.file.Files; import java.nio.file.Path; import java.security.cert.CertificateEncodingException; import java.security.cert.CertificateException; @@ -87,11 +88,13 @@ public static Optional fromPath(Path certPath) { Objects.requireNonNull(certPath); try { CertificateFactory certificateFactory = CertificateFactory.getInstance("X509"); - return fromX509((X509Certificate) certificateFactory.generateCertificate(new FileInputStream(certPath.toFile()))); + return fromX509((X509Certificate) certificateFactory.generateCertificate(Files.newInputStream(certPath))); } catch (CertificateException e) { LOGGER.warn("Certificate doesn't follow X.509 format", e); } catch (FileNotFoundException e) { LOGGER.warn("Bad Certificate path: {}", certPath, e); + } catch (IOException e) { + LOGGER.warn("Error reading certificate:", e); } return Optional.empty(); } diff --git a/src/main/java/org/jabref/logic/net/ssl/SSLPreferences.java b/jablib/src/main/java/org/jabref/logic/net/ssl/SSLPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/net/ssl/SSLPreferences.java rename to jablib/src/main/java/org/jabref/logic/net/ssl/SSLPreferences.java diff --git a/src/main/java/org/jabref/logic/net/ssl/TrustStoreManager.java b/jablib/src/main/java/org/jabref/logic/net/ssl/TrustStoreManager.java similarity index 97% rename from src/main/java/org/jabref/logic/net/ssl/TrustStoreManager.java rename to jablib/src/main/java/org/jabref/logic/net/ssl/TrustStoreManager.java index 3eaf6659167..c1304ba8f93 100644 --- a/src/main/java/org/jabref/logic/net/ssl/TrustStoreManager.java +++ b/jablib/src/main/java/org/jabref/logic/net/ssl/TrustStoreManager.java @@ -1,6 +1,5 @@ package org.jabref.logic.net.ssl; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.nio.file.Files; @@ -44,7 +43,7 @@ public TrustStoreManager(Path storePath) { createTruststoreFileIfNotExist(storePath); try { store = KeyStore.getInstance(KeyStore.getDefaultType()); - store.load(new FileInputStream(storePath.toFile()), STORE_PASSWORD.toCharArray()); + store.load(Files.newInputStream(storePath), STORE_PASSWORD.toCharArray()); } catch (CertificateException | IOException | NoSuchAlgorithmException | KeyStoreException e) { LOGGER.warn("Error while loading trust store from: {}", storePath.toAbsolutePath(), e); } @@ -56,7 +55,7 @@ public void addCertificate(String alias, Path certPath) { try { CertificateFactory certificateFactory = CertificateFactory.getInstance("X509"); - store.setCertificateEntry(alias, certificateFactory.generateCertificate(new FileInputStream(certPath.toFile()))); + store.setCertificateEntry(alias, certificateFactory.generateCertificate(Files.newInputStream(certPath))); } catch (KeyStoreException | CertificateException | IOException e) { LOGGER.warn("Error while adding a new certificate to the truststore: {}", alias, e); } @@ -87,7 +86,7 @@ public List aliases() { } catch (KeyStoreException e) { LOGGER.warn("Error while reading aliases", e); } - return Collections.emptyList(); + return List.of(); } public int certsCount() { diff --git a/src/main/java/org/jabref/logic/openoffice/NoDocumentFoundException.java b/jablib/src/main/java/org/jabref/logic/openoffice/NoDocumentFoundException.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/NoDocumentFoundException.java rename to jablib/src/main/java/org/jabref/logic/openoffice/NoDocumentFoundException.java diff --git a/src/main/java/org/jabref/logic/openoffice/OpenOfficeFileSearch.java b/jablib/src/main/java/org/jabref/logic/openoffice/OpenOfficeFileSearch.java similarity index 96% rename from src/main/java/org/jabref/logic/openoffice/OpenOfficeFileSearch.java rename to jablib/src/main/java/org/jabref/logic/openoffice/OpenOfficeFileSearch.java index 2b94b8a1c57..3e74b33f35a 100644 --- a/src/main/java/org/jabref/logic/openoffice/OpenOfficeFileSearch.java +++ b/jablib/src/main/java/org/jabref/logic/openoffice/OpenOfficeFileSearch.java @@ -6,7 +6,6 @@ import java.nio.file.attribute.BasicFileAttributes; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.function.BiPredicate; @@ -81,7 +80,7 @@ private static List findWindowsOpenOfficeDirs() { } private static List findOSXOpenOfficeDirs() { - List sourceList = Collections.singletonList(Path.of("/Applications")); + List sourceList = List.of(Path.of("/Applications")); return findOpenOfficeDirectories(sourceList); } diff --git a/src/main/java/org/jabref/logic/openoffice/OpenOfficePreferences.java b/jablib/src/main/java/org/jabref/logic/openoffice/OpenOfficePreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/OpenOfficePreferences.java rename to jablib/src/main/java/org/jabref/logic/openoffice/OpenOfficePreferences.java diff --git a/src/main/java/org/jabref/logic/openoffice/ReferenceMark.java b/jablib/src/main/java/org/jabref/logic/openoffice/ReferenceMark.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/ReferenceMark.java rename to jablib/src/main/java/org/jabref/logic/openoffice/ReferenceMark.java diff --git a/src/main/java/org/jabref/logic/openoffice/action/EditInsert.java b/jablib/src/main/java/org/jabref/logic/openoffice/action/EditInsert.java similarity index 97% rename from src/main/java/org/jabref/logic/openoffice/action/EditInsert.java rename to jablib/src/main/java/org/jabref/logic/openoffice/action/EditInsert.java index 9e1f4c46be9..3285a01e39d 100644 --- a/src/main/java/org/jabref/logic/openoffice/action/EditInsert.java +++ b/jablib/src/main/java/org/jabref/logic/openoffice/action/EditInsert.java @@ -1,7 +1,6 @@ package org.jabref.logic.openoffice.action; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Optional; @@ -77,7 +76,7 @@ public static void insertCitationGroup(XTextDocument doc, List citations = new ArrayList<>(totalEntries); for (int i = 0; i < totalEntries; i++) { Citation cit = new Citation(citationKeys.get(i)); - cit.lookupInDatabases(Collections.singletonList(database)); + cit.lookupInDatabases(List.of(database)); cit.setPageInfo(pageInfos.get(i)); citations.add(cit); } diff --git a/src/main/java/org/jabref/logic/openoffice/action/EditMerge.java b/jablib/src/main/java/org/jabref/logic/openoffice/action/EditMerge.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/action/EditMerge.java rename to jablib/src/main/java/org/jabref/logic/openoffice/action/EditMerge.java diff --git a/src/main/java/org/jabref/logic/openoffice/action/EditSeparate.java b/jablib/src/main/java/org/jabref/logic/openoffice/action/EditSeparate.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/action/EditSeparate.java rename to jablib/src/main/java/org/jabref/logic/openoffice/action/EditSeparate.java diff --git a/src/main/java/org/jabref/logic/openoffice/action/ExportCited.java b/jablib/src/main/java/org/jabref/logic/openoffice/action/ExportCited.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/action/ExportCited.java rename to jablib/src/main/java/org/jabref/logic/openoffice/action/ExportCited.java diff --git a/src/main/java/org/jabref/logic/openoffice/action/ManageCitations.java b/jablib/src/main/java/org/jabref/logic/openoffice/action/ManageCitations.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/action/ManageCitations.java rename to jablib/src/main/java/org/jabref/logic/openoffice/action/ManageCitations.java diff --git a/src/main/java/org/jabref/logic/openoffice/action/Update.java b/jablib/src/main/java/org/jabref/logic/openoffice/action/Update.java similarity index 96% rename from src/main/java/org/jabref/logic/openoffice/action/Update.java rename to jablib/src/main/java/org/jabref/logic/openoffice/action/Update.java index 8c31ee37e68..e7df1c51147 100644 --- a/src/main/java/org/jabref/logic/openoffice/action/Update.java +++ b/jablib/src/main/java/org/jabref/logic/openoffice/action/Update.java @@ -17,13 +17,16 @@ import com.sun.star.lang.IllegalArgumentException; import com.sun.star.lang.WrappedTargetException; import com.sun.star.text.XTextDocument; -import org.tinylog.Logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Update document: citation marks and bibliography */ public class Update { + private static final Logger LOGGER = LoggerFactory.getLogger(Update.class); + private Update() { } @@ -65,7 +68,7 @@ private static List updateDocument(XTextDocument doc, return frontend.citationGroups.getUnresolvedKeys(); } catch (IOException e) { - Logger.warn("Error while updating document", e); + LOGGER.warn("Error while updating document", e); } finally { if (useLockControllers && UnoScreenRefresh.hasControllersLocked(doc)) { UnoScreenRefresh.unlockControllers(doc); diff --git a/src/main/java/org/jabref/logic/openoffice/backend/Backend52.java b/jablib/src/main/java/org/jabref/logic/openoffice/backend/Backend52.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/backend/Backend52.java rename to jablib/src/main/java/org/jabref/logic/openoffice/backend/Backend52.java diff --git a/src/main/java/org/jabref/logic/openoffice/backend/Codec52.java b/jablib/src/main/java/org/jabref/logic/openoffice/backend/Codec52.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/backend/Codec52.java rename to jablib/src/main/java/org/jabref/logic/openoffice/backend/Codec52.java diff --git a/src/main/java/org/jabref/logic/openoffice/backend/GetContext.java b/jablib/src/main/java/org/jabref/logic/openoffice/backend/GetContext.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/backend/GetContext.java rename to jablib/src/main/java/org/jabref/logic/openoffice/backend/GetContext.java diff --git a/src/main/java/org/jabref/logic/openoffice/backend/NamedRangeManagerReferenceMark.java b/jablib/src/main/java/org/jabref/logic/openoffice/backend/NamedRangeManagerReferenceMark.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/backend/NamedRangeManagerReferenceMark.java rename to jablib/src/main/java/org/jabref/logic/openoffice/backend/NamedRangeManagerReferenceMark.java diff --git a/src/main/java/org/jabref/logic/openoffice/backend/NamedRangeReferenceMark.java b/jablib/src/main/java/org/jabref/logic/openoffice/backend/NamedRangeReferenceMark.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/backend/NamedRangeReferenceMark.java rename to jablib/src/main/java/org/jabref/logic/openoffice/backend/NamedRangeReferenceMark.java diff --git a/src/main/java/org/jabref/logic/openoffice/frontend/OOFrontend.java b/jablib/src/main/java/org/jabref/logic/openoffice/frontend/OOFrontend.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/frontend/OOFrontend.java rename to jablib/src/main/java/org/jabref/logic/openoffice/frontend/OOFrontend.java diff --git a/src/main/java/org/jabref/logic/openoffice/frontend/RangeForOverlapCheck.java b/jablib/src/main/java/org/jabref/logic/openoffice/frontend/RangeForOverlapCheck.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/frontend/RangeForOverlapCheck.java rename to jablib/src/main/java/org/jabref/logic/openoffice/frontend/RangeForOverlapCheck.java diff --git a/src/main/java/org/jabref/logic/openoffice/frontend/UpdateBibliography.java b/jablib/src/main/java/org/jabref/logic/openoffice/frontend/UpdateBibliography.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/frontend/UpdateBibliography.java rename to jablib/src/main/java/org/jabref/logic/openoffice/frontend/UpdateBibliography.java diff --git a/src/main/java/org/jabref/logic/openoffice/frontend/UpdateCitationMarkers.java b/jablib/src/main/java/org/jabref/logic/openoffice/frontend/UpdateCitationMarkers.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/frontend/UpdateCitationMarkers.java rename to jablib/src/main/java/org/jabref/logic/openoffice/frontend/UpdateCitationMarkers.java diff --git a/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLCitationOOAdapter.java b/jablib/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLCitationOOAdapter.java similarity index 98% rename from src/main/java/org/jabref/logic/openoffice/oocsltext/CSLCitationOOAdapter.java rename to jablib/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLCitationOOAdapter.java index 8989b122d46..da3b4230960 100644 --- a/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLCitationOOAdapter.java +++ b/jablib/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLCitationOOAdapter.java @@ -23,7 +23,6 @@ import org.jabref.model.openoffice.ootext.OOTextIntoOO; import org.jabref.model.openoffice.uno.CreationException; -import com.airhacks.afterburner.injection.Injector; import com.sun.star.container.NoSuchElementException; import com.sun.star.lang.WrappedTargetException; import com.sun.star.text.XTextCursor; @@ -48,16 +47,17 @@ public class CSLCitationOOAdapter { private final XTextDocument document; private final CSLReferenceMarkManager markManager; private final Supplier> databasesSupplier; + private final BibEntryTypesManager bibEntryTypesManager; private final OpenOfficePreferences openOfficePreferences; - private CitationStyle currentStyle; private boolean styleChanged; - public CSLCitationOOAdapter(XTextDocument doc, Supplier> databasesSupplier, OpenOfficePreferences openOfficePreferences) throws WrappedTargetException, NoSuchElementException { + public CSLCitationOOAdapter(XTextDocument doc, Supplier> databasesSupplier, OpenOfficePreferences openOfficePreferences, BibEntryTypesManager bibEntryTypesManager) throws WrappedTargetException, NoSuchElementException { this.document = doc; this.markManager = new CSLReferenceMarkManager(doc); this.databasesSupplier = databasesSupplier; + this.bibEntryTypesManager = bibEntryTypesManager; this.openOfficePreferences = openOfficePreferences; OOStyle initialStyle = openOfficePreferences.getCurrentStyle(); // may be a jstyle, can still be used for detecting subsequent style changes in context of CSL @@ -300,7 +300,6 @@ private void updateAllCitationsWithNewStyle(CitationStyle style, boolean isInTex BibDatabase unifiedDatabase = new BibDatabase(citedEntries); BibDatabaseContext unifiedBibDatabaseContext = new BibDatabaseContext(unifiedDatabase); - BibEntryTypesManager bibEntryTypesManager = Injector.instantiateModelOrService(BibEntryTypesManager.class); // Next, we get the list of reference marks sorted in order of appearance in the document List marksInOrder = markManager.getMarksInOrder(); diff --git a/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLFormatUtils.java b/jablib/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLFormatUtils.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/oocsltext/CSLFormatUtils.java rename to jablib/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLFormatUtils.java diff --git a/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLReferenceMark.java b/jablib/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLReferenceMark.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/oocsltext/CSLReferenceMark.java rename to jablib/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLReferenceMark.java diff --git a/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLReferenceMarkManager.java b/jablib/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLReferenceMarkManager.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/oocsltext/CSLReferenceMarkManager.java rename to jablib/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLReferenceMarkManager.java diff --git a/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLUpdateBibliography.java b/jablib/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLUpdateBibliography.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/oocsltext/CSLUpdateBibliography.java rename to jablib/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLUpdateBibliography.java diff --git a/src/main/java/org/jabref/logic/openoffice/style/JStyle.java b/jablib/src/main/java/org/jabref/logic/openoffice/style/JStyle.java similarity index 99% rename from src/main/java/org/jabref/logic/openoffice/style/JStyle.java rename to jablib/src/main/java/org/jabref/logic/openoffice/style/JStyle.java index 74563d3e3d4..5d5c4474c9e 100644 --- a/src/main/java/org/jabref/logic/openoffice/style/JStyle.java +++ b/jablib/src/main/java/org/jabref/logic/openoffice/style/JStyle.java @@ -4,7 +4,6 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; -import java.io.StringReader; import java.net.URISyntaxException; import java.net.URL; import java.nio.charset.StandardCharsets; @@ -410,7 +409,7 @@ private void handleStructureLine(String line) { try { final String typeName = line.substring(0, index); final String formatString = line.substring(index + 1); - Layout layout = new LayoutHelper(new StringReader(formatString), layoutPreferences, abbreviationRepository).getLayoutFromText(); + Layout layout = new LayoutHelper(Reader.of(formatString), layoutPreferences, abbreviationRepository).getLayoutFromText(); EntryType type = EntryTypeFactory.parse(typeName); if (!isDefaultLayoutPresent && JStyle.DEFAULT_MARK.equals(typeName)) { diff --git a/src/main/java/org/jabref/logic/openoffice/style/JStyleGetCitationMarker.java b/jablib/src/main/java/org/jabref/logic/openoffice/style/JStyleGetCitationMarker.java similarity index 98% rename from src/main/java/org/jabref/logic/openoffice/style/JStyleGetCitationMarker.java rename to jablib/src/main/java/org/jabref/logic/openoffice/style/JStyleGetCitationMarker.java index 712b468bb85..3e0cf0374c2 100644 --- a/src/main/java/org/jabref/logic/openoffice/style/JStyleGetCitationMarker.java +++ b/jablib/src/main/java/org/jabref/logic/openoffice/style/JStyleGetCitationMarker.java @@ -1,7 +1,6 @@ package org.jabref.logic.openoffice.style; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Optional; @@ -428,7 +427,7 @@ private static OOText getAuthorYearParenthesisMarker2(JStyle style, stringBuilder.append(citationSeparator); } - StringBuilder pageInfoPart = new StringBuilder(""); + StringBuilder pageInfoPart = new StringBuilder(); if (purpose != AuthorYearMarkerPurpose.NORMALIZED) { Optional pageInfo = PageInfo.normalizePageInfo(entry.getPageInfo()); @@ -470,10 +469,7 @@ private static OOText getAuthorYearParenthesisMarker2(JStyle style, } if (purpose != AuthorYearMarkerPurpose.NORMALIZED) { - String uniqueLetter = entry.getUniqueLetter().orElse(null); - if (uniqueLetter != null) { - stringBuilder.append(uniqueLetter); - } + entry.getUniqueLetter().ifPresent(stringBuilder::append); } if (purpose != AuthorYearMarkerPurpose.NORMALIZED) { @@ -547,7 +543,7 @@ static OOText getNormalizedCitationMarker(JStyle style, CitationMarkerEntry entry = new CitationMarkerNormEntryWrap(normEntry); return getAuthorYearParenthesisMarker2(style, AuthorYearMarkerPurpose.NORMALIZED, - Collections.singletonList(entry), + List.of(entry), startsNewGroup, maxAuthorsOverride); } @@ -754,9 +750,9 @@ static OOText getNormalizedCitationMarker(JStyle style, } return getAuthorYearParenthesisMarker2(style, - (inParenthesis + inParenthesis ? AuthorYearMarkerPurpose.IN_PARENTHESIS - : AuthorYearMarkerPurpose.IN_TEXT), + : AuthorYearMarkerPurpose.IN_TEXT, filteredCitationMarkerEntries, startsNewGroup, Optional.empty()); diff --git a/src/main/java/org/jabref/logic/openoffice/style/JStyleGetNumCitationMarker.java b/jablib/src/main/java/org/jabref/logic/openoffice/style/JStyleGetNumCitationMarker.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/style/JStyleGetNumCitationMarker.java rename to jablib/src/main/java/org/jabref/logic/openoffice/style/JStyleGetNumCitationMarker.java diff --git a/src/main/java/org/jabref/logic/openoffice/style/JStyleLoader.java b/jablib/src/main/java/org/jabref/logic/openoffice/style/JStyleLoader.java similarity index 94% rename from src/main/java/org/jabref/logic/openoffice/style/JStyleLoader.java rename to jablib/src/main/java/org/jabref/logic/openoffice/style/JStyleLoader.java index 11ea7f13bb0..d10b904868e 100644 --- a/src/main/java/org/jabref/logic/openoffice/style/JStyleLoader.java +++ b/jablib/src/main/java/org/jabref/logic/openoffice/style/JStyleLoader.java @@ -4,7 +4,6 @@ import java.io.IOException; import java.nio.file.Path; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -23,8 +22,7 @@ public class JStyleLoader { private static final Logger LOGGER = LoggerFactory.getLogger(JStyleLoader.class); // All internal styles - private final List internalStyleFiles = Arrays.asList(DEFAULT_AUTHORYEAR_STYLE_PATH, - DEFAULT_NUMERICAL_STYLE_PATH); + private final List internalStyleFiles = List.of(DEFAULT_AUTHORYEAR_STYLE_PATH, DEFAULT_NUMERICAL_STYLE_PATH); private final OpenOfficePreferences openOfficePreferences; private final LayoutFormatterPreferences layoutFormatterPreferences; @@ -57,10 +55,10 @@ public List getStyles() { * @param filename The filename of the style * @return True if the added style is valid, false otherwise */ - public boolean addStyleIfValid(String filename) { + public boolean addStyleIfValid(Path filename) { Objects.requireNonNull(filename); try { - JStyle newStyle = new JStyle(Path.of(filename), layoutFormatterPreferences, abbreviationRepository); + JStyle newStyle = new JStyle(filename, layoutFormatterPreferences, abbreviationRepository); if (externalStyles.contains(newStyle)) { LOGGER.info("External style file {} already existing.", filename); } else if (newStyle.isValid()) { diff --git a/src/main/java/org/jabref/logic/openoffice/style/OOFormatBibliography.java b/jablib/src/main/java/org/jabref/logic/openoffice/style/OOFormatBibliography.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/style/OOFormatBibliography.java rename to jablib/src/main/java/org/jabref/logic/openoffice/style/OOFormatBibliography.java diff --git a/src/main/java/org/jabref/logic/openoffice/style/OOPreFormatter.java b/jablib/src/main/java/org/jabref/logic/openoffice/style/OOPreFormatter.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/style/OOPreFormatter.java rename to jablib/src/main/java/org/jabref/logic/openoffice/style/OOPreFormatter.java diff --git a/src/main/java/org/jabref/logic/openoffice/style/OOProcess.java b/jablib/src/main/java/org/jabref/logic/openoffice/style/OOProcess.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/style/OOProcess.java rename to jablib/src/main/java/org/jabref/logic/openoffice/style/OOProcess.java diff --git a/src/main/java/org/jabref/logic/openoffice/style/OOProcessAuthorYearMarkers.java b/jablib/src/main/java/org/jabref/logic/openoffice/style/OOProcessAuthorYearMarkers.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/style/OOProcessAuthorYearMarkers.java rename to jablib/src/main/java/org/jabref/logic/openoffice/style/OOProcessAuthorYearMarkers.java diff --git a/src/main/java/org/jabref/logic/openoffice/style/OOProcessCitationKeyMarkers.java b/jablib/src/main/java/org/jabref/logic/openoffice/style/OOProcessCitationKeyMarkers.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/style/OOProcessCitationKeyMarkers.java rename to jablib/src/main/java/org/jabref/logic/openoffice/style/OOProcessCitationKeyMarkers.java diff --git a/src/main/java/org/jabref/logic/openoffice/style/OOProcessNumericMarkers.java b/jablib/src/main/java/org/jabref/logic/openoffice/style/OOProcessNumericMarkers.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/style/OOProcessNumericMarkers.java rename to jablib/src/main/java/org/jabref/logic/openoffice/style/OOProcessNumericMarkers.java diff --git a/src/main/java/org/jabref/logic/openoffice/style/OOStyle.java b/jablib/src/main/java/org/jabref/logic/openoffice/style/OOStyle.java similarity index 100% rename from src/main/java/org/jabref/logic/openoffice/style/OOStyle.java rename to jablib/src/main/java/org/jabref/logic/openoffice/style/OOStyle.java diff --git a/src/main/java/org/jabref/logic/os/OS.java b/jablib/src/main/java/org/jabref/logic/os/OS.java similarity index 100% rename from src/main/java/org/jabref/logic/os/OS.java rename to jablib/src/main/java/org/jabref/logic/os/OS.java diff --git a/src/main/java/org/jabref/logic/pdf/AnnotationImporter.java b/jablib/src/main/java/org/jabref/logic/pdf/AnnotationImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/pdf/AnnotationImporter.java rename to jablib/src/main/java/org/jabref/logic/pdf/AnnotationImporter.java diff --git a/src/main/java/org/jabref/logic/pdf/EntryAnnotationImporter.java b/jablib/src/main/java/org/jabref/logic/pdf/EntryAnnotationImporter.java similarity index 100% rename from src/main/java/org/jabref/logic/pdf/EntryAnnotationImporter.java rename to jablib/src/main/java/org/jabref/logic/pdf/EntryAnnotationImporter.java diff --git a/src/main/java/org/jabref/logic/pdf/FileAnnotationCache.java b/jablib/src/main/java/org/jabref/logic/pdf/FileAnnotationCache.java similarity index 98% rename from src/main/java/org/jabref/logic/pdf/FileAnnotationCache.java rename to jablib/src/main/java/org/jabref/logic/pdf/FileAnnotationCache.java index 1088f881f27..69290dc020a 100644 --- a/src/main/java/org/jabref/logic/pdf/FileAnnotationCache.java +++ b/jablib/src/main/java/org/jabref/logic/pdf/FileAnnotationCache.java @@ -34,7 +34,7 @@ public FileAnnotationCache() { public FileAnnotationCache(BibDatabaseContext context, FilePreferences filePreferences) { annotationCache = CacheBuilder.newBuilder().maximumSize(CACHE_SIZE).build(new CacheLoader<>() { @Override - public Map> load(BibEntry entry) throws Exception { + public Map> load(BibEntry entry) { return new EntryAnnotationImporter(entry).importAnnotationsFromFiles(context, filePreferences); } }); diff --git a/src/main/java/org/jabref/logic/pdf/InterruptablePDFTextStripper.java b/jablib/src/main/java/org/jabref/logic/pdf/InterruptablePDFTextStripper.java similarity index 100% rename from src/main/java/org/jabref/logic/pdf/InterruptablePDFTextStripper.java rename to jablib/src/main/java/org/jabref/logic/pdf/InterruptablePDFTextStripper.java diff --git a/src/main/java/org/jabref/logic/pdf/PdfAnnotationImporter.java b/jablib/src/main/java/org/jabref/logic/pdf/PdfAnnotationImporter.java similarity index 98% rename from src/main/java/org/jabref/logic/pdf/PdfAnnotationImporter.java rename to jablib/src/main/java/org/jabref/logic/pdf/PdfAnnotationImporter.java index 0dadd01e019..a23b93d6ca6 100644 --- a/src/main/java/org/jabref/logic/pdf/PdfAnnotationImporter.java +++ b/jablib/src/main/java/org/jabref/logic/pdf/PdfAnnotationImporter.java @@ -4,7 +4,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; -import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Locale; @@ -38,7 +37,7 @@ public class PdfAnnotationImporter implements AnnotationImporter { public List importAnnotations(final Path path) { if (!validatePath(path)) { // Path could not be validated, return default result - return Collections.emptyList(); + return List.of(); } List annotationsList = new LinkedList<>(); diff --git a/src/main/java/org/jabref/logic/pdf/TextExtractor.java b/jablib/src/main/java/org/jabref/logic/pdf/TextExtractor.java similarity index 100% rename from src/main/java/org/jabref/logic/pdf/TextExtractor.java rename to jablib/src/main/java/org/jabref/logic/pdf/TextExtractor.java diff --git a/src/main/java/org/jabref/logic/preferences/AutoCompleteFirstNameMode.java b/jablib/src/main/java/org/jabref/logic/preferences/AutoCompleteFirstNameMode.java similarity index 100% rename from src/main/java/org/jabref/logic/preferences/AutoCompleteFirstNameMode.java rename to jablib/src/main/java/org/jabref/logic/preferences/AutoCompleteFirstNameMode.java diff --git a/src/main/java/org/jabref/logic/preferences/CliPreferences.java b/jablib/src/main/java/org/jabref/logic/preferences/CliPreferences.java similarity index 95% rename from src/main/java/org/jabref/logic/preferences/CliPreferences.java rename to jablib/src/main/java/org/jabref/logic/preferences/CliPreferences.java index 0d39cdf55a1..1f05b1cfa87 100644 --- a/src/main/java/org/jabref/logic/preferences/CliPreferences.java +++ b/jablib/src/main/java/org/jabref/logic/preferences/CliPreferences.java @@ -19,6 +19,7 @@ import org.jabref.logic.importer.fetcher.MrDlibPreferences; import org.jabref.logic.importer.util.GrobidPreferences; import org.jabref.logic.journals.JournalAbbreviationPreferences; +import org.jabref.logic.journals.JournalAbbreviationRepository; import org.jabref.logic.layout.LayoutFormatterPreferences; import org.jabref.logic.layout.format.NameFormatterPreferences; import org.jabref.logic.net.ProxyPreferences; @@ -56,8 +57,6 @@ public interface CliPreferences { FieldPreferences getFieldPreferences(); - OpenOfficePreferences getOpenOfficePreferences(); - Map getPreferences(); Map getDefaults(); @@ -116,4 +115,6 @@ public interface CliPreferences { AiPreferences getAiPreferences(); LastFilesOpenedPreferences getLastFilesOpenedPreferences(); + + OpenOfficePreferences getOpenOfficePreferences(JournalAbbreviationRepository journalAbbreviationRepository); } diff --git a/src/main/java/org/jabref/logic/preferences/DOIPreferences.java b/jablib/src/main/java/org/jabref/logic/preferences/DOIPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/preferences/DOIPreferences.java rename to jablib/src/main/java/org/jabref/logic/preferences/DOIPreferences.java diff --git a/src/main/java/org/jabref/logic/preferences/FetcherApiKey.java b/jablib/src/main/java/org/jabref/logic/preferences/FetcherApiKey.java similarity index 100% rename from src/main/java/org/jabref/logic/preferences/FetcherApiKey.java rename to jablib/src/main/java/org/jabref/logic/preferences/FetcherApiKey.java diff --git a/src/main/java/org/jabref/logic/preferences/JabRefCliPreferences.java b/jablib/src/main/java/org/jabref/logic/preferences/JabRefCliPreferences.java similarity index 99% rename from src/main/java/org/jabref/logic/preferences/JabRefCliPreferences.java rename to jablib/src/main/java/org/jabref/logic/preferences/JabRefCliPreferences.java index 7df1c943415..42605a60da9 100644 --- a/src/main/java/org/jabref/logic/preferences/JabRefCliPreferences.java +++ b/jablib/src/main/java/org/jabref/logic/preferences/JabRefCliPreferences.java @@ -1,6 +1,5 @@ package org.jabref.logic.preferences; -import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -10,7 +9,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.EnumSet; import java.util.HashMap; import java.util.HashSet; @@ -31,7 +29,6 @@ import javafx.collections.ListChangeListener; import javafx.collections.SetChangeListener; -import org.jabref.gui.entryeditor.citationrelationtab.semanticscholar.SemanticScholarFetcher; import org.jabref.logic.FilePreferences; import org.jabref.logic.InternalPreferences; import org.jabref.logic.JabRefException; @@ -62,6 +59,7 @@ import org.jabref.logic.importer.fetcher.MrDlibPreferences; import org.jabref.logic.importer.fetcher.ScienceDirect; import org.jabref.logic.importer.fetcher.SpringerFetcher; +import org.jabref.logic.importer.fetcher.citation.semanticscholar.SemanticScholarFetcher; import org.jabref.logic.importer.fileformat.CustomImporter; import org.jabref.logic.importer.plaincitation.PlainCitationParserChoice; import org.jabref.logic.importer.util.GrobidPreferences; @@ -110,7 +108,6 @@ import org.jabref.model.search.SearchFlags; import org.jabref.model.strings.StringUtil; -import com.airhacks.afterburner.injection.Injector; import com.github.javakeyring.Keyring; import com.github.javakeyring.PasswordAccessException; import com.google.common.annotations.VisibleForTesting; @@ -436,7 +433,7 @@ public class JabRefCliPreferences implements CliPreferences { */ protected JabRefCliPreferences() { try { - if (new File("jabref.xml").exists()) { + if (Files.exists(Path.of("jabref.xml"))) { importPreferences(Path.of("jabref.xml")); } } catch (JabRefException e) { @@ -726,7 +723,7 @@ static String convertListToString(List value) { @VisibleForTesting static List convertStringToList(String toConvert) { if (StringUtil.isBlank(toConvert)) { - return Collections.emptyList(); + return List.of(); } return Splitter.on(STRINGLIST_DELIMITER).splitToList(toConvert); @@ -1112,60 +1109,6 @@ private static Preferences getPrefsNodeForCustomizedEntryTypes(BibDatabaseMode m // Misc //************************************************************************************************************* - @Override - public OpenOfficePreferences getOpenOfficePreferences() { - if (openOfficePreferences != null) { - return openOfficePreferences; - } - - String currentStylePath = get(OO_CURRENT_STYLE); - - OOStyle currentStyle = CSLStyleLoader.getDefaultStyle(); // Defaults to IEEE CSL Style - - // Reassign currentStyle based on actual last used CSL style or JStyle - if (CSLStyleUtils.isCitationStyleFile(currentStylePath)) { - currentStyle = CSLStyleUtils.createCitationStyleFromFile(currentStylePath) - .orElse(CSLStyleLoader.getDefaultStyle()); - } else { - // For now, must be a JStyle. In future, make separate cases for JStyles (.jstyle) and BibTeX (.bst) styles - try { - currentStyle = new JStyle(currentStylePath, getLayoutFormatterPreferences(), - Injector.instantiateModelOrService(JournalAbbreviationRepository.class)); - } catch (IOException ex) { - LOGGER.warn("Could not create JStyle", ex); - } - } - - openOfficePreferences = new OpenOfficePreferences( - get(OO_EXECUTABLE_PATH), - getBoolean(OO_USE_ALL_OPEN_BASES), - getBoolean(OO_SYNC_WHEN_CITING), - getStringList(OO_EXTERNAL_STYLE_FILES), - get(OO_BIBLIOGRAPHY_STYLE_FILE), - currentStyle, - getBoolean(OO_ALWAYS_ADD_CITED_ON_PAGES), - get(OO_CSL_BIBLIOGRAPHY_TITLE), - get(OO_CSL_BIBLIOGRAPHY_HEADER_FORMAT), - getStringList(OO_EXTERNAL_CSL_STYLES)); - - EasyBind.listen(openOfficePreferences.executablePathProperty(), (obs, oldValue, newValue) -> put(OO_EXECUTABLE_PATH, newValue)); - EasyBind.listen(openOfficePreferences.useAllDatabasesProperty(), (obs, oldValue, newValue) -> putBoolean(OO_USE_ALL_OPEN_BASES, newValue)); - EasyBind.listen(openOfficePreferences.alwaysAddCitedOnPagesProperty(), (obs, oldValue, newValue) -> putBoolean(OO_ALWAYS_ADD_CITED_ON_PAGES, newValue)); - EasyBind.listen(openOfficePreferences.syncWhenCitingProperty(), (obs, oldValue, newValue) -> putBoolean(OO_SYNC_WHEN_CITING, newValue)); - - openOfficePreferences.getExternalStyles().addListener((InvalidationListener) change -> - putStringList(OO_EXTERNAL_STYLE_FILES, openOfficePreferences.getExternalStyles())); - openOfficePreferences.getExternalCslStyles().addListener((InvalidationListener) change -> - putStringList(OO_EXTERNAL_CSL_STYLES, openOfficePreferences.getExternalCslStyles())); - EasyBind.listen(openOfficePreferences.currentJStyleProperty(), (obs, oldValue, newValue) -> put(OO_BIBLIOGRAPHY_STYLE_FILE, newValue)); - EasyBind.listen(openOfficePreferences.currentStyleProperty(), (obs, oldValue, newValue) -> put(OO_CURRENT_STYLE, newValue.getPath())); - - EasyBind.listen(openOfficePreferences.cslBibliographyTitleProperty(), (obs, oldValue, newValue) -> put(OO_CSL_BIBLIOGRAPHY_TITLE, newValue)); - EasyBind.listen(openOfficePreferences.cslBibliographyHeaderFormatProperty(), (obs, oldValue, newValue) -> put(OO_CSL_BIBLIOGRAPHY_HEADER_FORMAT, newValue)); - - return openOfficePreferences; - } - @Override public LibraryPreferences getLibraryPreferences() { if (libraryPreferences != null) { @@ -1177,7 +1120,7 @@ public LibraryPreferences getLibraryPreferences() { getBoolean(REFORMAT_FILE_ON_SAVE_AND_EXPORT), getBoolean(LOCAL_AUTO_SAVE)); - EasyBind.listen(libraryPreferences.defaultBibDatabaseModeProperty(), (obs, oldValue, newValue) -> putBoolean(BIBLATEX_DEFAULT_MODE, (newValue == BibDatabaseMode.BIBLATEX))); + EasyBind.listen(libraryPreferences.defaultBibDatabaseModeProperty(), (obs, oldValue, newValue) -> putBoolean(BIBLATEX_DEFAULT_MODE, newValue == BibDatabaseMode.BIBLATEX)); EasyBind.listen(libraryPreferences.alwaysReformatOnSaveProperty(), (obs, oldValue, newValue) -> putBoolean(REFORMAT_FILE_ON_SAVE_AND_EXPORT, newValue)); EasyBind.listen(libraryPreferences.autoSaveProperty(), (obs, oldValue, newValue) -> putBoolean(LOCAL_AUTO_SAVE, newValue)); @@ -1462,7 +1405,7 @@ public BibEntryPreferences getBibEntryPreferences() { get(KEYWORD_SEPARATOR).charAt(0) ); - EasyBind.listen(bibEntryPreferences.keywordSeparatorProperty(), ((observable, oldValue, newValue) -> put(KEYWORD_SEPARATOR, String.valueOf(newValue)))); + EasyBind.listen(bibEntryPreferences.keywordSeparatorProperty(), (observable, oldValue, newValue) -> put(KEYWORD_SEPARATOR, String.valueOf(newValue))); return bibEntryPreferences; } @@ -2160,10 +2103,12 @@ private List getFetcherKeysFromKeyring(List names) { } private Map getDefaultFetcherKeys() { - BuildInfo buildInfo = Injector.instantiateModelOrService(BuildInfo.class); + // TODO: We do not want to have a depdency on afterburner.fx (because of huge JavaFX depdencny tree). - Should be rewritten to new DI framework + // BuildInfo buildInfo = Injector.instantiateModelOrService(BuildInfo.class); + BuildInfo buildInfo = new BuildInfo(); if (buildInfo == null) { LOGGER.warn("Could not instantiate BuildInfo."); - return Collections.emptyMap(); + return Map.of(); } Map keys = new HashMap<>(); @@ -2264,4 +2209,57 @@ public ImportFormatPreferences getImportFormatPreferences() { } // endregion + + @Override + public OpenOfficePreferences getOpenOfficePreferences(JournalAbbreviationRepository journalAbbreviationRepository) { + if (openOfficePreferences != null) { + return openOfficePreferences; + } + + String currentStylePath = get(OO_CURRENT_STYLE); + + OOStyle currentStyle = CSLStyleLoader.getDefaultStyle(); // Defaults to IEEE CSL Style + + // Reassign currentStyle based on actual last used CSL style or JStyle + if (CSLStyleUtils.isCitationStyleFile(currentStylePath)) { + currentStyle = CSLStyleUtils.createCitationStyleFromFile(currentStylePath) + .orElse(CSLStyleLoader.getDefaultStyle()); + } else { + // For now, must be a JStyle. In future, make separate cases for JStyles (.jstyle) and BibTeX (.bst) styles + try { + currentStyle = new JStyle(currentStylePath, getLayoutFormatterPreferences(), journalAbbreviationRepository); + } catch (IOException ex) { + LOGGER.warn("Could not create JStyle", ex); + } + } + + openOfficePreferences = new OpenOfficePreferences( + get(OO_EXECUTABLE_PATH), + getBoolean(OO_USE_ALL_OPEN_BASES), + getBoolean(OO_SYNC_WHEN_CITING), + getStringList(OO_EXTERNAL_STYLE_FILES), + get(OO_BIBLIOGRAPHY_STYLE_FILE), + currentStyle, + getBoolean(OO_ALWAYS_ADD_CITED_ON_PAGES), + get(OO_CSL_BIBLIOGRAPHY_TITLE), + get(OO_CSL_BIBLIOGRAPHY_HEADER_FORMAT), + getStringList(OO_EXTERNAL_CSL_STYLES)); + + EasyBind.listen(openOfficePreferences.executablePathProperty(), (obs, oldValue, newValue) -> put(OO_EXECUTABLE_PATH, newValue)); + EasyBind.listen(openOfficePreferences.useAllDatabasesProperty(), (obs, oldValue, newValue) -> putBoolean(OO_USE_ALL_OPEN_BASES, newValue)); + EasyBind.listen(openOfficePreferences.alwaysAddCitedOnPagesProperty(), (obs, oldValue, newValue) -> putBoolean(OO_ALWAYS_ADD_CITED_ON_PAGES, newValue)); + EasyBind.listen(openOfficePreferences.syncWhenCitingProperty(), (obs, oldValue, newValue) -> putBoolean(OO_SYNC_WHEN_CITING, newValue)); + + openOfficePreferences.getExternalStyles().addListener((InvalidationListener) change -> + putStringList(OO_EXTERNAL_STYLE_FILES, openOfficePreferences.getExternalStyles())); + openOfficePreferences.getExternalCslStyles().addListener((InvalidationListener) change -> + putStringList(OO_EXTERNAL_CSL_STYLES, openOfficePreferences.getExternalCslStyles())); + EasyBind.listen(openOfficePreferences.currentJStyleProperty(), (obs, oldValue, newValue) -> put(OO_BIBLIOGRAPHY_STYLE_FILE, newValue)); + EasyBind.listen(openOfficePreferences.currentStyleProperty(), (obs, oldValue, newValue) -> put(OO_CURRENT_STYLE, newValue.getPath())); + + EasyBind.listen(openOfficePreferences.cslBibliographyTitleProperty(), (obs, oldValue, newValue) -> put(OO_CSL_BIBLIOGRAPHY_TITLE, newValue)); + EasyBind.listen(openOfficePreferences.cslBibliographyHeaderFormatProperty(), (obs, oldValue, newValue) -> put(OO_CSL_BIBLIOGRAPHY_HEADER_FORMAT, newValue)); + + return openOfficePreferences; + } } diff --git a/src/main/java/org/jabref/logic/preferences/LastFilesOpenedPreferences.java b/jablib/src/main/java/org/jabref/logic/preferences/LastFilesOpenedPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/preferences/LastFilesOpenedPreferences.java rename to jablib/src/main/java/org/jabref/logic/preferences/LastFilesOpenedPreferences.java diff --git a/src/main/java/org/jabref/logic/preferences/OwnerPreferences.java b/jablib/src/main/java/org/jabref/logic/preferences/OwnerPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/preferences/OwnerPreferences.java rename to jablib/src/main/java/org/jabref/logic/preferences/OwnerPreferences.java diff --git a/src/main/java/org/jabref/logic/preferences/TimestampPreferences.java b/jablib/src/main/java/org/jabref/logic/preferences/TimestampPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/preferences/TimestampPreferences.java rename to jablib/src/main/java/org/jabref/logic/preferences/TimestampPreferences.java diff --git a/src/main/java/org/jabref/logic/preview/PreviewLayout.java b/jablib/src/main/java/org/jabref/logic/preview/PreviewLayout.java similarity index 100% rename from src/main/java/org/jabref/logic/preview/PreviewLayout.java rename to jablib/src/main/java/org/jabref/logic/preview/PreviewLayout.java diff --git a/src/main/java/org/jabref/logic/protectedterms/ProtectedTermsList.java b/jablib/src/main/java/org/jabref/logic/protectedterms/ProtectedTermsList.java similarity index 100% rename from src/main/java/org/jabref/logic/protectedterms/ProtectedTermsList.java rename to jablib/src/main/java/org/jabref/logic/protectedterms/ProtectedTermsList.java diff --git a/src/main/java/org/jabref/logic/protectedterms/ProtectedTermsLoader.java b/jablib/src/main/java/org/jabref/logic/protectedterms/ProtectedTermsLoader.java similarity index 100% rename from src/main/java/org/jabref/logic/protectedterms/ProtectedTermsLoader.java rename to jablib/src/main/java/org/jabref/logic/protectedterms/ProtectedTermsLoader.java diff --git a/src/main/java/org/jabref/logic/protectedterms/ProtectedTermsParser.java b/jablib/src/main/java/org/jabref/logic/protectedterms/ProtectedTermsParser.java similarity index 100% rename from src/main/java/org/jabref/logic/protectedterms/ProtectedTermsParser.java rename to jablib/src/main/java/org/jabref/logic/protectedterms/ProtectedTermsParser.java diff --git a/src/main/java/org/jabref/logic/protectedterms/ProtectedTermsPreferences.java b/jablib/src/main/java/org/jabref/logic/protectedterms/ProtectedTermsPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/protectedterms/ProtectedTermsPreferences.java rename to jablib/src/main/java/org/jabref/logic/protectedterms/ProtectedTermsPreferences.java diff --git a/src/main/java/org/jabref/logic/pseudonymization/Pseudonymization.java b/jablib/src/main/java/org/jabref/logic/pseudonymization/Pseudonymization.java similarity index 100% rename from src/main/java/org/jabref/logic/pseudonymization/Pseudonymization.java rename to jablib/src/main/java/org/jabref/logic/pseudonymization/Pseudonymization.java diff --git a/src/main/java/org/jabref/logic/pseudonymization/PseudonymizationResultCsvWriter.java b/jablib/src/main/java/org/jabref/logic/pseudonymization/PseudonymizationResultCsvWriter.java similarity index 100% rename from src/main/java/org/jabref/logic/pseudonymization/PseudonymizationResultCsvWriter.java rename to jablib/src/main/java/org/jabref/logic/pseudonymization/PseudonymizationResultCsvWriter.java diff --git a/src/main/java/org/jabref/logic/push/CitationCommandString.java b/jablib/src/main/java/org/jabref/logic/push/CitationCommandString.java similarity index 100% rename from src/main/java/org/jabref/logic/push/CitationCommandString.java rename to jablib/src/main/java/org/jabref/logic/push/CitationCommandString.java diff --git a/src/main/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheck.java b/jablib/src/main/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheck.java similarity index 100% rename from src/main/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheck.java rename to jablib/src/main/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheck.java diff --git a/src/main/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultCsvWriter.java b/jablib/src/main/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultCsvWriter.java similarity index 100% rename from src/main/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultCsvWriter.java rename to jablib/src/main/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultCsvWriter.java diff --git a/src/main/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultTxtWriter.java b/jablib/src/main/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultTxtWriter.java similarity index 100% rename from src/main/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultTxtWriter.java rename to jablib/src/main/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultTxtWriter.java diff --git a/src/main/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultWriter.java b/jablib/src/main/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultWriter.java similarity index 100% rename from src/main/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultWriter.java rename to jablib/src/main/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultWriter.java diff --git a/src/main/java/org/jabref/logic/quality/consistency/ConsistencyMessage.java b/jablib/src/main/java/org/jabref/logic/quality/consistency/ConsistencyMessage.java similarity index 100% rename from src/main/java/org/jabref/logic/quality/consistency/ConsistencyMessage.java rename to jablib/src/main/java/org/jabref/logic/quality/consistency/ConsistencyMessage.java diff --git a/src/main/java/org/jabref/logic/remote/Protocol.java b/jablib/src/main/java/org/jabref/logic/remote/Protocol.java similarity index 100% rename from src/main/java/org/jabref/logic/remote/Protocol.java rename to jablib/src/main/java/org/jabref/logic/remote/Protocol.java diff --git a/src/main/java/org/jabref/logic/remote/RemoteMessage.java b/jablib/src/main/java/org/jabref/logic/remote/RemoteMessage.java similarity index 100% rename from src/main/java/org/jabref/logic/remote/RemoteMessage.java rename to jablib/src/main/java/org/jabref/logic/remote/RemoteMessage.java diff --git a/src/main/java/org/jabref/logic/remote/RemotePreferences.java b/jablib/src/main/java/org/jabref/logic/remote/RemotePreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/remote/RemotePreferences.java rename to jablib/src/main/java/org/jabref/logic/remote/RemotePreferences.java diff --git a/src/main/java/org/jabref/logic/remote/RemoteUtil.java b/jablib/src/main/java/org/jabref/logic/remote/RemoteUtil.java similarity index 100% rename from src/main/java/org/jabref/logic/remote/RemoteUtil.java rename to jablib/src/main/java/org/jabref/logic/remote/RemoteUtil.java diff --git a/src/main/java/org/jabref/logic/remote/client/RemoteClient.java b/jablib/src/main/java/org/jabref/logic/remote/client/RemoteClient.java similarity index 100% rename from src/main/java/org/jabref/logic/remote/client/RemoteClient.java rename to jablib/src/main/java/org/jabref/logic/remote/client/RemoteClient.java diff --git a/src/main/java/org/jabref/logic/remote/server/RemoteListenerServer.java b/jablib/src/main/java/org/jabref/logic/remote/server/RemoteListenerServer.java similarity index 100% rename from src/main/java/org/jabref/logic/remote/server/RemoteListenerServer.java rename to jablib/src/main/java/org/jabref/logic/remote/server/RemoteListenerServer.java diff --git a/src/main/java/org/jabref/logic/remote/server/RemoteListenerServerManager.java b/jablib/src/main/java/org/jabref/logic/remote/server/RemoteListenerServerManager.java similarity index 100% rename from src/main/java/org/jabref/logic/remote/server/RemoteListenerServerManager.java rename to jablib/src/main/java/org/jabref/logic/remote/server/RemoteListenerServerManager.java diff --git a/src/main/java/org/jabref/logic/remote/server/RemoteListenerServerThread.java b/jablib/src/main/java/org/jabref/logic/remote/server/RemoteListenerServerThread.java similarity index 100% rename from src/main/java/org/jabref/logic/remote/server/RemoteListenerServerThread.java rename to jablib/src/main/java/org/jabref/logic/remote/server/RemoteListenerServerThread.java diff --git a/src/main/java/org/jabref/logic/remote/server/RemoteMessageHandler.java b/jablib/src/main/java/org/jabref/logic/remote/server/RemoteMessageHandler.java similarity index 100% rename from src/main/java/org/jabref/logic/remote/server/RemoteMessageHandler.java rename to jablib/src/main/java/org/jabref/logic/remote/server/RemoteMessageHandler.java diff --git a/src/main/java/org/jabref/logic/search/DatabaseSearcher.java b/jablib/src/main/java/org/jabref/logic/search/DatabaseSearcher.java similarity index 89% rename from src/main/java/org/jabref/logic/search/DatabaseSearcher.java rename to jablib/src/main/java/org/jabref/logic/search/DatabaseSearcher.java index 6b51f651539..17adc8072bf 100644 --- a/src/main/java/org/jabref/logic/search/DatabaseSearcher.java +++ b/jablib/src/main/java/org/jabref/logic/search/DatabaseSearcher.java @@ -1,7 +1,6 @@ package org.jabref.logic.search; import java.io.IOException; -import java.util.Collections; import java.util.List; import java.util.Objects; @@ -22,11 +21,11 @@ public class DatabaseSearcher { private final SearchQuery query; private final IndexManager indexManager; - // get rid of task executor here or add a constructor overload? - public DatabaseSearcher(SearchQuery query, BibDatabaseContext databaseContext, TaskExecutor taskExecutor, CliPreferences preferences) throws IOException { + // TODO: get rid of task executor here or add a constructor overload? + public DatabaseSearcher(SearchQuery query, BibDatabaseContext databaseContext, TaskExecutor taskExecutor, CliPreferences preferences, PostgreServer postgreServer) throws IOException { this.databaseContext = databaseContext; this.query = Objects.requireNonNull(query); - this.indexManager = new IndexManager(databaseContext, taskExecutor, preferences); + this.indexManager = new IndexManager(databaseContext, taskExecutor, preferences, postgreServer); } /** @@ -38,7 +37,7 @@ public List getMatches() { if (!query.isValid()) { LOGGER.warn("Search failed: invalid search expression"); indexManager.closeAndWait(); - return Collections.emptyList(); + return List.of(); } List matchEntries = indexManager.search(query) .getMatchedEntries() diff --git a/src/main/java/org/jabref/logic/search/IndexManager.java b/jablib/src/main/java/org/jabref/logic/search/IndexManager.java similarity index 97% rename from src/main/java/org/jabref/logic/search/IndexManager.java rename to jablib/src/main/java/org/jabref/logic/search/IndexManager.java index 33c215a9c90..aafce8771ab 100644 --- a/src/main/java/org/jabref/logic/search/IndexManager.java +++ b/jablib/src/main/java/org/jabref/logic/search/IndexManager.java @@ -31,7 +31,6 @@ import org.jabref.model.search.query.SearchQuery; import org.jabref.model.search.query.SearchResults; -import com.airhacks.afterburner.injection.Injector; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -47,14 +46,13 @@ public class IndexManager { private final BibFieldsSearcher bibFieldsSearcher; private final LinkedFilesSearcher linkedFilesSearcher; - public IndexManager(BibDatabaseContext databaseContext, TaskExecutor executor, CliPreferences preferences) { + public IndexManager(BibDatabaseContext databaseContext, TaskExecutor executor, CliPreferences preferences, PostgreServer postgreServer) { this.taskExecutor = executor; this.databaseContext = databaseContext; this.shouldIndexLinkedFiles = preferences.getFilePreferences().fulltextIndexLinkedFilesProperty(); this.preferencesListener = (observable, oldValue, newValue) -> bindToPreferences(newValue); this.shouldIndexLinkedFiles.addListener(preferencesListener); - PostgreServer postgreServer = Injector.instantiateModelOrService(PostgreServer.class); bibFieldsIndexer = new BibFieldsIndexer(preferences.getBibEntryPreferences(), databaseContext, postgreServer.getConnection()); LuceneIndexer indexer; diff --git a/src/main/java/org/jabref/logic/search/LuceneIndexer.java b/jablib/src/main/java/org/jabref/logic/search/LuceneIndexer.java similarity index 100% rename from src/main/java/org/jabref/logic/search/LuceneIndexer.java rename to jablib/src/main/java/org/jabref/logic/search/LuceneIndexer.java diff --git a/src/main/java/org/jabref/logic/search/PostgreServer.java b/jablib/src/main/java/org/jabref/logic/search/PostgreServer.java similarity index 100% rename from src/main/java/org/jabref/logic/search/PostgreServer.java rename to jablib/src/main/java/org/jabref/logic/search/PostgreServer.java diff --git a/src/main/java/org/jabref/logic/search/SearchPreferences.java b/jablib/src/main/java/org/jabref/logic/search/SearchPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/search/SearchPreferences.java rename to jablib/src/main/java/org/jabref/logic/search/SearchPreferences.java diff --git a/src/main/java/org/jabref/logic/search/indexing/BibFieldsIndexer.java b/jablib/src/main/java/org/jabref/logic/search/indexing/BibFieldsIndexer.java similarity index 100% rename from src/main/java/org/jabref/logic/search/indexing/BibFieldsIndexer.java rename to jablib/src/main/java/org/jabref/logic/search/indexing/BibFieldsIndexer.java diff --git a/src/main/java/org/jabref/logic/search/indexing/DefaultLinkedFilesIndexer.java b/jablib/src/main/java/org/jabref/logic/search/indexing/DefaultLinkedFilesIndexer.java similarity index 100% rename from src/main/java/org/jabref/logic/search/indexing/DefaultLinkedFilesIndexer.java rename to jablib/src/main/java/org/jabref/logic/search/indexing/DefaultLinkedFilesIndexer.java diff --git a/src/main/java/org/jabref/logic/search/indexing/DocumentReader.java b/jablib/src/main/java/org/jabref/logic/search/indexing/DocumentReader.java similarity index 100% rename from src/main/java/org/jabref/logic/search/indexing/DocumentReader.java rename to jablib/src/main/java/org/jabref/logic/search/indexing/DocumentReader.java diff --git a/src/main/java/org/jabref/logic/search/indexing/ReadOnlyLinkedFilesIndexer.java b/jablib/src/main/java/org/jabref/logic/search/indexing/ReadOnlyLinkedFilesIndexer.java similarity index 100% rename from src/main/java/org/jabref/logic/search/indexing/ReadOnlyLinkedFilesIndexer.java rename to jablib/src/main/java/org/jabref/logic/search/indexing/ReadOnlyLinkedFilesIndexer.java diff --git a/src/main/java/org/jabref/logic/search/query/SearchFlagsToExpressionVisitor.java b/jablib/src/main/java/org/jabref/logic/search/query/SearchFlagsToExpressionVisitor.java similarity index 100% rename from src/main/java/org/jabref/logic/search/query/SearchFlagsToExpressionVisitor.java rename to jablib/src/main/java/org/jabref/logic/search/query/SearchFlagsToExpressionVisitor.java diff --git a/src/main/java/org/jabref/logic/search/query/SearchQueryConversion.java b/jablib/src/main/java/org/jabref/logic/search/query/SearchQueryConversion.java similarity index 100% rename from src/main/java/org/jabref/logic/search/query/SearchQueryConversion.java rename to jablib/src/main/java/org/jabref/logic/search/query/SearchQueryConversion.java diff --git a/src/main/java/org/jabref/logic/search/query/SearchQueryExtractorVisitor.java b/jablib/src/main/java/org/jabref/logic/search/query/SearchQueryExtractorVisitor.java similarity index 100% rename from src/main/java/org/jabref/logic/search/query/SearchQueryExtractorVisitor.java rename to jablib/src/main/java/org/jabref/logic/search/query/SearchQueryExtractorVisitor.java diff --git a/src/main/java/org/jabref/logic/search/query/SearchToLuceneVisitor.java b/jablib/src/main/java/org/jabref/logic/search/query/SearchToLuceneVisitor.java similarity index 100% rename from src/main/java/org/jabref/logic/search/query/SearchToLuceneVisitor.java rename to jablib/src/main/java/org/jabref/logic/search/query/SearchToLuceneVisitor.java diff --git a/src/main/java/org/jabref/logic/search/query/SearchToSqlVisitor.java b/jablib/src/main/java/org/jabref/logic/search/query/SearchToSqlVisitor.java similarity index 100% rename from src/main/java/org/jabref/logic/search/query/SearchToSqlVisitor.java rename to jablib/src/main/java/org/jabref/logic/search/query/SearchToSqlVisitor.java diff --git a/src/main/java/org/jabref/logic/search/retrieval/BibFieldsSearcher.java b/jablib/src/main/java/org/jabref/logic/search/retrieval/BibFieldsSearcher.java similarity index 100% rename from src/main/java/org/jabref/logic/search/retrieval/BibFieldsSearcher.java rename to jablib/src/main/java/org/jabref/logic/search/retrieval/BibFieldsSearcher.java diff --git a/src/main/java/org/jabref/logic/search/retrieval/LinkedFilesSearcher.java b/jablib/src/main/java/org/jabref/logic/search/retrieval/LinkedFilesSearcher.java similarity index 100% rename from src/main/java/org/jabref/logic/search/retrieval/LinkedFilesSearcher.java rename to jablib/src/main/java/org/jabref/logic/search/retrieval/LinkedFilesSearcher.java diff --git a/src/main/java/org/jabref/logic/shared/DBMSConnection.java b/jablib/src/main/java/org/jabref/logic/shared/DBMSConnection.java similarity index 100% rename from src/main/java/org/jabref/logic/shared/DBMSConnection.java rename to jablib/src/main/java/org/jabref/logic/shared/DBMSConnection.java diff --git a/src/main/java/org/jabref/logic/shared/DBMSConnectionProperties.java b/jablib/src/main/java/org/jabref/logic/shared/DBMSConnectionProperties.java similarity index 100% rename from src/main/java/org/jabref/logic/shared/DBMSConnectionProperties.java rename to jablib/src/main/java/org/jabref/logic/shared/DBMSConnectionProperties.java diff --git a/src/main/java/org/jabref/logic/shared/DBMSConnectionPropertiesBuilder.java b/jablib/src/main/java/org/jabref/logic/shared/DBMSConnectionPropertiesBuilder.java similarity index 100% rename from src/main/java/org/jabref/logic/shared/DBMSConnectionPropertiesBuilder.java rename to jablib/src/main/java/org/jabref/logic/shared/DBMSConnectionPropertiesBuilder.java diff --git a/src/main/java/org/jabref/logic/shared/DBMSProcessor.java b/jablib/src/main/java/org/jabref/logic/shared/DBMSProcessor.java similarity index 95% rename from src/main/java/org/jabref/logic/shared/DBMSProcessor.java rename to jablib/src/main/java/org/jabref/logic/shared/DBMSProcessor.java index d7ac69ee6f9..af2d7a7576e 100644 --- a/src/main/java/org/jabref/logic/shared/DBMSProcessor.java +++ b/jablib/src/main/java/org/jabref/logic/shared/DBMSProcessor.java @@ -6,7 +6,6 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -59,16 +58,12 @@ public boolean checkBaseIntegrity() throws SQLException { boolean databasePassesIntegrityCheck = false; DBMSType type = this.connectionProperties.getType(); Map metadata = getSharedMetaData(); - if (type == DBMSType.POSTGRESQL || type == DBMSType.MYSQL) { - String metadataVersion = metadata.get(MetaData.VERSION_DB_STRUCT); - if (metadataVersion != null) { - int VERSION_DB_STRUCT = Integer.parseInt(metadata.getOrDefault(MetaData.VERSION_DB_STRUCT, "").replace(";", "")); - if (VERSION_DB_STRUCT == getCURRENT_VERSION_DB_STRUCT()) { - databasePassesIntegrityCheck = true; - } + String metadataVersion = metadata.get(MetaData.VERSION_DB_STRUCT); + if (metadataVersion != null) { + int VERSION_DB_STRUCT = Integer.parseInt(metadata.getOrDefault(MetaData.VERSION_DB_STRUCT, "").replace(";", "")); + if (VERSION_DB_STRUCT == getCURRENT_VERSION_DB_STRUCT()) { + databasePassesIntegrityCheck = true; } - } else { - databasePassesIntegrityCheck = checkTableAvailability("ENTRY", "FIELD", "METADATA"); } return databasePassesIntegrityCheck; } @@ -155,7 +150,7 @@ public void setupSharedDatabase() throws SQLException { * @param bibEntry {@link BibEntry} to be inserted. */ public void insertEntry(BibEntry bibEntry) { - insertEntries(Collections.singletonList(bibEntry)); + insertEntries(List.of(bibEntry)); } /** @@ -185,7 +180,7 @@ protected void insertIntoEntryTable(List bibEntries) { .append(escape("TYPE")) .append(") VALUES(?)"); // Number of commas is bibEntries.size() - 1 - insertIntoEntryQuery.append(", (?)".repeat(Math.max(0, (bibEntries.size() - 1)))); + insertIntoEntryQuery.append(", (?)".repeat(Math.max(0, bibEntries.size() - 1))); try (PreparedStatement preparedEntryStatement = connection.prepareStatement(insertIntoEntryQuery.toString(), new String[]{"SHARED_ID"})) { @@ -276,7 +271,7 @@ protected void insertIntoFieldTable(List bibEntries) { } // Number of commas is fields.size() - 1 - insertFieldQuery.append(", (?, ?, ?)".repeat(Math.max(0, (numFields - 1)))); + insertFieldQuery.append(", (?, ?, ?)".repeat(Math.max(0, numFields - 1))); try (PreparedStatement preparedFieldStatement = connection.prepareStatement(insertFieldQuery.toString())) { int fieldsCompleted = 0; for (int entryIndex = 0; entryIndex < fields.size(); entryIndex++) { @@ -479,7 +474,7 @@ public void removeEntries(List bibEntries) { * @return instance of {@link BibEntry} */ public Optional getSharedEntry(int sharedID) { - List sharedEntries = getSharedEntries(Collections.singletonList(sharedID)); + List sharedEntries = getSharedEntries(List.of(sharedID)); if (sharedEntries.isEmpty()) { return Optional.empty(); } else { @@ -569,14 +564,14 @@ public List getSharedEntries(List sharedIDs) { } catch (SQLException e) { LOGGER.error("Executed >{}<", query); LOGGER.error("SQL Error", e); - return Collections.emptyList(); + return List.of(); } return sharedEntries; } public List getSharedEntries() { - return getSharedEntries(Collections.emptyList()); + return getSharedEntries(List.of()); } /** @@ -666,15 +661,7 @@ public void setSharedMetaData(Map data) throws SQLException { * Returns a new instance of the abstract type {@link DBMSProcessor} */ public static DBMSProcessor getProcessorInstance(DatabaseConnection connection) { - DBMSType type = connection.getProperties().getType(); - if (type == DBMSType.MYSQL) { - return new MySQLProcessor(connection); - } else if (type == DBMSType.POSTGRESQL) { - return new PostgreSQLProcessor(connection); - } else if (type == DBMSType.ORACLE) { - return new OracleProcessor(connection); - } - return null; // can never happen except new types were added without updating this method. + return new PostgreSQLProcessor(connection); } public DatabaseConnectionProperties getDBMSConnectionProperties() { diff --git a/src/main/java/org/jabref/logic/shared/DBMSSynchronizer.java b/jablib/src/main/java/org/jabref/logic/shared/DBMSSynchronizer.java similarity index 100% rename from src/main/java/org/jabref/logic/shared/DBMSSynchronizer.java rename to jablib/src/main/java/org/jabref/logic/shared/DBMSSynchronizer.java diff --git a/src/main/java/org/jabref/logic/shared/DBMSType.java b/jablib/src/main/java/org/jabref/logic/shared/DBMSType.java similarity index 87% rename from src/main/java/org/jabref/logic/shared/DBMSType.java rename to jablib/src/main/java/org/jabref/logic/shared/DBMSType.java index ebb49730b9e..03127ca338b 100644 --- a/src/main/java/org/jabref/logic/shared/DBMSType.java +++ b/jablib/src/main/java/org/jabref/logic/shared/DBMSType.java @@ -7,9 +7,7 @@ * Enumerates all supported database systems (DBMS) by JabRef. */ public enum DBMSType { - POSTGRESQL("PostgreSQL", "org.postgresql.Driver", "jdbc:postgresql://%s:%d/%s", 5432), - MYSQL("MySQL", "org.mariadb.jdbc.Driver", "jdbc:mariadb://%s:%d/%s", 3306), - ORACLE("Oracle", "oracle.jdbc.driver.OracleDriver", "jdbc:oracle:thin:@%s:%d/%s", 1521); + POSTGRESQL("PostgreSQL", "org.postgresql.Driver", "jdbc:postgresql://%s:%d/%s", 5432); private final String type; private final String driverPath; diff --git a/src/main/java/org/jabref/logic/shared/DatabaseConnection.java b/jablib/src/main/java/org/jabref/logic/shared/DatabaseConnection.java similarity index 100% rename from src/main/java/org/jabref/logic/shared/DatabaseConnection.java rename to jablib/src/main/java/org/jabref/logic/shared/DatabaseConnection.java diff --git a/src/main/java/org/jabref/logic/shared/DatabaseConnectionProperties.java b/jablib/src/main/java/org/jabref/logic/shared/DatabaseConnectionProperties.java similarity index 100% rename from src/main/java/org/jabref/logic/shared/DatabaseConnectionProperties.java rename to jablib/src/main/java/org/jabref/logic/shared/DatabaseConnectionProperties.java diff --git a/src/main/java/org/jabref/logic/shared/DatabaseLocation.java b/jablib/src/main/java/org/jabref/logic/shared/DatabaseLocation.java similarity index 100% rename from src/main/java/org/jabref/logic/shared/DatabaseLocation.java rename to jablib/src/main/java/org/jabref/logic/shared/DatabaseLocation.java diff --git a/src/main/java/org/jabref/logic/shared/DatabaseNotSupportedException.java b/jablib/src/main/java/org/jabref/logic/shared/DatabaseNotSupportedException.java similarity index 100% rename from src/main/java/org/jabref/logic/shared/DatabaseNotSupportedException.java rename to jablib/src/main/java/org/jabref/logic/shared/DatabaseNotSupportedException.java diff --git a/src/main/java/org/jabref/logic/shared/DatabaseSynchronizer.java b/jablib/src/main/java/org/jabref/logic/shared/DatabaseSynchronizer.java similarity index 100% rename from src/main/java/org/jabref/logic/shared/DatabaseSynchronizer.java rename to jablib/src/main/java/org/jabref/logic/shared/DatabaseSynchronizer.java diff --git a/src/main/java/org/jabref/logic/shared/PostgreSQLProcessor.java b/jablib/src/main/java/org/jabref/logic/shared/PostgreSQLProcessor.java similarity index 100% rename from src/main/java/org/jabref/logic/shared/PostgreSQLProcessor.java rename to jablib/src/main/java/org/jabref/logic/shared/PostgreSQLProcessor.java diff --git a/src/main/java/org/jabref/logic/shared/event/ConnectionLostEvent.java b/jablib/src/main/java/org/jabref/logic/shared/event/ConnectionLostEvent.java similarity index 100% rename from src/main/java/org/jabref/logic/shared/event/ConnectionLostEvent.java rename to jablib/src/main/java/org/jabref/logic/shared/event/ConnectionLostEvent.java diff --git a/src/main/java/org/jabref/logic/shared/event/SharedEntriesNotPresentEvent.java b/jablib/src/main/java/org/jabref/logic/shared/event/SharedEntriesNotPresentEvent.java similarity index 100% rename from src/main/java/org/jabref/logic/shared/event/SharedEntriesNotPresentEvent.java rename to jablib/src/main/java/org/jabref/logic/shared/event/SharedEntriesNotPresentEvent.java diff --git a/src/main/java/org/jabref/logic/shared/event/UpdateRefusedEvent.java b/jablib/src/main/java/org/jabref/logic/shared/event/UpdateRefusedEvent.java similarity index 100% rename from src/main/java/org/jabref/logic/shared/event/UpdateRefusedEvent.java rename to jablib/src/main/java/org/jabref/logic/shared/event/UpdateRefusedEvent.java diff --git a/src/main/java/org/jabref/logic/shared/exception/InvalidDBMSConnectionPropertiesException.java b/jablib/src/main/java/org/jabref/logic/shared/exception/InvalidDBMSConnectionPropertiesException.java similarity index 100% rename from src/main/java/org/jabref/logic/shared/exception/InvalidDBMSConnectionPropertiesException.java rename to jablib/src/main/java/org/jabref/logic/shared/exception/InvalidDBMSConnectionPropertiesException.java diff --git a/src/main/java/org/jabref/logic/shared/exception/NotASharedDatabaseException.java b/jablib/src/main/java/org/jabref/logic/shared/exception/NotASharedDatabaseException.java similarity index 100% rename from src/main/java/org/jabref/logic/shared/exception/NotASharedDatabaseException.java rename to jablib/src/main/java/org/jabref/logic/shared/exception/NotASharedDatabaseException.java diff --git a/src/main/java/org/jabref/logic/shared/exception/OfflineLockException.java b/jablib/src/main/java/org/jabref/logic/shared/exception/OfflineLockException.java similarity index 100% rename from src/main/java/org/jabref/logic/shared/exception/OfflineLockException.java rename to jablib/src/main/java/org/jabref/logic/shared/exception/OfflineLockException.java diff --git a/src/main/java/org/jabref/logic/shared/exception/SharedEntryNotPresentException.java b/jablib/src/main/java/org/jabref/logic/shared/exception/SharedEntryNotPresentException.java similarity index 100% rename from src/main/java/org/jabref/logic/shared/exception/SharedEntryNotPresentException.java rename to jablib/src/main/java/org/jabref/logic/shared/exception/SharedEntryNotPresentException.java diff --git a/src/main/java/org/jabref/logic/shared/listener/PostgresSQLNotificationListener.java b/jablib/src/main/java/org/jabref/logic/shared/listener/PostgresSQLNotificationListener.java similarity index 100% rename from src/main/java/org/jabref/logic/shared/listener/PostgresSQLNotificationListener.java rename to jablib/src/main/java/org/jabref/logic/shared/listener/PostgresSQLNotificationListener.java diff --git a/src/main/java/org/jabref/logic/shared/prefs/SharedDatabasePreferences.java b/jablib/src/main/java/org/jabref/logic/shared/prefs/SharedDatabasePreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/shared/prefs/SharedDatabasePreferences.java rename to jablib/src/main/java/org/jabref/logic/shared/prefs/SharedDatabasePreferences.java diff --git a/src/main/java/org/jabref/logic/shared/security/Password.java b/jablib/src/main/java/org/jabref/logic/shared/security/Password.java similarity index 100% rename from src/main/java/org/jabref/logic/shared/security/Password.java rename to jablib/src/main/java/org/jabref/logic/shared/security/Password.java diff --git a/src/main/java/org/jabref/logic/texparser/DefaultLatexParser.java b/jablib/src/main/java/org/jabref/logic/texparser/DefaultLatexParser.java similarity index 100% rename from src/main/java/org/jabref/logic/texparser/DefaultLatexParser.java rename to jablib/src/main/java/org/jabref/logic/texparser/DefaultLatexParser.java diff --git a/src/main/java/org/jabref/logic/texparser/LatexParser.java b/jablib/src/main/java/org/jabref/logic/texparser/LatexParser.java similarity index 100% rename from src/main/java/org/jabref/logic/texparser/LatexParser.java rename to jablib/src/main/java/org/jabref/logic/texparser/LatexParser.java diff --git a/src/main/java/org/jabref/logic/texparser/TexBibEntriesResolver.java b/jablib/src/main/java/org/jabref/logic/texparser/TexBibEntriesResolver.java similarity index 100% rename from src/main/java/org/jabref/logic/texparser/TexBibEntriesResolver.java rename to jablib/src/main/java/org/jabref/logic/texparser/TexBibEntriesResolver.java diff --git a/src/main/java/org/jabref/logic/util/BackgroundTask.java b/jablib/src/main/java/org/jabref/logic/util/BackgroundTask.java similarity index 100% rename from src/main/java/org/jabref/logic/util/BackgroundTask.java rename to jablib/src/main/java/org/jabref/logic/util/BackgroundTask.java diff --git a/src/main/java/org/jabref/logic/util/BackupFileType.java b/jablib/src/main/java/org/jabref/logic/util/BackupFileType.java similarity index 87% rename from src/main/java/org/jabref/logic/util/BackupFileType.java rename to jablib/src/main/java/org/jabref/logic/util/BackupFileType.java index b24cc3faeb8..cdbd446427b 100644 --- a/src/main/java/org/jabref/logic/util/BackupFileType.java +++ b/jablib/src/main/java/org/jabref/logic/util/BackupFileType.java @@ -1,6 +1,5 @@ package org.jabref.logic.util; -import java.util.Collections; import java.util.List; public enum BackupFileType implements FileType { @@ -16,7 +15,7 @@ public enum BackupFileType implements FileType { private final String name; BackupFileType(String name, String extension) { - this.extensions = Collections.singletonList(extension); + this.extensions = List.of(extension); this.name = name; } diff --git a/src/main/java/org/jabref/logic/util/BuildInfo.java b/jablib/src/main/java/org/jabref/logic/util/BuildInfo.java similarity index 100% rename from src/main/java/org/jabref/logic/util/BuildInfo.java rename to jablib/src/main/java/org/jabref/logic/util/BuildInfo.java diff --git a/src/main/java/org/jabref/logic/util/CoarseChangeFilter.java b/jablib/src/main/java/org/jabref/logic/util/CoarseChangeFilter.java similarity index 100% rename from src/main/java/org/jabref/logic/util/CoarseChangeFilter.java rename to jablib/src/main/java/org/jabref/logic/util/CoarseChangeFilter.java diff --git a/src/main/java/org/jabref/logic/util/CurrentThreadTaskExecutor.java b/jablib/src/main/java/org/jabref/logic/util/CurrentThreadTaskExecutor.java similarity index 100% rename from src/main/java/org/jabref/logic/util/CurrentThreadTaskExecutor.java rename to jablib/src/main/java/org/jabref/logic/util/CurrentThreadTaskExecutor.java diff --git a/src/main/java/org/jabref/logic/util/DelayTaskThrottler.java b/jablib/src/main/java/org/jabref/logic/util/DelayTaskThrottler.java similarity index 100% rename from src/main/java/org/jabref/logic/util/DelayTaskThrottler.java rename to jablib/src/main/java/org/jabref/logic/util/DelayTaskThrottler.java diff --git a/src/main/java/org/jabref/logic/util/Directories.java b/jablib/src/main/java/org/jabref/logic/util/Directories.java similarity index 100% rename from src/main/java/org/jabref/logic/util/Directories.java rename to jablib/src/main/java/org/jabref/logic/util/Directories.java diff --git a/src/main/java/org/jabref/logic/util/ExternalLinkCreator.java b/jablib/src/main/java/org/jabref/logic/util/ExternalLinkCreator.java similarity index 100% rename from src/main/java/org/jabref/logic/util/ExternalLinkCreator.java rename to jablib/src/main/java/org/jabref/logic/util/ExternalLinkCreator.java diff --git a/src/main/java/org/jabref/logic/util/FallbackExceptionHandler.java b/jablib/src/main/java/org/jabref/logic/util/FallbackExceptionHandler.java similarity index 100% rename from src/main/java/org/jabref/logic/util/FallbackExceptionHandler.java rename to jablib/src/main/java/org/jabref/logic/util/FallbackExceptionHandler.java diff --git a/src/main/java/org/jabref/logic/util/FileType.java b/jablib/src/main/java/org/jabref/logic/util/FileType.java similarity index 100% rename from src/main/java/org/jabref/logic/util/FileType.java rename to jablib/src/main/java/org/jabref/logic/util/FileType.java diff --git a/src/main/java/org/jabref/logic/util/HeadlessExecutorService.java b/jablib/src/main/java/org/jabref/logic/util/HeadlessExecutorService.java similarity index 98% rename from src/main/java/org/jabref/logic/util/HeadlessExecutorService.java rename to jablib/src/main/java/org/jabref/logic/util/HeadlessExecutorService.java index 1070b29dfe2..cfd732ca2f7 100644 --- a/src/main/java/org/jabref/logic/util/HeadlessExecutorService.java +++ b/jablib/src/main/java/org/jabref/logic/util/HeadlessExecutorService.java @@ -1,7 +1,6 @@ package org.jabref.logic.util; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Timer; @@ -94,7 +93,7 @@ public List> executeAll(Collection> tasks) { return executorService.invokeAll(tasks); } catch (InterruptedException exception) { // Ignored - return Collections.emptyList(); + return List.of(); } } @@ -104,7 +103,7 @@ public List> executeAll(Collection> tasks, int timeout return executorService.invokeAll(tasks, timeout, timeUnit); } catch (InterruptedException exception) { // Ignored - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/logic/util/LocalizedNumbers.java b/jablib/src/main/java/org/jabref/logic/util/LocalizedNumbers.java similarity index 100% rename from src/main/java/org/jabref/logic/util/LocalizedNumbers.java rename to jablib/src/main/java/org/jabref/logic/util/LocalizedNumbers.java diff --git a/src/main/java/org/jabref/logic/util/MetadataSerializationConfiguration.java b/jablib/src/main/java/org/jabref/logic/util/MetadataSerializationConfiguration.java similarity index 100% rename from src/main/java/org/jabref/logic/util/MetadataSerializationConfiguration.java rename to jablib/src/main/java/org/jabref/logic/util/MetadataSerializationConfiguration.java diff --git a/src/main/java/org/jabref/logic/util/NotificationService.java b/jablib/src/main/java/org/jabref/logic/util/NotificationService.java similarity index 100% rename from src/main/java/org/jabref/logic/util/NotificationService.java rename to jablib/src/main/java/org/jabref/logic/util/NotificationService.java diff --git a/src/main/java/org/jabref/logic/util/PdfUtils.java b/jablib/src/main/java/org/jabref/logic/util/PdfUtils.java similarity index 100% rename from src/main/java/org/jabref/logic/util/PdfUtils.java rename to jablib/src/main/java/org/jabref/logic/util/PdfUtils.java diff --git a/src/main/java/org/jabref/logic/util/ProgressCounter.java b/jablib/src/main/java/org/jabref/logic/util/ProgressCounter.java similarity index 100% rename from src/main/java/org/jabref/logic/util/ProgressCounter.java rename to jablib/src/main/java/org/jabref/logic/util/ProgressCounter.java diff --git a/src/main/java/org/jabref/logic/util/StandardFileType.java b/jablib/src/main/java/org/jabref/logic/util/StandardFileType.java similarity index 100% rename from src/main/java/org/jabref/logic/util/StandardFileType.java rename to jablib/src/main/java/org/jabref/logic/util/StandardFileType.java diff --git a/src/main/java/org/jabref/logic/util/TaskExecutor.java b/jablib/src/main/java/org/jabref/logic/util/TaskExecutor.java similarity index 100% rename from src/main/java/org/jabref/logic/util/TaskExecutor.java rename to jablib/src/main/java/org/jabref/logic/util/TaskExecutor.java diff --git a/src/main/java/org/jabref/logic/util/TestEntry.java b/jablib/src/main/java/org/jabref/logic/util/TestEntry.java similarity index 100% rename from src/main/java/org/jabref/logic/util/TestEntry.java rename to jablib/src/main/java/org/jabref/logic/util/TestEntry.java diff --git a/src/main/java/org/jabref/logic/util/URLUtil.java b/jablib/src/main/java/org/jabref/logic/util/URLUtil.java similarity index 100% rename from src/main/java/org/jabref/logic/util/URLUtil.java rename to jablib/src/main/java/org/jabref/logic/util/URLUtil.java diff --git a/src/main/java/org/jabref/logic/util/UnknownFileType.java b/jablib/src/main/java/org/jabref/logic/util/UnknownFileType.java similarity index 100% rename from src/main/java/org/jabref/logic/util/UnknownFileType.java rename to jablib/src/main/java/org/jabref/logic/util/UnknownFileType.java diff --git a/src/main/java/org/jabref/logic/util/UpdateField.java b/jablib/src/main/java/org/jabref/logic/util/UpdateField.java similarity index 100% rename from src/main/java/org/jabref/logic/util/UpdateField.java rename to jablib/src/main/java/org/jabref/logic/util/UpdateField.java diff --git a/src/main/java/org/jabref/logic/util/Version.java b/jablib/src/main/java/org/jabref/logic/util/Version.java similarity index 100% rename from src/main/java/org/jabref/logic/util/Version.java rename to jablib/src/main/java/org/jabref/logic/util/Version.java diff --git a/src/main/java/org/jabref/logic/util/io/AutoLinkPreferences.java b/jablib/src/main/java/org/jabref/logic/util/io/AutoLinkPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/util/io/AutoLinkPreferences.java rename to jablib/src/main/java/org/jabref/logic/util/io/AutoLinkPreferences.java diff --git a/src/main/java/org/jabref/logic/util/io/BackupFileUtil.java b/jablib/src/main/java/org/jabref/logic/util/io/BackupFileUtil.java similarity index 97% rename from src/main/java/org/jabref/logic/util/io/BackupFileUtil.java rename to jablib/src/main/java/org/jabref/logic/util/io/BackupFileUtil.java index 8df2eb600d7..893c84f1450 100644 --- a/src/main/java/org/jabref/logic/util/io/BackupFileUtil.java +++ b/jablib/src/main/java/org/jabref/logic/util/io/BackupFileUtil.java @@ -9,7 +9,6 @@ import java.util.HexFormat; import java.util.Optional; -import org.jabref.gui.autosaveandbackup.BackupManager; import org.jabref.logic.util.BackupFileType; import org.slf4j.Logger; @@ -34,7 +33,7 @@ private BackupFileUtil() { * In case that fails, the return path of the .bak file is set to be next to the .bib file *

*

- * Note that this backup is different from the .sav file generated by {@link BackupManager} + * Note that this backup is different from the .sav file generated by {@link org.jabref.gui.autosaveandbackup.BackupManager} * (and configured in the preferences as "make backups") *

*/ diff --git a/src/main/java/org/jabref/logic/util/io/CitationKeyBasedFileFinder.java b/jablib/src/main/java/org/jabref/logic/util/io/CitationKeyBasedFileFinder.java similarity index 98% rename from src/main/java/org/jabref/logic/util/io/CitationKeyBasedFileFinder.java rename to jablib/src/main/java/org/jabref/logic/util/io/CitationKeyBasedFileFinder.java index de00161e738..d6b9d38c8e7 100644 --- a/src/main/java/org/jabref/logic/util/io/CitationKeyBasedFileFinder.java +++ b/jablib/src/main/java/org/jabref/logic/util/io/CitationKeyBasedFileFinder.java @@ -7,7 +7,6 @@ import java.nio.file.Path; import java.nio.file.attribute.BasicFileAttributes; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -43,7 +42,7 @@ public List findAssociatedFiles(BibEntry entry, List directories, Li Optional citeKeyOptional = entry.getCitationKey(); if (StringUtil.isBlank(citeKeyOptional)) { LOGGER.debug("No citation key found in entry {}", entry); - return Collections.emptyList(); + return List.of(); } String citeKey = citeKeyOptional.get(); diff --git a/src/main/java/org/jabref/logic/util/io/DatabaseFileLookup.java b/jablib/src/main/java/org/jabref/logic/util/io/DatabaseFileLookup.java similarity index 100% rename from src/main/java/org/jabref/logic/util/io/DatabaseFileLookup.java rename to jablib/src/main/java/org/jabref/logic/util/io/DatabaseFileLookup.java diff --git a/src/main/java/org/jabref/logic/util/io/FileFinder.java b/jablib/src/main/java/org/jabref/logic/util/io/FileFinder.java similarity index 100% rename from src/main/java/org/jabref/logic/util/io/FileFinder.java rename to jablib/src/main/java/org/jabref/logic/util/io/FileFinder.java diff --git a/src/main/java/org/jabref/logic/util/io/FileFinders.java b/jablib/src/main/java/org/jabref/logic/util/io/FileFinders.java similarity index 100% rename from src/main/java/org/jabref/logic/util/io/FileFinders.java rename to jablib/src/main/java/org/jabref/logic/util/io/FileFinders.java diff --git a/src/main/java/org/jabref/logic/util/io/FileHistory.java b/jablib/src/main/java/org/jabref/logic/util/io/FileHistory.java similarity index 100% rename from src/main/java/org/jabref/logic/util/io/FileHistory.java rename to jablib/src/main/java/org/jabref/logic/util/io/FileHistory.java diff --git a/src/main/java/org/jabref/logic/util/io/FileNameCleaner.java b/jablib/src/main/java/org/jabref/logic/util/io/FileNameCleaner.java similarity index 100% rename from src/main/java/org/jabref/logic/util/io/FileNameCleaner.java rename to jablib/src/main/java/org/jabref/logic/util/io/FileNameCleaner.java diff --git a/src/main/java/org/jabref/logic/util/io/FileNameUniqueness.java b/jablib/src/main/java/org/jabref/logic/util/io/FileNameUniqueness.java similarity index 100% rename from src/main/java/org/jabref/logic/util/io/FileNameUniqueness.java rename to jablib/src/main/java/org/jabref/logic/util/io/FileNameUniqueness.java diff --git a/src/main/java/org/jabref/logic/util/io/FileUtil.java b/jablib/src/main/java/org/jabref/logic/util/io/FileUtil.java similarity index 100% rename from src/main/java/org/jabref/logic/util/io/FileUtil.java rename to jablib/src/main/java/org/jabref/logic/util/io/FileUtil.java diff --git a/src/main/java/org/jabref/logic/util/io/RegExpBasedFileFinder.java b/jablib/src/main/java/org/jabref/logic/util/io/RegExpBasedFileFinder.java similarity index 100% rename from src/main/java/org/jabref/logic/util/io/RegExpBasedFileFinder.java rename to jablib/src/main/java/org/jabref/logic/util/io/RegExpBasedFileFinder.java diff --git a/src/main/java/org/jabref/logic/util/io/XMLUtil.java b/jablib/src/main/java/org/jabref/logic/util/io/XMLUtil.java similarity index 96% rename from src/main/java/org/jabref/logic/util/io/XMLUtil.java rename to jablib/src/main/java/org/jabref/logic/util/io/XMLUtil.java index 49b8d066ccd..7fb0e6e4f68 100644 --- a/src/main/java/org/jabref/logic/util/io/XMLUtil.java +++ b/jablib/src/main/java/org/jabref/logic/util/io/XMLUtil.java @@ -2,7 +2,6 @@ import java.io.StringWriter; import java.util.AbstractList; -import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.RandomAccess; @@ -53,7 +52,7 @@ public static void printDocument(Document doc) { } public static List asList(NodeList n) { - return n.getLength() == 0 ? Collections.emptyList() : new NodeListWrapper(n); + return n.getLength() == 0 ? List.of() : new NodeListWrapper(n); } /** @@ -96,7 +95,7 @@ public static Optional getAttributeContent(Node item, String attributeNa */ public static List getNodesByName(Node item, String nodeName) { if (item.getNodeType() != Node.ELEMENT_NODE) { - return Collections.emptyList(); + return List.of(); } NodeList nodes = ((Element) item).getElementsByTagName(nodeName); return asList(nodes); diff --git a/src/main/java/org/jabref/logic/util/strings/HTMLUnicodeConversionMaps.java b/jablib/src/main/java/org/jabref/logic/util/strings/HTMLUnicodeConversionMaps.java similarity index 100% rename from src/main/java/org/jabref/logic/util/strings/HTMLUnicodeConversionMaps.java rename to jablib/src/main/java/org/jabref/logic/util/strings/HTMLUnicodeConversionMaps.java diff --git a/src/main/java/org/jabref/logic/util/strings/QuotedStringTokenizer.java b/jablib/src/main/java/org/jabref/logic/util/strings/QuotedStringTokenizer.java similarity index 100% rename from src/main/java/org/jabref/logic/util/strings/QuotedStringTokenizer.java rename to jablib/src/main/java/org/jabref/logic/util/strings/QuotedStringTokenizer.java diff --git a/src/main/java/org/jabref/logic/util/strings/RtfCharMap.java b/jablib/src/main/java/org/jabref/logic/util/strings/RtfCharMap.java similarity index 100% rename from src/main/java/org/jabref/logic/util/strings/RtfCharMap.java rename to jablib/src/main/java/org/jabref/logic/util/strings/RtfCharMap.java diff --git a/src/main/java/org/jabref/logic/util/strings/StringLengthComparator.java b/jablib/src/main/java/org/jabref/logic/util/strings/StringLengthComparator.java similarity index 100% rename from src/main/java/org/jabref/logic/util/strings/StringLengthComparator.java rename to jablib/src/main/java/org/jabref/logic/util/strings/StringLengthComparator.java diff --git a/src/main/java/org/jabref/logic/util/strings/StringManipulator.java b/jablib/src/main/java/org/jabref/logic/util/strings/StringManipulator.java similarity index 92% rename from src/main/java/org/jabref/logic/util/strings/StringManipulator.java rename to jablib/src/main/java/org/jabref/logic/util/strings/StringManipulator.java index bdde7c1fd49..fdcb9d83cea 100644 --- a/src/main/java/org/jabref/logic/util/strings/StringManipulator.java +++ b/jablib/src/main/java/org/jabref/logic/util/strings/StringManipulator.java @@ -42,9 +42,9 @@ private static ResultingStringState setWordCase(String text, int caretPosition, } String result = switch (targetCase) { - case UPPER -> (new UpperCaseFormatter()).format(text.substring(wordStartPosition, nextWordBoundary)); - case LOWER -> (new LowerCaseFormatter()).format(text.substring(wordStartPosition, nextWordBoundary)); - case CAPITALIZED -> (new CapitalizeFormatter()).format(text.substring(wordStartPosition, nextWordBoundary)); + case UPPER -> new UpperCaseFormatter().format(text.substring(wordStartPosition, nextWordBoundary)); + case LOWER -> new LowerCaseFormatter().format(text.substring(wordStartPosition, nextWordBoundary)); + case CAPITALIZED -> new CapitalizeFormatter().format(text.substring(wordStartPosition, nextWordBoundary)); }; return new ResultingStringState( @@ -90,7 +90,7 @@ static int getNextWordBoundary(int caretPosition, String text, Direction directi if (direction == Direction.PREVIOUS) { // Swallow whitespaces - while (i > 0 && Character.isWhitespace((text.charAt(i + direction.OFFSET)))) { + while (i > 0 && Character.isWhitespace(text.charAt(i + direction.OFFSET))) { i += direction.OFFSET; } @@ -105,7 +105,7 @@ static int getNextWordBoundary(int caretPosition, String text, Direction directi } // Read next word - while (i < text.length() && !Character.isWhitespace((text.charAt(i)))) { + while (i < text.length() && !Character.isWhitespace(text.charAt(i))) { i += direction.OFFSET; } } diff --git a/src/main/java/org/jabref/logic/util/strings/StringSimilarity.java b/jablib/src/main/java/org/jabref/logic/util/strings/StringSimilarity.java similarity index 100% rename from src/main/java/org/jabref/logic/util/strings/StringSimilarity.java rename to jablib/src/main/java/org/jabref/logic/util/strings/StringSimilarity.java diff --git a/src/main/java/org/jabref/logic/util/strings/UnicodeLigaturesMap.java b/jablib/src/main/java/org/jabref/logic/util/strings/UnicodeLigaturesMap.java similarity index 100% rename from src/main/java/org/jabref/logic/util/strings/UnicodeLigaturesMap.java rename to jablib/src/main/java/org/jabref/logic/util/strings/UnicodeLigaturesMap.java diff --git a/src/main/java/org/jabref/logic/util/strings/XmlCharsMap.java b/jablib/src/main/java/org/jabref/logic/util/strings/XmlCharsMap.java similarity index 100% rename from src/main/java/org/jabref/logic/util/strings/XmlCharsMap.java rename to jablib/src/main/java/org/jabref/logic/util/strings/XmlCharsMap.java diff --git a/src/main/java/org/jabref/logic/xmp/DocumentInformationExtractor.java b/jablib/src/main/java/org/jabref/logic/xmp/DocumentInformationExtractor.java similarity index 100% rename from src/main/java/org/jabref/logic/xmp/DocumentInformationExtractor.java rename to jablib/src/main/java/org/jabref/logic/xmp/DocumentInformationExtractor.java diff --git a/src/main/java/org/jabref/logic/xmp/DublinCoreExtractor.java b/jablib/src/main/java/org/jabref/logic/xmp/DublinCoreExtractor.java similarity index 100% rename from src/main/java/org/jabref/logic/xmp/DublinCoreExtractor.java rename to jablib/src/main/java/org/jabref/logic/xmp/DublinCoreExtractor.java diff --git a/src/main/java/org/jabref/logic/xmp/EncryptedPdfsNotSupportedException.java b/jablib/src/main/java/org/jabref/logic/xmp/EncryptedPdfsNotSupportedException.java similarity index 100% rename from src/main/java/org/jabref/logic/xmp/EncryptedPdfsNotSupportedException.java rename to jablib/src/main/java/org/jabref/logic/xmp/EncryptedPdfsNotSupportedException.java diff --git a/src/main/java/org/jabref/logic/xmp/XmpPreferences.java b/jablib/src/main/java/org/jabref/logic/xmp/XmpPreferences.java similarity index 100% rename from src/main/java/org/jabref/logic/xmp/XmpPreferences.java rename to jablib/src/main/java/org/jabref/logic/xmp/XmpPreferences.java diff --git a/src/main/java/org/jabref/logic/xmp/XmpUtilReader.java b/jablib/src/main/java/org/jabref/logic/xmp/XmpUtilReader.java similarity index 100% rename from src/main/java/org/jabref/logic/xmp/XmpUtilReader.java rename to jablib/src/main/java/org/jabref/logic/xmp/XmpUtilReader.java diff --git a/src/main/java/org/jabref/logic/xmp/XmpUtilShared.java b/jablib/src/main/java/org/jabref/logic/xmp/XmpUtilShared.java similarity index 100% rename from src/main/java/org/jabref/logic/xmp/XmpUtilShared.java rename to jablib/src/main/java/org/jabref/logic/xmp/XmpUtilShared.java diff --git a/src/main/java/org/jabref/logic/xmp/XmpUtilWriter.java b/jablib/src/main/java/org/jabref/logic/xmp/XmpUtilWriter.java similarity index 100% rename from src/main/java/org/jabref/logic/xmp/XmpUtilWriter.java rename to jablib/src/main/java/org/jabref/logic/xmp/XmpUtilWriter.java diff --git a/src/main/java/org/jabref/model/ChainNode.java b/jablib/src/main/java/org/jabref/model/ChainNode.java similarity index 100% rename from src/main/java/org/jabref/model/ChainNode.java rename to jablib/src/main/java/org/jabref/model/ChainNode.java diff --git a/src/main/java/org/jabref/model/FieldChange.java b/jablib/src/main/java/org/jabref/model/FieldChange.java similarity index 100% rename from src/main/java/org/jabref/model/FieldChange.java rename to jablib/src/main/java/org/jabref/model/FieldChange.java diff --git a/src/main/java/org/jabref/model/TreeNode.java b/jablib/src/main/java/org/jabref/model/TreeNode.java similarity index 100% rename from src/main/java/org/jabref/model/TreeNode.java rename to jablib/src/main/java/org/jabref/model/TreeNode.java diff --git a/src/test/java/org/jabref/model/TreeNodeTestData.java b/jablib/src/main/java/org/jabref/model/TreeNodeTestData.java similarity index 100% rename from src/test/java/org/jabref/model/TreeNodeTestData.java rename to jablib/src/main/java/org/jabref/model/TreeNodeTestData.java diff --git a/src/main/java/org/jabref/model/ai/AiProvider.java b/jablib/src/main/java/org/jabref/model/ai/AiProvider.java similarity index 100% rename from src/main/java/org/jabref/model/ai/AiProvider.java rename to jablib/src/main/java/org/jabref/model/ai/AiProvider.java diff --git a/src/main/java/org/jabref/model/ai/EmbeddingModel.java b/jablib/src/main/java/org/jabref/model/ai/EmbeddingModel.java similarity index 100% rename from src/main/java/org/jabref/model/ai/EmbeddingModel.java rename to jablib/src/main/java/org/jabref/model/ai/EmbeddingModel.java diff --git a/src/main/java/org/jabref/model/biblog/BibWarning.java b/jablib/src/main/java/org/jabref/model/biblog/BibWarning.java similarity index 100% rename from src/main/java/org/jabref/model/biblog/BibWarning.java rename to jablib/src/main/java/org/jabref/model/biblog/BibWarning.java diff --git a/src/main/java/org/jabref/model/biblog/SeverityType.java b/jablib/src/main/java/org/jabref/model/biblog/SeverityType.java similarity index 100% rename from src/main/java/org/jabref/model/biblog/SeverityType.java rename to jablib/src/main/java/org/jabref/model/biblog/SeverityType.java diff --git a/src/main/java/org/jabref/model/database/BibDatabase.java b/jablib/src/main/java/org/jabref/model/database/BibDatabase.java similarity index 98% rename from src/main/java/org/jabref/model/database/BibDatabase.java rename to jablib/src/main/java/org/jabref/model/database/BibDatabase.java index 5d36c92a67e..8f5f9f724c6 100644 --- a/src/main/java/org/jabref/model/database/BibDatabase.java +++ b/jablib/src/main/java/org/jabref/model/database/BibDatabase.java @@ -177,7 +177,7 @@ public synchronized void insertEntry(BibEntry entry) { * @param eventSource source the event is sent from */ public synchronized void insertEntry(BibEntry entry, EntriesEventSource eventSource) { - insertEntries(Collections.singletonList(entry), eventSource); + insertEntries(List.of(entry), eventSource); } public synchronized void insertEntries(BibEntry... entries) { @@ -207,11 +207,11 @@ public synchronized void insertEntries(List newEntries, EntriesEventSo } public synchronized void removeEntry(BibEntry bibEntry) { - removeEntries(Collections.singletonList(bibEntry)); + removeEntries(List.of(bibEntry)); } public synchronized void removeEntry(BibEntry bibEntry, EntriesEventSource eventSource) { - removeEntries(Collections.singletonList(bibEntry), eventSource); + removeEntries(List.of(bibEntry), eventSource); } /** @@ -274,7 +274,7 @@ private void forEachCitationKey(BibEntry entry, Consumer keyConsumer) { public Set getEntriesForCitationKey(@Nullable String citationKey) { // explicit null check because citationIndex is a ConcurrentHashMap and will throw NPE on null - return citationKey != null ? citationIndex.getOrDefault(citationKey, Collections.emptySet()) : Collections.emptySet(); + return citationKey != null ? citationIndex.getOrDefault(citationKey, Set.of()) : Set.of(); } private Set getReferencedCitationKeys(BibEntry entry) { diff --git a/src/main/java/org/jabref/model/database/BibDatabaseContext.java b/jablib/src/main/java/org/jabref/model/database/BibDatabaseContext.java similarity index 100% rename from src/main/java/org/jabref/model/database/BibDatabaseContext.java rename to jablib/src/main/java/org/jabref/model/database/BibDatabaseContext.java diff --git a/src/main/java/org/jabref/model/database/BibDatabaseMode.java b/jablib/src/main/java/org/jabref/model/database/BibDatabaseMode.java similarity index 100% rename from src/main/java/org/jabref/model/database/BibDatabaseMode.java rename to jablib/src/main/java/org/jabref/model/database/BibDatabaseMode.java diff --git a/src/main/java/org/jabref/model/database/BibDatabaseModeDetection.java b/jablib/src/main/java/org/jabref/model/database/BibDatabaseModeDetection.java similarity index 100% rename from src/main/java/org/jabref/model/database/BibDatabaseModeDetection.java rename to jablib/src/main/java/org/jabref/model/database/BibDatabaseModeDetection.java diff --git a/src/main/java/org/jabref/model/database/BibDatabases.java b/jablib/src/main/java/org/jabref/model/database/BibDatabases.java similarity index 100% rename from src/main/java/org/jabref/model/database/BibDatabases.java rename to jablib/src/main/java/org/jabref/model/database/BibDatabases.java diff --git a/src/main/java/org/jabref/model/database/KeyChangeListener.java b/jablib/src/main/java/org/jabref/model/database/KeyChangeListener.java similarity index 100% rename from src/main/java/org/jabref/model/database/KeyChangeListener.java rename to jablib/src/main/java/org/jabref/model/database/KeyChangeListener.java diff --git a/src/main/java/org/jabref/model/database/KeyCollisionException.java b/jablib/src/main/java/org/jabref/model/database/KeyCollisionException.java similarity index 100% rename from src/main/java/org/jabref/model/database/KeyCollisionException.java rename to jablib/src/main/java/org/jabref/model/database/KeyCollisionException.java diff --git a/jablib/src/main/java/org/jabref/model/database/event/AutosaveEvent.java b/jablib/src/main/java/org/jabref/model/database/event/AutosaveEvent.java new file mode 100644 index 00000000000..43cb8a54b84 --- /dev/null +++ b/jablib/src/main/java/org/jabref/model/database/event/AutosaveEvent.java @@ -0,0 +1,8 @@ +package org.jabref.model.database.event; + +/** + * This Event is fired from {@link org.jabref.gui.autosaveandbackup.AutosaveManager} in case that a save task is pending. + */ +public class AutosaveEvent { + // no data +} diff --git a/src/main/java/org/jabref/model/database/event/BibDatabaseContextChangedEvent.java b/jablib/src/main/java/org/jabref/model/database/event/BibDatabaseContextChangedEvent.java similarity index 100% rename from src/main/java/org/jabref/model/database/event/BibDatabaseContextChangedEvent.java rename to jablib/src/main/java/org/jabref/model/database/event/BibDatabaseContextChangedEvent.java diff --git a/src/main/java/org/jabref/model/database/event/ChangePropagation.java b/jablib/src/main/java/org/jabref/model/database/event/ChangePropagation.java similarity index 100% rename from src/main/java/org/jabref/model/database/event/ChangePropagation.java rename to jablib/src/main/java/org/jabref/model/database/event/ChangePropagation.java diff --git a/src/main/java/org/jabref/model/database/event/EntriesAddedEvent.java b/jablib/src/main/java/org/jabref/model/database/event/EntriesAddedEvent.java similarity index 100% rename from src/main/java/org/jabref/model/database/event/EntriesAddedEvent.java rename to jablib/src/main/java/org/jabref/model/database/event/EntriesAddedEvent.java diff --git a/src/main/java/org/jabref/model/database/event/EntriesRemovedEvent.java b/jablib/src/main/java/org/jabref/model/database/event/EntriesRemovedEvent.java similarity index 100% rename from src/main/java/org/jabref/model/database/event/EntriesRemovedEvent.java rename to jablib/src/main/java/org/jabref/model/database/event/EntriesRemovedEvent.java diff --git a/src/main/java/org/jabref/model/entry/Author.java b/jablib/src/main/java/org/jabref/model/entry/Author.java similarity index 100% rename from src/main/java/org/jabref/model/entry/Author.java rename to jablib/src/main/java/org/jabref/model/entry/Author.java diff --git a/src/main/java/org/jabref/model/entry/AuthorList.java b/jablib/src/main/java/org/jabref/model/entry/AuthorList.java similarity index 100% rename from src/main/java/org/jabref/model/entry/AuthorList.java rename to jablib/src/main/java/org/jabref/model/entry/AuthorList.java diff --git a/src/main/java/org/jabref/model/entry/BibEntry.java b/jablib/src/main/java/org/jabref/model/entry/BibEntry.java similarity index 99% rename from src/main/java/org/jabref/model/entry/BibEntry.java rename to jablib/src/main/java/org/jabref/model/entry/BibEntry.java index 9039d622aea..0323399679d 100644 --- a/src/main/java/org/jabref/model/entry/BibEntry.java +++ b/jablib/src/main/java/org/jabref/model/entry/BibEntry.java @@ -3,7 +3,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; @@ -1014,7 +1013,7 @@ public BibEntry withUserComments(String commentsBeforeEntry) { public List getEntryLinkList(Field field, BibDatabase database) { return getField(field).map(fieldValue -> EntryLinkList.parse(fieldValue, database)) - .orElse(Collections.emptyList()); + .orElse(List.of()); } public Optional setEntryLinkList(Field field, List list) { @@ -1028,7 +1027,7 @@ public Set getFieldAsWords(Field field) { } else { String fieldValue = fields.get(field); if (fieldValue == null) { - return Collections.emptySet(); + return Set.of(); } else { HashSet words = new HashSet<>(StringUtil.getStringAsWords(fieldValue)); fieldsAsWords.put(field, words); diff --git a/src/main/java/org/jabref/model/entry/BibEntryPreferences.java b/jablib/src/main/java/org/jabref/model/entry/BibEntryPreferences.java similarity index 100% rename from src/main/java/org/jabref/model/entry/BibEntryPreferences.java rename to jablib/src/main/java/org/jabref/model/entry/BibEntryPreferences.java diff --git a/src/main/java/org/jabref/model/entry/BibEntryType.java b/jablib/src/main/java/org/jabref/model/entry/BibEntryType.java similarity index 98% rename from src/main/java/org/jabref/model/entry/BibEntryType.java rename to jablib/src/main/java/org/jabref/model/entry/BibEntryType.java index 6751c68153a..d034ace190e 100644 --- a/src/main/java/org/jabref/model/entry/BibEntryType.java +++ b/jablib/src/main/java/org/jabref/model/entry/BibEntryType.java @@ -9,7 +9,6 @@ import java.util.Set; import java.util.stream.Collectors; -import org.jabref.gui.importer.BibEntryTypePrefsAndFileViewModel; import org.jabref.logic.exporter.MetaDataSerializer; import org.jabref.model.database.BibDatabaseMode; import org.jabref.model.entry.field.BibField; @@ -152,7 +151,7 @@ public int hashCode() { * * See "Effective Java, Item 10" for a discussion on contracts. * - * We are sure, we are using this method in a) logs (which should use single lines for output) and b) in the UI. For the UI, we use {@link BibEntryTypePrefsAndFileViewModel}, + * We are sure, we are using this method in a) logs (which should use single lines for output) and b) in the UI. For the UI, we use {@link org.jabref.gui.importer.BibEntryTypePrefsAndFileViewModel}, * which in turn uses {@link MetaDataSerializer#serializeCustomEntryTypes(BibEntryType)} */ @Override diff --git a/src/main/java/org/jabref/model/entry/BibEntryTypeBuilder.java b/jablib/src/main/java/org/jabref/model/entry/BibEntryTypeBuilder.java similarity index 100% rename from src/main/java/org/jabref/model/entry/BibEntryTypeBuilder.java rename to jablib/src/main/java/org/jabref/model/entry/BibEntryTypeBuilder.java diff --git a/src/main/java/org/jabref/model/entry/BibEntryTypesManager.java b/jablib/src/main/java/org/jabref/model/entry/BibEntryTypesManager.java similarity index 100% rename from src/main/java/org/jabref/model/entry/BibEntryTypesManager.java rename to jablib/src/main/java/org/jabref/model/entry/BibEntryTypesManager.java diff --git a/src/main/java/org/jabref/model/entry/BibtexString.java b/jablib/src/main/java/org/jabref/model/entry/BibtexString.java similarity index 98% rename from src/main/java/org/jabref/model/entry/BibtexString.java rename to jablib/src/main/java/org/jabref/model/entry/BibtexString.java index e467e212db6..ed7ecb52fa4 100644 --- a/src/main/java/org/jabref/model/entry/BibtexString.java +++ b/jablib/src/main/java/org/jabref/model/entry/BibtexString.java @@ -60,7 +60,7 @@ public static Type get(String key) { // Second character is not upper case // aStallman -> AUTHOR // asdf -> OTHER - if (!(String.valueOf(key.charAt(1))).toUpperCase(Locale.ROOT).equals(String.valueOf(key.charAt(1)))) { + if (!String.valueOf(key.charAt(1)).toUpperCase(Locale.ROOT).equals(String.valueOf(key.charAt(1)))) { return OTHER; } for (Type t : Type.values()) { diff --git a/src/main/java/org/jabref/model/entry/CanonicalBibEntry.java b/jablib/src/main/java/org/jabref/model/entry/CanonicalBibEntry.java similarity index 100% rename from src/main/java/org/jabref/model/entry/CanonicalBibEntry.java rename to jablib/src/main/java/org/jabref/model/entry/CanonicalBibEntry.java diff --git a/src/main/java/org/jabref/model/entry/Date.java b/jablib/src/main/java/org/jabref/model/entry/Date.java similarity index 100% rename from src/main/java/org/jabref/model/entry/Date.java rename to jablib/src/main/java/org/jabref/model/entry/Date.java diff --git a/src/main/java/org/jabref/model/entry/EntryConverter.java b/jablib/src/main/java/org/jabref/model/entry/EntryConverter.java similarity index 100% rename from src/main/java/org/jabref/model/entry/EntryConverter.java rename to jablib/src/main/java/org/jabref/model/entry/EntryConverter.java diff --git a/src/main/java/org/jabref/model/entry/EntryLinkList.java b/jablib/src/main/java/org/jabref/model/entry/EntryLinkList.java similarity index 100% rename from src/main/java/org/jabref/model/entry/EntryLinkList.java rename to jablib/src/main/java/org/jabref/model/entry/EntryLinkList.java diff --git a/src/main/java/org/jabref/model/entry/IdGenerator.java b/jablib/src/main/java/org/jabref/model/entry/IdGenerator.java similarity index 100% rename from src/main/java/org/jabref/model/entry/IdGenerator.java rename to jablib/src/main/java/org/jabref/model/entry/IdGenerator.java diff --git a/src/main/java/org/jabref/model/entry/Keyword.java b/jablib/src/main/java/org/jabref/model/entry/Keyword.java similarity index 100% rename from src/main/java/org/jabref/model/entry/Keyword.java rename to jablib/src/main/java/org/jabref/model/entry/Keyword.java diff --git a/src/main/java/org/jabref/model/entry/KeywordList.java b/jablib/src/main/java/org/jabref/model/entry/KeywordList.java similarity index 100% rename from src/main/java/org/jabref/model/entry/KeywordList.java rename to jablib/src/main/java/org/jabref/model/entry/KeywordList.java diff --git a/src/main/java/org/jabref/model/entry/Langid.java b/jablib/src/main/java/org/jabref/model/entry/Langid.java similarity index 100% rename from src/main/java/org/jabref/model/entry/Langid.java rename to jablib/src/main/java/org/jabref/model/entry/Langid.java diff --git a/src/main/java/org/jabref/model/entry/LinkedFile.java b/jablib/src/main/java/org/jabref/model/entry/LinkedFile.java similarity index 100% rename from src/main/java/org/jabref/model/entry/LinkedFile.java rename to jablib/src/main/java/org/jabref/model/entry/LinkedFile.java diff --git a/src/main/java/org/jabref/model/entry/Month.java b/jablib/src/main/java/org/jabref/model/entry/Month.java similarity index 100% rename from src/main/java/org/jabref/model/entry/Month.java rename to jablib/src/main/java/org/jabref/model/entry/Month.java diff --git a/src/main/java/org/jabref/model/entry/ParsedEntryLink.java b/jablib/src/main/java/org/jabref/model/entry/ParsedEntryLink.java similarity index 100% rename from src/main/java/org/jabref/model/entry/ParsedEntryLink.java rename to jablib/src/main/java/org/jabref/model/entry/ParsedEntryLink.java diff --git a/src/main/java/org/jabref/model/entry/Season.java b/jablib/src/main/java/org/jabref/model/entry/Season.java similarity index 100% rename from src/main/java/org/jabref/model/entry/Season.java rename to jablib/src/main/java/org/jabref/model/entry/Season.java diff --git a/src/main/java/org/jabref/model/entry/SharedBibEntryData.java b/jablib/src/main/java/org/jabref/model/entry/SharedBibEntryData.java similarity index 100% rename from src/main/java/org/jabref/model/entry/SharedBibEntryData.java rename to jablib/src/main/java/org/jabref/model/entry/SharedBibEntryData.java diff --git a/src/main/java/org/jabref/model/entry/event/EntriesEvent.java b/jablib/src/main/java/org/jabref/model/entry/event/EntriesEvent.java similarity index 100% rename from src/main/java/org/jabref/model/entry/event/EntriesEvent.java rename to jablib/src/main/java/org/jabref/model/entry/event/EntriesEvent.java diff --git a/src/main/java/org/jabref/model/entry/event/EntriesEventSource.java b/jablib/src/main/java/org/jabref/model/entry/event/EntriesEventSource.java similarity index 100% rename from src/main/java/org/jabref/model/entry/event/EntriesEventSource.java rename to jablib/src/main/java/org/jabref/model/entry/event/EntriesEventSource.java diff --git a/src/main/java/org/jabref/model/entry/event/EntryChangedEvent.java b/jablib/src/main/java/org/jabref/model/entry/event/EntryChangedEvent.java similarity index 85% rename from src/main/java/org/jabref/model/entry/event/EntryChangedEvent.java rename to jablib/src/main/java/org/jabref/model/entry/event/EntryChangedEvent.java index a16819b9ab2..70712d11675 100644 --- a/src/main/java/org/jabref/model/entry/event/EntryChangedEvent.java +++ b/jablib/src/main/java/org/jabref/model/entry/event/EntryChangedEvent.java @@ -1,6 +1,6 @@ package org.jabref.model.entry.event; -import java.util.Collections; +import java.util.List; import org.jabref.model.entry.BibEntry; @@ -14,7 +14,7 @@ public class EntryChangedEvent extends EntriesEvent { * @param bibEntry BibEntry object the changes were applied on. */ public EntryChangedEvent(BibEntry bibEntry) { - super(Collections.singletonList(bibEntry)); + super(List.of(bibEntry)); } /** @@ -22,7 +22,7 @@ public EntryChangedEvent(BibEntry bibEntry) { * @param location Location affected by this event */ public EntryChangedEvent(BibEntry bibEntry, EntriesEventSource location) { - super(Collections.singletonList(bibEntry), location); + super(List.of(bibEntry), location); } public BibEntry getBibEntry() { diff --git a/src/main/java/org/jabref/model/entry/event/FieldAddedOrRemovedEvent.java b/jablib/src/main/java/org/jabref/model/entry/event/FieldAddedOrRemovedEvent.java similarity index 100% rename from src/main/java/org/jabref/model/entry/event/FieldAddedOrRemovedEvent.java rename to jablib/src/main/java/org/jabref/model/entry/event/FieldAddedOrRemovedEvent.java diff --git a/src/main/java/org/jabref/model/entry/event/FieldChangedEvent.java b/jablib/src/main/java/org/jabref/model/entry/event/FieldChangedEvent.java similarity index 100% rename from src/main/java/org/jabref/model/entry/event/FieldChangedEvent.java rename to jablib/src/main/java/org/jabref/model/entry/event/FieldChangedEvent.java diff --git a/src/main/java/org/jabref/model/entry/field/AMSField.java b/jablib/src/main/java/org/jabref/model/entry/field/AMSField.java similarity index 100% rename from src/main/java/org/jabref/model/entry/field/AMSField.java rename to jablib/src/main/java/org/jabref/model/entry/field/AMSField.java diff --git a/src/main/java/org/jabref/model/entry/field/BibField.java b/jablib/src/main/java/org/jabref/model/entry/field/BibField.java similarity index 100% rename from src/main/java/org/jabref/model/entry/field/BibField.java rename to jablib/src/main/java/org/jabref/model/entry/field/BibField.java diff --git a/src/main/java/org/jabref/model/entry/field/BiblatexApaField.java b/jablib/src/main/java/org/jabref/model/entry/field/BiblatexApaField.java similarity index 100% rename from src/main/java/org/jabref/model/entry/field/BiblatexApaField.java rename to jablib/src/main/java/org/jabref/model/entry/field/BiblatexApaField.java diff --git a/src/main/java/org/jabref/model/entry/field/BiblatexSoftwareField.java b/jablib/src/main/java/org/jabref/model/entry/field/BiblatexSoftwareField.java similarity index 100% rename from src/main/java/org/jabref/model/entry/field/BiblatexSoftwareField.java rename to jablib/src/main/java/org/jabref/model/entry/field/BiblatexSoftwareField.java diff --git a/src/main/java/org/jabref/model/entry/field/Field.java b/jablib/src/main/java/org/jabref/model/entry/field/Field.java similarity index 100% rename from src/main/java/org/jabref/model/entry/field/Field.java rename to jablib/src/main/java/org/jabref/model/entry/field/Field.java diff --git a/src/main/java/org/jabref/model/entry/field/FieldFactory.java b/jablib/src/main/java/org/jabref/model/entry/field/FieldFactory.java similarity index 100% rename from src/main/java/org/jabref/model/entry/field/FieldFactory.java rename to jablib/src/main/java/org/jabref/model/entry/field/FieldFactory.java diff --git a/src/main/java/org/jabref/model/entry/field/FieldPriority.java b/jablib/src/main/java/org/jabref/model/entry/field/FieldPriority.java similarity index 100% rename from src/main/java/org/jabref/model/entry/field/FieldPriority.java rename to jablib/src/main/java/org/jabref/model/entry/field/FieldPriority.java diff --git a/src/main/java/org/jabref/model/entry/field/FieldProperty.java b/jablib/src/main/java/org/jabref/model/entry/field/FieldProperty.java similarity index 100% rename from src/main/java/org/jabref/model/entry/field/FieldProperty.java rename to jablib/src/main/java/org/jabref/model/entry/field/FieldProperty.java diff --git a/src/main/java/org/jabref/model/entry/field/IEEEField.java b/jablib/src/main/java/org/jabref/model/entry/field/IEEEField.java similarity index 100% rename from src/main/java/org/jabref/model/entry/field/IEEEField.java rename to jablib/src/main/java/org/jabref/model/entry/field/IEEEField.java diff --git a/src/main/java/org/jabref/model/entry/field/InternalField.java b/jablib/src/main/java/org/jabref/model/entry/field/InternalField.java similarity index 100% rename from src/main/java/org/jabref/model/entry/field/InternalField.java rename to jablib/src/main/java/org/jabref/model/entry/field/InternalField.java diff --git a/src/main/java/org/jabref/model/entry/field/OrFields.java b/jablib/src/main/java/org/jabref/model/entry/field/OrFields.java similarity index 100% rename from src/main/java/org/jabref/model/entry/field/OrFields.java rename to jablib/src/main/java/org/jabref/model/entry/field/OrFields.java diff --git a/src/main/java/org/jabref/model/entry/field/SpecialField.java b/jablib/src/main/java/org/jabref/model/entry/field/SpecialField.java similarity index 100% rename from src/main/java/org/jabref/model/entry/field/SpecialField.java rename to jablib/src/main/java/org/jabref/model/entry/field/SpecialField.java diff --git a/src/main/java/org/jabref/model/entry/field/SpecialFieldValue.java b/jablib/src/main/java/org/jabref/model/entry/field/SpecialFieldValue.java similarity index 100% rename from src/main/java/org/jabref/model/entry/field/SpecialFieldValue.java rename to jablib/src/main/java/org/jabref/model/entry/field/SpecialFieldValue.java diff --git a/src/main/java/org/jabref/model/entry/field/StandardField.java b/jablib/src/main/java/org/jabref/model/entry/field/StandardField.java similarity index 97% rename from src/main/java/org/jabref/model/entry/field/StandardField.java rename to jablib/src/main/java/org/jabref/model/entry/field/StandardField.java index 5a4c1cd8309..ed13cf4d99f 100644 --- a/src/main/java/org/jabref/model/entry/field/StandardField.java +++ b/jablib/src/main/java/org/jabref/model/entry/field/StandardField.java @@ -7,12 +7,10 @@ import java.util.Optional; import java.util.Set; -import org.jabref.gui.fieldeditors.FieldNameLabel; - /** * Standard BibTeX and BibLaTeX fields, as well as "normal" JabRef specific fields. *

- * See {@link FieldNameLabel#getDescription(org.jabref.model.entry.field.Field)} for a description of each field. + * See {@link org.jabref.gui.fieldeditors.FieldNameLabel#getDescription(org.jabref.model.entry.field.Field)} for a description of each field. */ public enum StandardField implements Field { ABSTRACT("abstract", FieldProperty.MULTILINE_TEXT), diff --git a/src/main/java/org/jabref/model/entry/field/UnknownField.java b/jablib/src/main/java/org/jabref/model/entry/field/UnknownField.java similarity index 100% rename from src/main/java/org/jabref/model/entry/field/UnknownField.java rename to jablib/src/main/java/org/jabref/model/entry/field/UnknownField.java diff --git a/src/main/java/org/jabref/model/entry/field/UserSpecificCommentField.java b/jablib/src/main/java/org/jabref/model/entry/field/UserSpecificCommentField.java similarity index 100% rename from src/main/java/org/jabref/model/entry/field/UserSpecificCommentField.java rename to jablib/src/main/java/org/jabref/model/entry/field/UserSpecificCommentField.java diff --git a/src/main/java/org/jabref/model/entry/identifier/ARK.java b/jablib/src/main/java/org/jabref/model/entry/identifier/ARK.java similarity index 100% rename from src/main/java/org/jabref/model/entry/identifier/ARK.java rename to jablib/src/main/java/org/jabref/model/entry/identifier/ARK.java diff --git a/src/main/java/org/jabref/model/entry/identifier/ArXivIdentifier.java b/jablib/src/main/java/org/jabref/model/entry/identifier/ArXivIdentifier.java similarity index 100% rename from src/main/java/org/jabref/model/entry/identifier/ArXivIdentifier.java rename to jablib/src/main/java/org/jabref/model/entry/identifier/ArXivIdentifier.java diff --git a/src/main/java/org/jabref/model/entry/identifier/DOI.java b/jablib/src/main/java/org/jabref/model/entry/identifier/DOI.java similarity index 100% rename from src/main/java/org/jabref/model/entry/identifier/DOI.java rename to jablib/src/main/java/org/jabref/model/entry/identifier/DOI.java diff --git a/src/main/java/org/jabref/model/entry/identifier/EprintIdentifier.java b/jablib/src/main/java/org/jabref/model/entry/identifier/EprintIdentifier.java similarity index 100% rename from src/main/java/org/jabref/model/entry/identifier/EprintIdentifier.java rename to jablib/src/main/java/org/jabref/model/entry/identifier/EprintIdentifier.java diff --git a/src/main/java/org/jabref/model/entry/identifier/ISBN.java b/jablib/src/main/java/org/jabref/model/entry/identifier/ISBN.java similarity index 100% rename from src/main/java/org/jabref/model/entry/identifier/ISBN.java rename to jablib/src/main/java/org/jabref/model/entry/identifier/ISBN.java diff --git a/src/main/java/org/jabref/model/entry/identifier/ISSN.java b/jablib/src/main/java/org/jabref/model/entry/identifier/ISSN.java similarity index 100% rename from src/main/java/org/jabref/model/entry/identifier/ISSN.java rename to jablib/src/main/java/org/jabref/model/entry/identifier/ISSN.java diff --git a/src/main/java/org/jabref/model/entry/identifier/IacrEprint.java b/jablib/src/main/java/org/jabref/model/entry/identifier/IacrEprint.java similarity index 100% rename from src/main/java/org/jabref/model/entry/identifier/IacrEprint.java rename to jablib/src/main/java/org/jabref/model/entry/identifier/IacrEprint.java diff --git a/src/main/java/org/jabref/model/entry/identifier/Identifier.java b/jablib/src/main/java/org/jabref/model/entry/identifier/Identifier.java similarity index 100% rename from src/main/java/org/jabref/model/entry/identifier/Identifier.java rename to jablib/src/main/java/org/jabref/model/entry/identifier/Identifier.java diff --git a/src/main/java/org/jabref/model/entry/identifier/MathSciNetId.java b/jablib/src/main/java/org/jabref/model/entry/identifier/MathSciNetId.java similarity index 100% rename from src/main/java/org/jabref/model/entry/identifier/MathSciNetId.java rename to jablib/src/main/java/org/jabref/model/entry/identifier/MathSciNetId.java diff --git a/src/main/java/org/jabref/model/entry/identifier/RFC.java b/jablib/src/main/java/org/jabref/model/entry/identifier/RFC.java similarity index 100% rename from src/main/java/org/jabref/model/entry/identifier/RFC.java rename to jablib/src/main/java/org/jabref/model/entry/identifier/RFC.java diff --git a/src/main/java/org/jabref/model/entry/identifier/SSRN.java b/jablib/src/main/java/org/jabref/model/entry/identifier/SSRN.java similarity index 100% rename from src/main/java/org/jabref/model/entry/identifier/SSRN.java rename to jablib/src/main/java/org/jabref/model/entry/identifier/SSRN.java diff --git a/src/main/java/org/jabref/model/entry/types/BiblatexAPAEntryTypeDefinitions.java b/jablib/src/main/java/org/jabref/model/entry/types/BiblatexAPAEntryTypeDefinitions.java similarity index 100% rename from src/main/java/org/jabref/model/entry/types/BiblatexAPAEntryTypeDefinitions.java rename to jablib/src/main/java/org/jabref/model/entry/types/BiblatexAPAEntryTypeDefinitions.java diff --git a/src/main/java/org/jabref/model/entry/types/BiblatexApaEntryType.java b/jablib/src/main/java/org/jabref/model/entry/types/BiblatexApaEntryType.java similarity index 100% rename from src/main/java/org/jabref/model/entry/types/BiblatexApaEntryType.java rename to jablib/src/main/java/org/jabref/model/entry/types/BiblatexApaEntryType.java diff --git a/src/main/java/org/jabref/model/entry/types/BiblatexEntryTypeDefinitions.java b/jablib/src/main/java/org/jabref/model/entry/types/BiblatexEntryTypeDefinitions.java similarity index 100% rename from src/main/java/org/jabref/model/entry/types/BiblatexEntryTypeDefinitions.java rename to jablib/src/main/java/org/jabref/model/entry/types/BiblatexEntryTypeDefinitions.java diff --git a/src/main/java/org/jabref/model/entry/types/BiblatexSoftwareEntryType.java b/jablib/src/main/java/org/jabref/model/entry/types/BiblatexSoftwareEntryType.java similarity index 100% rename from src/main/java/org/jabref/model/entry/types/BiblatexSoftwareEntryType.java rename to jablib/src/main/java/org/jabref/model/entry/types/BiblatexSoftwareEntryType.java diff --git a/src/main/java/org/jabref/model/entry/types/BiblatexSoftwareEntryTypeDefinitions.java b/jablib/src/main/java/org/jabref/model/entry/types/BiblatexSoftwareEntryTypeDefinitions.java similarity index 100% rename from src/main/java/org/jabref/model/entry/types/BiblatexSoftwareEntryTypeDefinitions.java rename to jablib/src/main/java/org/jabref/model/entry/types/BiblatexSoftwareEntryTypeDefinitions.java diff --git a/src/main/java/org/jabref/model/entry/types/BibtexEntryTypeDefinitions.java b/jablib/src/main/java/org/jabref/model/entry/types/BibtexEntryTypeDefinitions.java similarity index 100% rename from src/main/java/org/jabref/model/entry/types/BibtexEntryTypeDefinitions.java rename to jablib/src/main/java/org/jabref/model/entry/types/BibtexEntryTypeDefinitions.java diff --git a/src/main/java/org/jabref/model/entry/types/EntryType.java b/jablib/src/main/java/org/jabref/model/entry/types/EntryType.java similarity index 100% rename from src/main/java/org/jabref/model/entry/types/EntryType.java rename to jablib/src/main/java/org/jabref/model/entry/types/EntryType.java diff --git a/src/main/java/org/jabref/model/entry/types/EntryTypeFactory.java b/jablib/src/main/java/org/jabref/model/entry/types/EntryTypeFactory.java similarity index 100% rename from src/main/java/org/jabref/model/entry/types/EntryTypeFactory.java rename to jablib/src/main/java/org/jabref/model/entry/types/EntryTypeFactory.java diff --git a/src/main/java/org/jabref/model/entry/types/IEEETranEntryType.java b/jablib/src/main/java/org/jabref/model/entry/types/IEEETranEntryType.java similarity index 100% rename from src/main/java/org/jabref/model/entry/types/IEEETranEntryType.java rename to jablib/src/main/java/org/jabref/model/entry/types/IEEETranEntryType.java diff --git a/src/main/java/org/jabref/model/entry/types/IEEETranEntryTypeDefinitions.java b/jablib/src/main/java/org/jabref/model/entry/types/IEEETranEntryTypeDefinitions.java similarity index 100% rename from src/main/java/org/jabref/model/entry/types/IEEETranEntryTypeDefinitions.java rename to jablib/src/main/java/org/jabref/model/entry/types/IEEETranEntryTypeDefinitions.java diff --git a/src/main/java/org/jabref/model/entry/types/StandardEntryType.java b/jablib/src/main/java/org/jabref/model/entry/types/StandardEntryType.java similarity index 100% rename from src/main/java/org/jabref/model/entry/types/StandardEntryType.java rename to jablib/src/main/java/org/jabref/model/entry/types/StandardEntryType.java diff --git a/src/main/java/org/jabref/model/entry/types/SystematicLiteratureReviewStudyEntryType.java b/jablib/src/main/java/org/jabref/model/entry/types/SystematicLiteratureReviewStudyEntryType.java similarity index 100% rename from src/main/java/org/jabref/model/entry/types/SystematicLiteratureReviewStudyEntryType.java rename to jablib/src/main/java/org/jabref/model/entry/types/SystematicLiteratureReviewStudyEntryType.java diff --git a/src/main/java/org/jabref/model/entry/types/SystematicLiteratureReviewStudyEntryTypeDefinitions.java b/jablib/src/main/java/org/jabref/model/entry/types/SystematicLiteratureReviewStudyEntryTypeDefinitions.java similarity index 100% rename from src/main/java/org/jabref/model/entry/types/SystematicLiteratureReviewStudyEntryTypeDefinitions.java rename to jablib/src/main/java/org/jabref/model/entry/types/SystematicLiteratureReviewStudyEntryTypeDefinitions.java diff --git a/src/main/java/org/jabref/model/entry/types/UnknownEntryType.java b/jablib/src/main/java/org/jabref/model/entry/types/UnknownEntryType.java similarity index 100% rename from src/main/java/org/jabref/model/entry/types/UnknownEntryType.java rename to jablib/src/main/java/org/jabref/model/entry/types/UnknownEntryType.java diff --git a/src/main/java/org/jabref/model/groups/AbstractGroup.java b/jablib/src/main/java/org/jabref/model/groups/AbstractGroup.java similarity index 100% rename from src/main/java/org/jabref/model/groups/AbstractGroup.java rename to jablib/src/main/java/org/jabref/model/groups/AbstractGroup.java diff --git a/src/main/java/org/jabref/model/groups/AllEntriesGroup.java b/jablib/src/main/java/org/jabref/model/groups/AllEntriesGroup.java similarity index 100% rename from src/main/java/org/jabref/model/groups/AllEntriesGroup.java rename to jablib/src/main/java/org/jabref/model/groups/AllEntriesGroup.java diff --git a/src/main/java/org/jabref/model/groups/AutomaticGroup.java b/jablib/src/main/java/org/jabref/model/groups/AutomaticGroup.java similarity index 100% rename from src/main/java/org/jabref/model/groups/AutomaticGroup.java rename to jablib/src/main/java/org/jabref/model/groups/AutomaticGroup.java diff --git a/src/main/java/org/jabref/model/groups/AutomaticKeywordGroup.java b/jablib/src/main/java/org/jabref/model/groups/AutomaticKeywordGroup.java similarity index 100% rename from src/main/java/org/jabref/model/groups/AutomaticKeywordGroup.java rename to jablib/src/main/java/org/jabref/model/groups/AutomaticKeywordGroup.java diff --git a/src/main/java/org/jabref/model/groups/AutomaticPersonsGroup.java b/jablib/src/main/java/org/jabref/model/groups/AutomaticPersonsGroup.java similarity index 100% rename from src/main/java/org/jabref/model/groups/AutomaticPersonsGroup.java rename to jablib/src/main/java/org/jabref/model/groups/AutomaticPersonsGroup.java diff --git a/src/main/java/org/jabref/model/groups/ExplicitGroup.java b/jablib/src/main/java/org/jabref/model/groups/ExplicitGroup.java similarity index 100% rename from src/main/java/org/jabref/model/groups/ExplicitGroup.java rename to jablib/src/main/java/org/jabref/model/groups/ExplicitGroup.java diff --git a/src/main/java/org/jabref/model/groups/GroupEntryChanger.java b/jablib/src/main/java/org/jabref/model/groups/GroupEntryChanger.java similarity index 87% rename from src/main/java/org/jabref/model/groups/GroupEntryChanger.java rename to jablib/src/main/java/org/jabref/model/groups/GroupEntryChanger.java index 8bd75be26db..887e920e116 100644 --- a/src/main/java/org/jabref/model/groups/GroupEntryChanger.java +++ b/jablib/src/main/java/org/jabref/model/groups/GroupEntryChanger.java @@ -1,7 +1,6 @@ package org.jabref.model.groups; import java.util.Collection; -import java.util.Collections; import java.util.List; import org.jabref.model.FieldChange; @@ -22,7 +21,7 @@ public interface GroupEntryChanger { List add(Collection entriesToAdd); default List add(BibEntry entryToAdd) { - return add(Collections.singletonList(entryToAdd)); + return add(List.of(entryToAdd)); } /** @@ -34,6 +33,6 @@ default List add(BibEntry entryToAdd) { List remove(List entriesToRemove); default List remove(BibEntry entryToAdd) { - return remove(Collections.singletonList(entryToAdd)); + return remove(List.of(entryToAdd)); } } diff --git a/src/main/java/org/jabref/model/groups/GroupHierarchyType.java b/jablib/src/main/java/org/jabref/model/groups/GroupHierarchyType.java similarity index 100% rename from src/main/java/org/jabref/model/groups/GroupHierarchyType.java rename to jablib/src/main/java/org/jabref/model/groups/GroupHierarchyType.java diff --git a/src/main/java/org/jabref/model/groups/GroupTreeNode.java b/jablib/src/main/java/org/jabref/model/groups/GroupTreeNode.java similarity index 98% rename from src/main/java/org/jabref/model/groups/GroupTreeNode.java rename to jablib/src/main/java/org/jabref/model/groups/GroupTreeNode.java index 6fa9e354823..62b118d4ade 100644 --- a/src/main/java/org/jabref/model/groups/GroupTreeNode.java +++ b/jablib/src/main/java/org/jabref/model/groups/GroupTreeNode.java @@ -2,7 +2,6 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -173,7 +172,7 @@ public List getContainingGroups(List entries, boolean r * Determines all groups in the subtree starting at this node which contain the given entry. */ public List getMatchingGroups(BibEntry entry) { - return getMatchingGroups(Collections.singletonList(entry)); + return getMatchingGroups(List.of(entry)); } /** @@ -308,7 +307,7 @@ public List addEntriesToGroup(Collection entries) { if (getGroup() instanceof GroupEntryChanger) { return ((GroupEntryChanger) getGroup()).add(entries); } else { - return Collections.emptyList(); + return List.of(); } } @@ -319,7 +318,7 @@ public List removeEntriesFromGroup(List entries) { if (getGroup() instanceof GroupEntryChanger) { return ((GroupEntryChanger) getGroup()).remove(entries); } else { - return Collections.emptyList(); + return List.of(); } } diff --git a/src/main/java/org/jabref/model/groups/KeywordGroup.java b/jablib/src/main/java/org/jabref/model/groups/KeywordGroup.java similarity index 100% rename from src/main/java/org/jabref/model/groups/KeywordGroup.java rename to jablib/src/main/java/org/jabref/model/groups/KeywordGroup.java diff --git a/src/main/java/org/jabref/model/groups/LastNameGroup.java b/jablib/src/main/java/org/jabref/model/groups/LastNameGroup.java similarity index 100% rename from src/main/java/org/jabref/model/groups/LastNameGroup.java rename to jablib/src/main/java/org/jabref/model/groups/LastNameGroup.java diff --git a/src/main/java/org/jabref/model/groups/RegexKeywordGroup.java b/jablib/src/main/java/org/jabref/model/groups/RegexKeywordGroup.java similarity index 100% rename from src/main/java/org/jabref/model/groups/RegexKeywordGroup.java rename to jablib/src/main/java/org/jabref/model/groups/RegexKeywordGroup.java diff --git a/src/main/java/org/jabref/model/groups/SearchGroup.java b/jablib/src/main/java/org/jabref/model/groups/SearchGroup.java similarity index 100% rename from src/main/java/org/jabref/model/groups/SearchGroup.java rename to jablib/src/main/java/org/jabref/model/groups/SearchGroup.java diff --git a/src/main/java/org/jabref/model/groups/TexGroup.java b/jablib/src/main/java/org/jabref/model/groups/TexGroup.java similarity index 98% rename from src/main/java/org/jabref/model/groups/TexGroup.java rename to jablib/src/main/java/org/jabref/model/groups/TexGroup.java index 8d22c0a1d7f..503bcc2d269 100644 --- a/src/main/java/org/jabref/model/groups/TexGroup.java +++ b/jablib/src/main/java/org/jabref/model/groups/TexGroup.java @@ -3,7 +3,6 @@ import java.io.IOException; import java.net.InetAddress; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Set; @@ -141,6 +140,6 @@ private Path expandPath(Path path) { private List getFileDirectoriesAsPaths() { return metaData.getLatexFileDirectory(user) .map(List::of) - .orElse(Collections.emptyList()); + .orElse(List.of()); } } diff --git a/src/main/java/org/jabref/model/groups/WordKeywordGroup.java b/jablib/src/main/java/org/jabref/model/groups/WordKeywordGroup.java similarity index 100% rename from src/main/java/org/jabref/model/groups/WordKeywordGroup.java rename to jablib/src/main/java/org/jabref/model/groups/WordKeywordGroup.java diff --git a/src/main/java/org/jabref/model/groups/event/GroupUpdatedEvent.java b/jablib/src/main/java/org/jabref/model/groups/event/GroupUpdatedEvent.java similarity index 100% rename from src/main/java/org/jabref/model/groups/event/GroupUpdatedEvent.java rename to jablib/src/main/java/org/jabref/model/groups/event/GroupUpdatedEvent.java diff --git a/src/main/java/org/jabref/http/dto/SimpleHttpResponse.java b/jablib/src/main/java/org/jabref/model/http/SimpleHttpResponse.java similarity index 99% rename from src/main/java/org/jabref/http/dto/SimpleHttpResponse.java rename to jablib/src/main/java/org/jabref/model/http/SimpleHttpResponse.java index a07a9b304d9..1b650bf6983 100644 --- a/src/main/java/org/jabref/http/dto/SimpleHttpResponse.java +++ b/jablib/src/main/java/org/jabref/model/http/SimpleHttpResponse.java @@ -1,4 +1,4 @@ -package org.jabref.http.dto; +package org.jabref.model.http; import java.io.BufferedReader; import java.io.IOException; diff --git a/src/main/java/org/jabref/model/metadata/ContentSelector.java b/jablib/src/main/java/org/jabref/model/metadata/ContentSelector.java similarity index 100% rename from src/main/java/org/jabref/model/metadata/ContentSelector.java rename to jablib/src/main/java/org/jabref/model/metadata/ContentSelector.java diff --git a/src/main/java/org/jabref/model/metadata/ContentSelectors.java b/jablib/src/main/java/org/jabref/model/metadata/ContentSelectors.java similarity index 98% rename from src/main/java/org/jabref/model/metadata/ContentSelectors.java rename to jablib/src/main/java/org/jabref/model/metadata/ContentSelectors.java index 05ce0acb9e5..bb804e0caaf 100644 --- a/src/main/java/org/jabref/model/metadata/ContentSelectors.java +++ b/jablib/src/main/java/org/jabref/model/metadata/ContentSelectors.java @@ -2,7 +2,6 @@ import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -58,7 +57,7 @@ public List getSelectorValuesForField(Field field) { } } - return Collections.emptyList(); + return List.of(); } public SortedSet getContentSelectors() { diff --git a/src/main/java/org/jabref/model/metadata/MetaData.java b/jablib/src/main/java/org/jabref/model/metadata/MetaData.java similarity index 100% rename from src/main/java/org/jabref/model/metadata/MetaData.java rename to jablib/src/main/java/org/jabref/model/metadata/MetaData.java diff --git a/src/main/java/org/jabref/model/metadata/SaveOrder.java b/jablib/src/main/java/org/jabref/model/metadata/SaveOrder.java similarity index 100% rename from src/main/java/org/jabref/model/metadata/SaveOrder.java rename to jablib/src/main/java/org/jabref/model/metadata/SaveOrder.java diff --git a/src/main/java/org/jabref/model/metadata/SelfContainedSaveOrder.java b/jablib/src/main/java/org/jabref/model/metadata/SelfContainedSaveOrder.java similarity index 100% rename from src/main/java/org/jabref/model/metadata/SelfContainedSaveOrder.java rename to jablib/src/main/java/org/jabref/model/metadata/SelfContainedSaveOrder.java diff --git a/src/main/java/org/jabref/model/metadata/event/MetaDataChangedEvent.java b/jablib/src/main/java/org/jabref/model/metadata/event/MetaDataChangedEvent.java similarity index 100% rename from src/main/java/org/jabref/model/metadata/event/MetaDataChangedEvent.java rename to jablib/src/main/java/org/jabref/model/metadata/event/MetaDataChangedEvent.java diff --git a/src/main/java/org/jabref/model/openoffice/CitationEntry.java b/jablib/src/main/java/org/jabref/model/openoffice/CitationEntry.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/CitationEntry.java rename to jablib/src/main/java/org/jabref/model/openoffice/CitationEntry.java diff --git a/src/main/java/org/jabref/model/openoffice/DocumentAnnotation.java b/jablib/src/main/java/org/jabref/model/openoffice/DocumentAnnotation.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/DocumentAnnotation.java rename to jablib/src/main/java/org/jabref/model/openoffice/DocumentAnnotation.java diff --git a/src/main/java/org/jabref/model/openoffice/backend/NamedRange.java b/jablib/src/main/java/org/jabref/model/openoffice/backend/NamedRange.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/backend/NamedRange.java rename to jablib/src/main/java/org/jabref/model/openoffice/backend/NamedRange.java diff --git a/src/main/java/org/jabref/model/openoffice/backend/NamedRangeManager.java b/jablib/src/main/java/org/jabref/model/openoffice/backend/NamedRangeManager.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/backend/NamedRangeManager.java rename to jablib/src/main/java/org/jabref/model/openoffice/backend/NamedRangeManager.java diff --git a/src/main/java/org/jabref/model/openoffice/ootext/OOFormat.java b/jablib/src/main/java/org/jabref/model/openoffice/ootext/OOFormat.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/ootext/OOFormat.java rename to jablib/src/main/java/org/jabref/model/openoffice/ootext/OOFormat.java diff --git a/src/main/java/org/jabref/model/openoffice/ootext/OOText.java b/jablib/src/main/java/org/jabref/model/openoffice/ootext/OOText.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/ootext/OOText.java rename to jablib/src/main/java/org/jabref/model/openoffice/ootext/OOText.java diff --git a/src/main/java/org/jabref/model/openoffice/ootext/OOTextIntoOO.java b/jablib/src/main/java/org/jabref/model/openoffice/ootext/OOTextIntoOO.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/ootext/OOTextIntoOO.java rename to jablib/src/main/java/org/jabref/model/openoffice/ootext/OOTextIntoOO.java diff --git a/src/main/java/org/jabref/model/openoffice/rangesort/FunctionalTextViewCursor.java b/jablib/src/main/java/org/jabref/model/openoffice/rangesort/FunctionalTextViewCursor.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/rangesort/FunctionalTextViewCursor.java rename to jablib/src/main/java/org/jabref/model/openoffice/rangesort/FunctionalTextViewCursor.java diff --git a/src/main/java/org/jabref/model/openoffice/rangesort/RangeHolder.java b/jablib/src/main/java/org/jabref/model/openoffice/rangesort/RangeHolder.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/rangesort/RangeHolder.java rename to jablib/src/main/java/org/jabref/model/openoffice/rangesort/RangeHolder.java diff --git a/src/main/java/org/jabref/model/openoffice/rangesort/RangeOverlap.java b/jablib/src/main/java/org/jabref/model/openoffice/rangesort/RangeOverlap.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/rangesort/RangeOverlap.java rename to jablib/src/main/java/org/jabref/model/openoffice/rangesort/RangeOverlap.java diff --git a/src/main/java/org/jabref/model/openoffice/rangesort/RangeOverlapBetween.java b/jablib/src/main/java/org/jabref/model/openoffice/rangesort/RangeOverlapBetween.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/rangesort/RangeOverlapBetween.java rename to jablib/src/main/java/org/jabref/model/openoffice/rangesort/RangeOverlapBetween.java diff --git a/src/main/java/org/jabref/model/openoffice/rangesort/RangeOverlapKind.java b/jablib/src/main/java/org/jabref/model/openoffice/rangesort/RangeOverlapKind.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/rangesort/RangeOverlapKind.java rename to jablib/src/main/java/org/jabref/model/openoffice/rangesort/RangeOverlapKind.java diff --git a/src/main/java/org/jabref/model/openoffice/rangesort/RangeOverlapWithin.java b/jablib/src/main/java/org/jabref/model/openoffice/rangesort/RangeOverlapWithin.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/rangesort/RangeOverlapWithin.java rename to jablib/src/main/java/org/jabref/model/openoffice/rangesort/RangeOverlapWithin.java diff --git a/src/main/java/org/jabref/model/openoffice/rangesort/RangeSort.java b/jablib/src/main/java/org/jabref/model/openoffice/rangesort/RangeSort.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/rangesort/RangeSort.java rename to jablib/src/main/java/org/jabref/model/openoffice/rangesort/RangeSort.java diff --git a/src/main/java/org/jabref/model/openoffice/rangesort/RangeSortEntry.java b/jablib/src/main/java/org/jabref/model/openoffice/rangesort/RangeSortEntry.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/rangesort/RangeSortEntry.java rename to jablib/src/main/java/org/jabref/model/openoffice/rangesort/RangeSortEntry.java diff --git a/src/main/java/org/jabref/model/openoffice/rangesort/RangeSortVisual.java b/jablib/src/main/java/org/jabref/model/openoffice/rangesort/RangeSortVisual.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/rangesort/RangeSortVisual.java rename to jablib/src/main/java/org/jabref/model/openoffice/rangesort/RangeSortVisual.java diff --git a/src/main/java/org/jabref/model/openoffice/rangesort/RangeSortable.java b/jablib/src/main/java/org/jabref/model/openoffice/rangesort/RangeSortable.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/rangesort/RangeSortable.java rename to jablib/src/main/java/org/jabref/model/openoffice/rangesort/RangeSortable.java diff --git a/src/main/java/org/jabref/model/openoffice/style/Citation.java b/jablib/src/main/java/org/jabref/model/openoffice/style/Citation.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/style/Citation.java rename to jablib/src/main/java/org/jabref/model/openoffice/style/Citation.java diff --git a/src/main/java/org/jabref/model/openoffice/style/CitationGroup.java b/jablib/src/main/java/org/jabref/model/openoffice/style/CitationGroup.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/style/CitationGroup.java rename to jablib/src/main/java/org/jabref/model/openoffice/style/CitationGroup.java diff --git a/src/main/java/org/jabref/model/openoffice/style/CitationGroupId.java b/jablib/src/main/java/org/jabref/model/openoffice/style/CitationGroupId.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/style/CitationGroupId.java rename to jablib/src/main/java/org/jabref/model/openoffice/style/CitationGroupId.java diff --git a/src/main/java/org/jabref/model/openoffice/style/CitationGroups.java b/jablib/src/main/java/org/jabref/model/openoffice/style/CitationGroups.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/style/CitationGroups.java rename to jablib/src/main/java/org/jabref/model/openoffice/style/CitationGroups.java diff --git a/src/main/java/org/jabref/model/openoffice/style/CitationLookupResult.java b/jablib/src/main/java/org/jabref/model/openoffice/style/CitationLookupResult.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/style/CitationLookupResult.java rename to jablib/src/main/java/org/jabref/model/openoffice/style/CitationLookupResult.java diff --git a/src/main/java/org/jabref/model/openoffice/style/CitationMarkerEntry.java b/jablib/src/main/java/org/jabref/model/openoffice/style/CitationMarkerEntry.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/style/CitationMarkerEntry.java rename to jablib/src/main/java/org/jabref/model/openoffice/style/CitationMarkerEntry.java diff --git a/src/main/java/org/jabref/model/openoffice/style/CitationMarkerNormEntry.java b/jablib/src/main/java/org/jabref/model/openoffice/style/CitationMarkerNormEntry.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/style/CitationMarkerNormEntry.java rename to jablib/src/main/java/org/jabref/model/openoffice/style/CitationMarkerNormEntry.java diff --git a/src/main/java/org/jabref/model/openoffice/style/CitationMarkerNumericBibEntry.java b/jablib/src/main/java/org/jabref/model/openoffice/style/CitationMarkerNumericBibEntry.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/style/CitationMarkerNumericBibEntry.java rename to jablib/src/main/java/org/jabref/model/openoffice/style/CitationMarkerNumericBibEntry.java diff --git a/src/main/java/org/jabref/model/openoffice/style/CitationMarkerNumericEntry.java b/jablib/src/main/java/org/jabref/model/openoffice/style/CitationMarkerNumericEntry.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/style/CitationMarkerNumericEntry.java rename to jablib/src/main/java/org/jabref/model/openoffice/style/CitationMarkerNumericEntry.java diff --git a/src/main/java/org/jabref/model/openoffice/style/CitationPath.java b/jablib/src/main/java/org/jabref/model/openoffice/style/CitationPath.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/style/CitationPath.java rename to jablib/src/main/java/org/jabref/model/openoffice/style/CitationPath.java diff --git a/src/main/java/org/jabref/model/openoffice/style/CitationType.java b/jablib/src/main/java/org/jabref/model/openoffice/style/CitationType.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/style/CitationType.java rename to jablib/src/main/java/org/jabref/model/openoffice/style/CitationType.java diff --git a/src/main/java/org/jabref/model/openoffice/style/CitedKey.java b/jablib/src/main/java/org/jabref/model/openoffice/style/CitedKey.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/style/CitedKey.java rename to jablib/src/main/java/org/jabref/model/openoffice/style/CitedKey.java diff --git a/src/main/java/org/jabref/model/openoffice/style/CitedKeys.java b/jablib/src/main/java/org/jabref/model/openoffice/style/CitedKeys.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/style/CitedKeys.java rename to jablib/src/main/java/org/jabref/model/openoffice/style/CitedKeys.java diff --git a/src/main/java/org/jabref/model/openoffice/style/ComparableCitation.java b/jablib/src/main/java/org/jabref/model/openoffice/style/ComparableCitation.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/style/ComparableCitation.java rename to jablib/src/main/java/org/jabref/model/openoffice/style/ComparableCitation.java diff --git a/src/main/java/org/jabref/model/openoffice/style/ComparableCitedKey.java b/jablib/src/main/java/org/jabref/model/openoffice/style/ComparableCitedKey.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/style/ComparableCitedKey.java rename to jablib/src/main/java/org/jabref/model/openoffice/style/ComparableCitedKey.java diff --git a/src/main/java/org/jabref/model/openoffice/style/CompareCitation.java b/jablib/src/main/java/org/jabref/model/openoffice/style/CompareCitation.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/style/CompareCitation.java rename to jablib/src/main/java/org/jabref/model/openoffice/style/CompareCitation.java diff --git a/src/main/java/org/jabref/model/openoffice/style/CompareCitedKey.java b/jablib/src/main/java/org/jabref/model/openoffice/style/CompareCitedKey.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/style/CompareCitedKey.java rename to jablib/src/main/java/org/jabref/model/openoffice/style/CompareCitedKey.java diff --git a/src/main/java/org/jabref/model/openoffice/style/NonUniqueCitationMarker.java b/jablib/src/main/java/org/jabref/model/openoffice/style/NonUniqueCitationMarker.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/style/NonUniqueCitationMarker.java rename to jablib/src/main/java/org/jabref/model/openoffice/style/NonUniqueCitationMarker.java diff --git a/src/main/java/org/jabref/model/openoffice/style/OODataModel.java b/jablib/src/main/java/org/jabref/model/openoffice/style/OODataModel.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/style/OODataModel.java rename to jablib/src/main/java/org/jabref/model/openoffice/style/OODataModel.java diff --git a/src/main/java/org/jabref/model/openoffice/style/PageInfo.java b/jablib/src/main/java/org/jabref/model/openoffice/style/PageInfo.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/style/PageInfo.java rename to jablib/src/main/java/org/jabref/model/openoffice/style/PageInfo.java diff --git a/src/main/java/org/jabref/model/openoffice/uno/CreationException.java b/jablib/src/main/java/org/jabref/model/openoffice/uno/CreationException.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/uno/CreationException.java rename to jablib/src/main/java/org/jabref/model/openoffice/uno/CreationException.java diff --git a/src/main/java/org/jabref/model/openoffice/uno/NoDocumentException.java b/jablib/src/main/java/org/jabref/model/openoffice/uno/NoDocumentException.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/uno/NoDocumentException.java rename to jablib/src/main/java/org/jabref/model/openoffice/uno/NoDocumentException.java diff --git a/src/main/java/org/jabref/model/openoffice/uno/UnoBookmark.java b/jablib/src/main/java/org/jabref/model/openoffice/uno/UnoBookmark.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/uno/UnoBookmark.java rename to jablib/src/main/java/org/jabref/model/openoffice/uno/UnoBookmark.java diff --git a/src/main/java/org/jabref/model/openoffice/uno/UnoCast.java b/jablib/src/main/java/org/jabref/model/openoffice/uno/UnoCast.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/uno/UnoCast.java rename to jablib/src/main/java/org/jabref/model/openoffice/uno/UnoCast.java diff --git a/src/main/java/org/jabref/model/openoffice/uno/UnoCrossRef.java b/jablib/src/main/java/org/jabref/model/openoffice/uno/UnoCrossRef.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/uno/UnoCrossRef.java rename to jablib/src/main/java/org/jabref/model/openoffice/uno/UnoCrossRef.java diff --git a/src/main/java/org/jabref/model/openoffice/uno/UnoCursor.java b/jablib/src/main/java/org/jabref/model/openoffice/uno/UnoCursor.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/uno/UnoCursor.java rename to jablib/src/main/java/org/jabref/model/openoffice/uno/UnoCursor.java diff --git a/src/main/java/org/jabref/model/openoffice/uno/UnoNameAccess.java b/jablib/src/main/java/org/jabref/model/openoffice/uno/UnoNameAccess.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/uno/UnoNameAccess.java rename to jablib/src/main/java/org/jabref/model/openoffice/uno/UnoNameAccess.java diff --git a/src/main/java/org/jabref/model/openoffice/uno/UnoNamed.java b/jablib/src/main/java/org/jabref/model/openoffice/uno/UnoNamed.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/uno/UnoNamed.java rename to jablib/src/main/java/org/jabref/model/openoffice/uno/UnoNamed.java diff --git a/src/main/java/org/jabref/model/openoffice/uno/UnoProperties.java b/jablib/src/main/java/org/jabref/model/openoffice/uno/UnoProperties.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/uno/UnoProperties.java rename to jablib/src/main/java/org/jabref/model/openoffice/uno/UnoProperties.java diff --git a/src/main/java/org/jabref/model/openoffice/uno/UnoRedlines.java b/jablib/src/main/java/org/jabref/model/openoffice/uno/UnoRedlines.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/uno/UnoRedlines.java rename to jablib/src/main/java/org/jabref/model/openoffice/uno/UnoRedlines.java diff --git a/src/main/java/org/jabref/model/openoffice/uno/UnoReferenceMark.java b/jablib/src/main/java/org/jabref/model/openoffice/uno/UnoReferenceMark.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/uno/UnoReferenceMark.java rename to jablib/src/main/java/org/jabref/model/openoffice/uno/UnoReferenceMark.java diff --git a/src/main/java/org/jabref/model/openoffice/uno/UnoScreenRefresh.java b/jablib/src/main/java/org/jabref/model/openoffice/uno/UnoScreenRefresh.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/uno/UnoScreenRefresh.java rename to jablib/src/main/java/org/jabref/model/openoffice/uno/UnoScreenRefresh.java diff --git a/src/main/java/org/jabref/model/openoffice/uno/UnoSelection.java b/jablib/src/main/java/org/jabref/model/openoffice/uno/UnoSelection.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/uno/UnoSelection.java rename to jablib/src/main/java/org/jabref/model/openoffice/uno/UnoSelection.java diff --git a/src/main/java/org/jabref/model/openoffice/uno/UnoStyle.java b/jablib/src/main/java/org/jabref/model/openoffice/uno/UnoStyle.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/uno/UnoStyle.java rename to jablib/src/main/java/org/jabref/model/openoffice/uno/UnoStyle.java diff --git a/src/main/java/org/jabref/model/openoffice/uno/UnoTextDocument.java b/jablib/src/main/java/org/jabref/model/openoffice/uno/UnoTextDocument.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/uno/UnoTextDocument.java rename to jablib/src/main/java/org/jabref/model/openoffice/uno/UnoTextDocument.java diff --git a/src/main/java/org/jabref/model/openoffice/uno/UnoTextRange.java b/jablib/src/main/java/org/jabref/model/openoffice/uno/UnoTextRange.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/uno/UnoTextRange.java rename to jablib/src/main/java/org/jabref/model/openoffice/uno/UnoTextRange.java diff --git a/src/main/java/org/jabref/model/openoffice/uno/UnoTextSection.java b/jablib/src/main/java/org/jabref/model/openoffice/uno/UnoTextSection.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/uno/UnoTextSection.java rename to jablib/src/main/java/org/jabref/model/openoffice/uno/UnoTextSection.java diff --git a/src/main/java/org/jabref/model/openoffice/uno/UnoUndo.java b/jablib/src/main/java/org/jabref/model/openoffice/uno/UnoUndo.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/uno/UnoUndo.java rename to jablib/src/main/java/org/jabref/model/openoffice/uno/UnoUndo.java diff --git a/src/main/java/org/jabref/model/openoffice/uno/UnoUserDefinedProperty.java b/jablib/src/main/java/org/jabref/model/openoffice/uno/UnoUserDefinedProperty.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/uno/UnoUserDefinedProperty.java rename to jablib/src/main/java/org/jabref/model/openoffice/uno/UnoUserDefinedProperty.java diff --git a/src/main/java/org/jabref/model/openoffice/util/OOListUtil.java b/jablib/src/main/java/org/jabref/model/openoffice/util/OOListUtil.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/util/OOListUtil.java rename to jablib/src/main/java/org/jabref/model/openoffice/util/OOListUtil.java diff --git a/src/main/java/org/jabref/model/openoffice/util/OOPair.java b/jablib/src/main/java/org/jabref/model/openoffice/util/OOPair.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/util/OOPair.java rename to jablib/src/main/java/org/jabref/model/openoffice/util/OOPair.java diff --git a/src/main/java/org/jabref/model/openoffice/util/OOResult.java b/jablib/src/main/java/org/jabref/model/openoffice/util/OOResult.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/util/OOResult.java rename to jablib/src/main/java/org/jabref/model/openoffice/util/OOResult.java diff --git a/src/main/java/org/jabref/model/openoffice/util/OOTuple3.java b/jablib/src/main/java/org/jabref/model/openoffice/util/OOTuple3.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/util/OOTuple3.java rename to jablib/src/main/java/org/jabref/model/openoffice/util/OOTuple3.java diff --git a/src/main/java/org/jabref/model/openoffice/util/OOVoidResult.java b/jablib/src/main/java/org/jabref/model/openoffice/util/OOVoidResult.java similarity index 100% rename from src/main/java/org/jabref/model/openoffice/util/OOVoidResult.java rename to jablib/src/main/java/org/jabref/model/openoffice/util/OOVoidResult.java diff --git a/src/main/java/org/jabref/model/paging/Page.java b/jablib/src/main/java/org/jabref/model/paging/Page.java similarity index 91% rename from src/main/java/org/jabref/model/paging/Page.java rename to jablib/src/main/java/org/jabref/model/paging/Page.java index c65bd6f3f74..a6e3de13714 100644 --- a/src/main/java/org/jabref/model/paging/Page.java +++ b/jablib/src/main/java/org/jabref/model/paging/Page.java @@ -2,6 +2,7 @@ import java.util.Collection; import java.util.Collections; +import java.util.List; public class Page { @@ -16,7 +17,7 @@ public Page(String query, int pageNumber, Collection content) { } public Page(String query, int pageNumber) { - this(query, pageNumber, Collections.emptyList()); + this(query, pageNumber, List.of()); } public Collection getContent() { diff --git a/src/main/java/org/jabref/model/pdf/FileAnnotation.java b/jablib/src/main/java/org/jabref/model/pdf/FileAnnotation.java similarity index 100% rename from src/main/java/org/jabref/model/pdf/FileAnnotation.java rename to jablib/src/main/java/org/jabref/model/pdf/FileAnnotation.java diff --git a/src/main/java/org/jabref/model/pdf/FileAnnotationType.java b/jablib/src/main/java/org/jabref/model/pdf/FileAnnotationType.java similarity index 100% rename from src/main/java/org/jabref/model/pdf/FileAnnotationType.java rename to jablib/src/main/java/org/jabref/model/pdf/FileAnnotationType.java diff --git a/src/main/java/org/jabref/model/schema/DublinCoreSchemaCustom.java b/jablib/src/main/java/org/jabref/model/schema/DublinCoreSchemaCustom.java similarity index 100% rename from src/main/java/org/jabref/model/schema/DublinCoreSchemaCustom.java rename to jablib/src/main/java/org/jabref/model/schema/DublinCoreSchemaCustom.java diff --git a/src/main/java/org/jabref/model/search/LinkedFilesConstants.java b/jablib/src/main/java/org/jabref/model/search/LinkedFilesConstants.java similarity index 100% rename from src/main/java/org/jabref/model/search/LinkedFilesConstants.java rename to jablib/src/main/java/org/jabref/model/search/LinkedFilesConstants.java diff --git a/src/main/java/org/jabref/model/search/PostgreConstants.java b/jablib/src/main/java/org/jabref/model/search/PostgreConstants.java similarity index 100% rename from src/main/java/org/jabref/model/search/PostgreConstants.java rename to jablib/src/main/java/org/jabref/model/search/PostgreConstants.java diff --git a/src/main/java/org/jabref/model/search/SearchDisplayMode.java b/jablib/src/main/java/org/jabref/model/search/SearchDisplayMode.java similarity index 100% rename from src/main/java/org/jabref/model/search/SearchDisplayMode.java rename to jablib/src/main/java/org/jabref/model/search/SearchDisplayMode.java diff --git a/src/main/java/org/jabref/model/search/SearchFlags.java b/jablib/src/main/java/org/jabref/model/search/SearchFlags.java similarity index 100% rename from src/main/java/org/jabref/model/search/SearchFlags.java rename to jablib/src/main/java/org/jabref/model/search/SearchFlags.java diff --git a/src/main/java/org/jabref/model/search/SearchMatcher.java b/jablib/src/main/java/org/jabref/model/search/SearchMatcher.java similarity index 100% rename from src/main/java/org/jabref/model/search/SearchMatcher.java rename to jablib/src/main/java/org/jabref/model/search/SearchMatcher.java diff --git a/src/main/java/org/jabref/model/search/ThrowingErrorListener.java b/jablib/src/main/java/org/jabref/model/search/ThrowingErrorListener.java similarity index 100% rename from src/main/java/org/jabref/model/search/ThrowingErrorListener.java rename to jablib/src/main/java/org/jabref/model/search/ThrowingErrorListener.java diff --git a/src/main/java/org/jabref/model/search/event/IndexAddedOrUpdatedEvent.java b/jablib/src/main/java/org/jabref/model/search/event/IndexAddedOrUpdatedEvent.java similarity index 100% rename from src/main/java/org/jabref/model/search/event/IndexAddedOrUpdatedEvent.java rename to jablib/src/main/java/org/jabref/model/search/event/IndexAddedOrUpdatedEvent.java diff --git a/src/main/java/org/jabref/model/search/event/IndexClosedEvent.java b/jablib/src/main/java/org/jabref/model/search/event/IndexClosedEvent.java similarity index 100% rename from src/main/java/org/jabref/model/search/event/IndexClosedEvent.java rename to jablib/src/main/java/org/jabref/model/search/event/IndexClosedEvent.java diff --git a/src/main/java/org/jabref/model/search/event/IndexRemovedEvent.java b/jablib/src/main/java/org/jabref/model/search/event/IndexRemovedEvent.java similarity index 100% rename from src/main/java/org/jabref/model/search/event/IndexRemovedEvent.java rename to jablib/src/main/java/org/jabref/model/search/event/IndexRemovedEvent.java diff --git a/src/main/java/org/jabref/model/search/event/IndexStartedEvent.java b/jablib/src/main/java/org/jabref/model/search/event/IndexStartedEvent.java similarity index 100% rename from src/main/java/org/jabref/model/search/event/IndexStartedEvent.java rename to jablib/src/main/java/org/jabref/model/search/event/IndexStartedEvent.java diff --git a/src/main/java/org/jabref/model/search/matchers/AndMatcher.java b/jablib/src/main/java/org/jabref/model/search/matchers/AndMatcher.java similarity index 100% rename from src/main/java/org/jabref/model/search/matchers/AndMatcher.java rename to jablib/src/main/java/org/jabref/model/search/matchers/AndMatcher.java diff --git a/src/main/java/org/jabref/model/search/matchers/MatcherSet.java b/jablib/src/main/java/org/jabref/model/search/matchers/MatcherSet.java similarity index 100% rename from src/main/java/org/jabref/model/search/matchers/MatcherSet.java rename to jablib/src/main/java/org/jabref/model/search/matchers/MatcherSet.java diff --git a/src/main/java/org/jabref/model/search/matchers/MatcherSets.java b/jablib/src/main/java/org/jabref/model/search/matchers/MatcherSets.java similarity index 100% rename from src/main/java/org/jabref/model/search/matchers/MatcherSets.java rename to jablib/src/main/java/org/jabref/model/search/matchers/MatcherSets.java diff --git a/src/main/java/org/jabref/model/search/matchers/NotMatcher.java b/jablib/src/main/java/org/jabref/model/search/matchers/NotMatcher.java similarity index 100% rename from src/main/java/org/jabref/model/search/matchers/NotMatcher.java rename to jablib/src/main/java/org/jabref/model/search/matchers/NotMatcher.java diff --git a/src/main/java/org/jabref/model/search/matchers/OrMatcher.java b/jablib/src/main/java/org/jabref/model/search/matchers/OrMatcher.java similarity index 100% rename from src/main/java/org/jabref/model/search/matchers/OrMatcher.java rename to jablib/src/main/java/org/jabref/model/search/matchers/OrMatcher.java diff --git a/src/main/java/org/jabref/model/search/query/SearchQuery.java b/jablib/src/main/java/org/jabref/model/search/query/SearchQuery.java similarity index 100% rename from src/main/java/org/jabref/model/search/query/SearchQuery.java rename to jablib/src/main/java/org/jabref/model/search/query/SearchQuery.java diff --git a/src/main/java/org/jabref/model/search/query/SearchQueryNode.java b/jablib/src/main/java/org/jabref/model/search/query/SearchQueryNode.java similarity index 100% rename from src/main/java/org/jabref/model/search/query/SearchQueryNode.java rename to jablib/src/main/java/org/jabref/model/search/query/SearchQueryNode.java diff --git a/src/main/java/org/jabref/model/search/query/SearchResult.java b/jablib/src/main/java/org/jabref/model/search/query/SearchResult.java similarity index 100% rename from src/main/java/org/jabref/model/search/query/SearchResult.java rename to jablib/src/main/java/org/jabref/model/search/query/SearchResult.java diff --git a/src/main/java/org/jabref/model/search/query/SearchResults.java b/jablib/src/main/java/org/jabref/model/search/query/SearchResults.java similarity index 100% rename from src/main/java/org/jabref/model/search/query/SearchResults.java rename to jablib/src/main/java/org/jabref/model/search/query/SearchResults.java diff --git a/src/main/java/org/jabref/model/search/query/SqlQueryNode.java b/jablib/src/main/java/org/jabref/model/search/query/SqlQueryNode.java similarity index 100% rename from src/main/java/org/jabref/model/search/query/SqlQueryNode.java rename to jablib/src/main/java/org/jabref/model/search/query/SqlQueryNode.java diff --git a/src/main/java/org/jabref/model/strings/LatexToUnicodeAdapter.java b/jablib/src/main/java/org/jabref/model/strings/LatexToUnicodeAdapter.java similarity index 100% rename from src/main/java/org/jabref/model/strings/LatexToUnicodeAdapter.java rename to jablib/src/main/java/org/jabref/model/strings/LatexToUnicodeAdapter.java diff --git a/src/main/java/org/jabref/model/strings/StringUtil.java b/jablib/src/main/java/org/jabref/model/strings/StringUtil.java similarity index 100% rename from src/main/java/org/jabref/model/strings/StringUtil.java rename to jablib/src/main/java/org/jabref/model/strings/StringUtil.java diff --git a/src/main/java/org/jabref/model/strings/UnicodeToReadableCharMap.java b/jablib/src/main/java/org/jabref/model/strings/UnicodeToReadableCharMap.java similarity index 100% rename from src/main/java/org/jabref/model/strings/UnicodeToReadableCharMap.java rename to jablib/src/main/java/org/jabref/model/strings/UnicodeToReadableCharMap.java diff --git a/src/main/java/org/jabref/model/study/FetchResult.java b/jablib/src/main/java/org/jabref/model/study/FetchResult.java similarity index 100% rename from src/main/java/org/jabref/model/study/FetchResult.java rename to jablib/src/main/java/org/jabref/model/study/FetchResult.java diff --git a/src/main/java/org/jabref/model/study/QueryResult.java b/jablib/src/main/java/org/jabref/model/study/QueryResult.java similarity index 100% rename from src/main/java/org/jabref/model/study/QueryResult.java rename to jablib/src/main/java/org/jabref/model/study/QueryResult.java diff --git a/src/main/java/org/jabref/model/study/Study.java b/jablib/src/main/java/org/jabref/model/study/Study.java similarity index 100% rename from src/main/java/org/jabref/model/study/Study.java rename to jablib/src/main/java/org/jabref/model/study/Study.java diff --git a/src/main/java/org/jabref/model/study/StudyDatabase.java b/jablib/src/main/java/org/jabref/model/study/StudyDatabase.java similarity index 100% rename from src/main/java/org/jabref/model/study/StudyDatabase.java rename to jablib/src/main/java/org/jabref/model/study/StudyDatabase.java diff --git a/src/main/java/org/jabref/model/study/StudyQuery.java b/jablib/src/main/java/org/jabref/model/study/StudyQuery.java similarity index 100% rename from src/main/java/org/jabref/model/study/StudyQuery.java rename to jablib/src/main/java/org/jabref/model/study/StudyQuery.java diff --git a/src/main/java/org/jabref/model/texparser/Citation.java b/jablib/src/main/java/org/jabref/model/texparser/Citation.java similarity index 100% rename from src/main/java/org/jabref/model/texparser/Citation.java rename to jablib/src/main/java/org/jabref/model/texparser/Citation.java diff --git a/src/main/java/org/jabref/model/texparser/LatexBibEntriesResolverResult.java b/jablib/src/main/java/org/jabref/model/texparser/LatexBibEntriesResolverResult.java similarity index 100% rename from src/main/java/org/jabref/model/texparser/LatexBibEntriesResolverResult.java rename to jablib/src/main/java/org/jabref/model/texparser/LatexBibEntriesResolverResult.java diff --git a/src/main/java/org/jabref/model/texparser/LatexParserResult.java b/jablib/src/main/java/org/jabref/model/texparser/LatexParserResult.java similarity index 100% rename from src/main/java/org/jabref/model/texparser/LatexParserResult.java rename to jablib/src/main/java/org/jabref/model/texparser/LatexParserResult.java diff --git a/src/main/java/org/jabref/model/texparser/LatexParserResults.java b/jablib/src/main/java/org/jabref/model/texparser/LatexParserResults.java similarity index 100% rename from src/main/java/org/jabref/model/texparser/LatexParserResults.java rename to jablib/src/main/java/org/jabref/model/texparser/LatexParserResults.java diff --git a/src/main/java/org/jabref/model/util/DummyFileUpdateMonitor.java b/jablib/src/main/java/org/jabref/model/util/DummyFileUpdateMonitor.java similarity index 100% rename from src/main/java/org/jabref/model/util/DummyFileUpdateMonitor.java rename to jablib/src/main/java/org/jabref/model/util/DummyFileUpdateMonitor.java diff --git a/src/main/java/org/jabref/model/util/FileUpdateListener.java b/jablib/src/main/java/org/jabref/model/util/FileUpdateListener.java similarity index 100% rename from src/main/java/org/jabref/model/util/FileUpdateListener.java rename to jablib/src/main/java/org/jabref/model/util/FileUpdateListener.java diff --git a/src/main/java/org/jabref/model/util/FileUpdateMonitor.java b/jablib/src/main/java/org/jabref/model/util/FileUpdateMonitor.java similarity index 100% rename from src/main/java/org/jabref/model/util/FileUpdateMonitor.java rename to jablib/src/main/java/org/jabref/model/util/FileUpdateMonitor.java diff --git a/src/main/java/org/jabref/model/util/ListUtil.java b/jablib/src/main/java/org/jabref/model/util/ListUtil.java similarity index 100% rename from src/main/java/org/jabref/model/util/ListUtil.java rename to jablib/src/main/java/org/jabref/model/util/ListUtil.java diff --git a/src/main/java/org/jabref/model/util/MultiKeyMap.java b/jablib/src/main/java/org/jabref/model/util/MultiKeyMap.java similarity index 100% rename from src/main/java/org/jabref/model/util/MultiKeyMap.java rename to jablib/src/main/java/org/jabref/model/util/MultiKeyMap.java diff --git a/src/main/java/org/jabref/model/util/OptionalUtil.java b/jablib/src/main/java/org/jabref/model/util/OptionalUtil.java similarity index 84% rename from src/main/java/org/jabref/model/util/OptionalUtil.java rename to jablib/src/main/java/org/jabref/model/util/OptionalUtil.java index d3610010af6..cb332f05fad 100644 --- a/src/main/java/org/jabref/model/util/OptionalUtil.java +++ b/jablib/src/main/java/org/jabref/model/util/OptionalUtil.java @@ -1,7 +1,6 @@ package org.jabref.model.util; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.function.BiFunction; @@ -13,26 +12,14 @@ public class OptionalUtil { public static boolean equals(Optional left, Optional right, BiPredicate equality) { - if (left.isEmpty()) { - return right.isEmpty(); - } else { - if (right.isPresent()) { - return equality.test(left.get(), right.get()); - } else { - return false; - } - } + return left.map(t -> right.filter(u -> equality.test(t, u)).isPresent()).orElseGet(right::isEmpty); } /** * @return An immutable list containing the value - if no value: empty immutable list */ public static List toList(Optional value) { - if (value.isPresent()) { - return Collections.singletonList(value.get()); - } else { - return Collections.emptyList(); - } + return value.map(List::of).orElseGet(List::of); } /** diff --git a/src/main/java/org/jabref/model/util/Range.java b/jablib/src/main/java/org/jabref/model/util/Range.java similarity index 100% rename from src/main/java/org/jabref/model/util/Range.java rename to jablib/src/main/java/org/jabref/model/util/Range.java diff --git a/src/main/java/org/jabref/model/util/ResultingStringState.java b/jablib/src/main/java/org/jabref/model/util/ResultingStringState.java similarity index 100% rename from src/main/java/org/jabref/model/util/ResultingStringState.java rename to jablib/src/main/java/org/jabref/model/util/ResultingStringState.java diff --git a/src/main/java/org/jabref/model/util/TreeCollector.java b/jablib/src/main/java/org/jabref/model/util/TreeCollector.java similarity index 100% rename from src/main/java/org/jabref/model/util/TreeCollector.java rename to jablib/src/main/java/org/jabref/model/util/TreeCollector.java diff --git a/src/main/resources/build.properties b/jablib/src/main/resources/build.properties similarity index 100% rename from src/main/resources/build.properties rename to jablib/src/main/resources/build.properties diff --git a/src/main/resources/csl-locales b/jablib/src/main/resources/csl-locales similarity index 100% rename from src/main/resources/csl-locales rename to jablib/src/main/resources/csl-locales diff --git a/src/main/resources/csl-styles b/jablib/src/main/resources/csl-styles similarity index 100% rename from src/main/resources/csl-styles rename to jablib/src/main/resources/csl-styles diff --git a/src/main/resources/l10n/JabRef_ar.properties b/jablib/src/main/resources/l10n/JabRef_ar.properties similarity index 100% rename from src/main/resources/l10n/JabRef_ar.properties rename to jablib/src/main/resources/l10n/JabRef_ar.properties diff --git a/src/main/resources/l10n/JabRef_da.properties b/jablib/src/main/resources/l10n/JabRef_da.properties similarity index 100% rename from src/main/resources/l10n/JabRef_da.properties rename to jablib/src/main/resources/l10n/JabRef_da.properties diff --git a/src/main/resources/l10n/JabRef_de.properties b/jablib/src/main/resources/l10n/JabRef_de.properties similarity index 100% rename from src/main/resources/l10n/JabRef_de.properties rename to jablib/src/main/resources/l10n/JabRef_de.properties diff --git a/src/main/resources/l10n/JabRef_el.properties b/jablib/src/main/resources/l10n/JabRef_el.properties similarity index 100% rename from src/main/resources/l10n/JabRef_el.properties rename to jablib/src/main/resources/l10n/JabRef_el.properties diff --git a/src/main/resources/l10n/JabRef_en.properties b/jablib/src/main/resources/l10n/JabRef_en.properties similarity index 100% rename from src/main/resources/l10n/JabRef_en.properties rename to jablib/src/main/resources/l10n/JabRef_en.properties diff --git a/src/main/resources/l10n/JabRef_es.properties b/jablib/src/main/resources/l10n/JabRef_es.properties similarity index 100% rename from src/main/resources/l10n/JabRef_es.properties rename to jablib/src/main/resources/l10n/JabRef_es.properties diff --git a/src/main/resources/l10n/JabRef_fa.properties b/jablib/src/main/resources/l10n/JabRef_fa.properties similarity index 100% rename from src/main/resources/l10n/JabRef_fa.properties rename to jablib/src/main/resources/l10n/JabRef_fa.properties diff --git a/src/main/resources/l10n/JabRef_fi.properties b/jablib/src/main/resources/l10n/JabRef_fi.properties similarity index 100% rename from src/main/resources/l10n/JabRef_fi.properties rename to jablib/src/main/resources/l10n/JabRef_fi.properties diff --git a/src/main/resources/l10n/JabRef_fr.properties b/jablib/src/main/resources/l10n/JabRef_fr.properties similarity index 100% rename from src/main/resources/l10n/JabRef_fr.properties rename to jablib/src/main/resources/l10n/JabRef_fr.properties diff --git a/src/main/resources/l10n/JabRef_id.properties b/jablib/src/main/resources/l10n/JabRef_id.properties similarity index 100% rename from src/main/resources/l10n/JabRef_id.properties rename to jablib/src/main/resources/l10n/JabRef_id.properties diff --git a/src/main/resources/l10n/JabRef_it.properties b/jablib/src/main/resources/l10n/JabRef_it.properties similarity index 100% rename from src/main/resources/l10n/JabRef_it.properties rename to jablib/src/main/resources/l10n/JabRef_it.properties diff --git a/src/main/resources/l10n/JabRef_ja.properties b/jablib/src/main/resources/l10n/JabRef_ja.properties similarity index 100% rename from src/main/resources/l10n/JabRef_ja.properties rename to jablib/src/main/resources/l10n/JabRef_ja.properties diff --git a/src/main/resources/l10n/JabRef_ko.properties b/jablib/src/main/resources/l10n/JabRef_ko.properties similarity index 100% rename from src/main/resources/l10n/JabRef_ko.properties rename to jablib/src/main/resources/l10n/JabRef_ko.properties diff --git a/src/main/resources/l10n/JabRef_nl.properties b/jablib/src/main/resources/l10n/JabRef_nl.properties similarity index 100% rename from src/main/resources/l10n/JabRef_nl.properties rename to jablib/src/main/resources/l10n/JabRef_nl.properties diff --git a/src/main/resources/l10n/JabRef_no.properties b/jablib/src/main/resources/l10n/JabRef_no.properties similarity index 100% rename from src/main/resources/l10n/JabRef_no.properties rename to jablib/src/main/resources/l10n/JabRef_no.properties diff --git a/src/main/resources/l10n/JabRef_pl.properties b/jablib/src/main/resources/l10n/JabRef_pl.properties similarity index 100% rename from src/main/resources/l10n/JabRef_pl.properties rename to jablib/src/main/resources/l10n/JabRef_pl.properties diff --git a/src/main/resources/l10n/JabRef_pt.properties b/jablib/src/main/resources/l10n/JabRef_pt.properties similarity index 100% rename from src/main/resources/l10n/JabRef_pt.properties rename to jablib/src/main/resources/l10n/JabRef_pt.properties diff --git a/src/main/resources/l10n/JabRef_pt_BR.properties b/jablib/src/main/resources/l10n/JabRef_pt_BR.properties similarity index 100% rename from src/main/resources/l10n/JabRef_pt_BR.properties rename to jablib/src/main/resources/l10n/JabRef_pt_BR.properties diff --git a/src/main/resources/l10n/JabRef_ru.properties b/jablib/src/main/resources/l10n/JabRef_ru.properties similarity index 100% rename from src/main/resources/l10n/JabRef_ru.properties rename to jablib/src/main/resources/l10n/JabRef_ru.properties diff --git a/src/main/resources/l10n/JabRef_sv.properties b/jablib/src/main/resources/l10n/JabRef_sv.properties similarity index 100% rename from src/main/resources/l10n/JabRef_sv.properties rename to jablib/src/main/resources/l10n/JabRef_sv.properties diff --git a/src/main/resources/l10n/JabRef_tl.properties b/jablib/src/main/resources/l10n/JabRef_tl.properties similarity index 100% rename from src/main/resources/l10n/JabRef_tl.properties rename to jablib/src/main/resources/l10n/JabRef_tl.properties diff --git a/src/main/resources/l10n/JabRef_tr.properties b/jablib/src/main/resources/l10n/JabRef_tr.properties similarity index 100% rename from src/main/resources/l10n/JabRef_tr.properties rename to jablib/src/main/resources/l10n/JabRef_tr.properties diff --git a/src/main/resources/l10n/JabRef_uk.properties b/jablib/src/main/resources/l10n/JabRef_uk.properties similarity index 100% rename from src/main/resources/l10n/JabRef_uk.properties rename to jablib/src/main/resources/l10n/JabRef_uk.properties diff --git a/src/main/resources/l10n/JabRef_vi.properties b/jablib/src/main/resources/l10n/JabRef_vi.properties similarity index 100% rename from src/main/resources/l10n/JabRef_vi.properties rename to jablib/src/main/resources/l10n/JabRef_vi.properties diff --git a/src/main/resources/l10n/JabRef_zh_CN.properties b/jablib/src/main/resources/l10n/JabRef_zh_CN.properties similarity index 100% rename from src/main/resources/l10n/JabRef_zh_CN.properties rename to jablib/src/main/resources/l10n/JabRef_zh_CN.properties diff --git a/src/main/resources/l10n/JabRef_zh_TW.properties b/jablib/src/main/resources/l10n/JabRef_zh_TW.properties similarity index 100% rename from src/main/resources/l10n/JabRef_zh_TW.properties rename to jablib/src/main/resources/l10n/JabRef_zh_TW.properties diff --git a/src/main/resources/org/jabref/logic/git/git.gitignore b/jablib/src/main/resources/org/jabref/logic/git/git.gitignore similarity index 100% rename from src/main/resources/org/jabref/logic/git/git.gitignore rename to jablib/src/main/resources/org/jabref/logic/git/git.gitignore diff --git a/src/main/resources/protectedterms/computer_science.terms b/jablib/src/main/resources/protectedterms/computer_science.terms similarity index 100% rename from src/main/resources/protectedterms/computer_science.terms rename to jablib/src/main/resources/protectedterms/computer_science.terms diff --git a/src/main/resources/protectedterms/countries_territories.terms b/jablib/src/main/resources/protectedterms/countries_territories.terms similarity index 100% rename from src/main/resources/protectedterms/countries_territories.terms rename to jablib/src/main/resources/protectedterms/countries_territories.terms diff --git a/src/main/resources/protectedterms/electrical_engineering.terms b/jablib/src/main/resources/protectedterms/electrical_engineering.terms similarity index 100% rename from src/main/resources/protectedterms/electrical_engineering.terms rename to jablib/src/main/resources/protectedterms/electrical_engineering.terms diff --git a/src/main/resources/protectedterms/months_weekdays.terms b/jablib/src/main/resources/protectedterms/months_weekdays.terms similarity index 100% rename from src/main/resources/protectedterms/months_weekdays.terms rename to jablib/src/main/resources/protectedterms/months_weekdays.terms diff --git a/src/main/resources/resource/layout/bibordf.article.layout b/jablib/src/main/resources/resource/layout/bibordf.article.layout similarity index 100% rename from src/main/resources/resource/layout/bibordf.article.layout rename to jablib/src/main/resources/resource/layout/bibordf.article.layout diff --git a/src/main/resources/resource/layout/bibordf.begin.layout b/jablib/src/main/resources/resource/layout/bibordf.begin.layout similarity index 100% rename from src/main/resources/resource/layout/bibordf.begin.layout rename to jablib/src/main/resources/resource/layout/bibordf.begin.layout diff --git a/src/main/resources/resource/layout/bibordf.end.layout b/jablib/src/main/resources/resource/layout/bibordf.end.layout similarity index 100% rename from src/main/resources/resource/layout/bibordf.end.layout rename to jablib/src/main/resources/resource/layout/bibordf.end.layout diff --git a/src/main/resources/resource/layout/bibordf.layout b/jablib/src/main/resources/resource/layout/bibordf.layout similarity index 100% rename from src/main/resources/resource/layout/bibordf.layout rename to jablib/src/main/resources/resource/layout/bibordf.layout diff --git a/src/main/resources/resource/layout/din1505/README.txt b/jablib/src/main/resources/resource/layout/din1505/README.txt similarity index 100% rename from src/main/resources/resource/layout/din1505/README.txt rename to jablib/src/main/resources/resource/layout/din1505/README.txt diff --git a/src/main/resources/resource/layout/din1505/din1505winword.article.layout b/jablib/src/main/resources/resource/layout/din1505/din1505winword.article.layout similarity index 100% rename from src/main/resources/resource/layout/din1505/din1505winword.article.layout rename to jablib/src/main/resources/resource/layout/din1505/din1505winword.article.layout diff --git a/src/main/resources/resource/layout/din1505/din1505winword.begin.layout b/jablib/src/main/resources/resource/layout/din1505/din1505winword.begin.layout similarity index 100% rename from src/main/resources/resource/layout/din1505/din1505winword.begin.layout rename to jablib/src/main/resources/resource/layout/din1505/din1505winword.begin.layout diff --git a/src/main/resources/resource/layout/din1505/din1505winword.conference.layout b/jablib/src/main/resources/resource/layout/din1505/din1505winword.conference.layout similarity index 100% rename from src/main/resources/resource/layout/din1505/din1505winword.conference.layout rename to jablib/src/main/resources/resource/layout/din1505/din1505winword.conference.layout diff --git a/src/main/resources/resource/layout/din1505/din1505winword.end.layout b/jablib/src/main/resources/resource/layout/din1505/din1505winword.end.layout similarity index 100% rename from src/main/resources/resource/layout/din1505/din1505winword.end.layout rename to jablib/src/main/resources/resource/layout/din1505/din1505winword.end.layout diff --git a/src/main/resources/resource/layout/din1505/din1505winword.inproceedings.layout b/jablib/src/main/resources/resource/layout/din1505/din1505winword.inproceedings.layout similarity index 100% rename from src/main/resources/resource/layout/din1505/din1505winword.inproceedings.layout rename to jablib/src/main/resources/resource/layout/din1505/din1505winword.inproceedings.layout diff --git a/src/main/resources/resource/layout/din1505/din1505winword.layout b/jablib/src/main/resources/resource/layout/din1505/din1505winword.layout similarity index 100% rename from src/main/resources/resource/layout/din1505/din1505winword.layout rename to jablib/src/main/resources/resource/layout/din1505/din1505winword.layout diff --git a/src/main/resources/resource/layout/docbook4.begin.layout b/jablib/src/main/resources/resource/layout/docbook4.begin.layout similarity index 100% rename from src/main/resources/resource/layout/docbook4.begin.layout rename to jablib/src/main/resources/resource/layout/docbook4.begin.layout diff --git a/src/main/resources/resource/layout/docbook4.end.layout b/jablib/src/main/resources/resource/layout/docbook4.end.layout similarity index 100% rename from src/main/resources/resource/layout/docbook4.end.layout rename to jablib/src/main/resources/resource/layout/docbook4.end.layout diff --git a/src/main/resources/resource/layout/docbook4.layout b/jablib/src/main/resources/resource/layout/docbook4.layout similarity index 100% rename from src/main/resources/resource/layout/docbook4.layout rename to jablib/src/main/resources/resource/layout/docbook4.layout diff --git a/src/main/resources/resource/layout/docbook4.mastersthesis.layout b/jablib/src/main/resources/resource/layout/docbook4.mastersthesis.layout similarity index 100% rename from src/main/resources/resource/layout/docbook4.mastersthesis.layout rename to jablib/src/main/resources/resource/layout/docbook4.mastersthesis.layout diff --git a/src/main/resources/resource/layout/docbook5.article.layout b/jablib/src/main/resources/resource/layout/docbook5.article.layout similarity index 100% rename from src/main/resources/resource/layout/docbook5.article.layout rename to jablib/src/main/resources/resource/layout/docbook5.article.layout diff --git a/src/main/resources/resource/layout/docbook5.begin.layout b/jablib/src/main/resources/resource/layout/docbook5.begin.layout similarity index 100% rename from src/main/resources/resource/layout/docbook5.begin.layout rename to jablib/src/main/resources/resource/layout/docbook5.begin.layout diff --git a/src/main/resources/resource/layout/docbook5.book.layout b/jablib/src/main/resources/resource/layout/docbook5.book.layout similarity index 100% rename from src/main/resources/resource/layout/docbook5.book.layout rename to jablib/src/main/resources/resource/layout/docbook5.book.layout diff --git a/src/main/resources/resource/layout/docbook5.booklet.layout b/jablib/src/main/resources/resource/layout/docbook5.booklet.layout similarity index 100% rename from src/main/resources/resource/layout/docbook5.booklet.layout rename to jablib/src/main/resources/resource/layout/docbook5.booklet.layout diff --git a/src/main/resources/resource/layout/docbook5.collection.layout b/jablib/src/main/resources/resource/layout/docbook5.collection.layout similarity index 100% rename from src/main/resources/resource/layout/docbook5.collection.layout rename to jablib/src/main/resources/resource/layout/docbook5.collection.layout diff --git a/src/main/resources/resource/layout/docbook5.end.layout b/jablib/src/main/resources/resource/layout/docbook5.end.layout similarity index 100% rename from src/main/resources/resource/layout/docbook5.end.layout rename to jablib/src/main/resources/resource/layout/docbook5.end.layout diff --git a/src/main/resources/resource/layout/docbook5.inbook.layout b/jablib/src/main/resources/resource/layout/docbook5.inbook.layout similarity index 100% rename from src/main/resources/resource/layout/docbook5.inbook.layout rename to jablib/src/main/resources/resource/layout/docbook5.inbook.layout diff --git a/src/main/resources/resource/layout/docbook5.incollection.layout b/jablib/src/main/resources/resource/layout/docbook5.incollection.layout similarity index 100% rename from src/main/resources/resource/layout/docbook5.incollection.layout rename to jablib/src/main/resources/resource/layout/docbook5.incollection.layout diff --git a/src/main/resources/resource/layout/docbook5.layout b/jablib/src/main/resources/resource/layout/docbook5.layout similarity index 100% rename from src/main/resources/resource/layout/docbook5.layout rename to jablib/src/main/resources/resource/layout/docbook5.layout diff --git a/src/main/resources/resource/layout/docbook5.phdthesis.layout b/jablib/src/main/resources/resource/layout/docbook5.phdthesis.layout similarity index 100% rename from src/main/resources/resource/layout/docbook5.phdthesis.layout rename to jablib/src/main/resources/resource/layout/docbook5.phdthesis.layout diff --git a/src/main/resources/resource/layout/docbook5.www.layout b/jablib/src/main/resources/resource/layout/docbook5.www.layout similarity index 100% rename from src/main/resources/resource/layout/docbook5.www.layout rename to jablib/src/main/resources/resource/layout/docbook5.www.layout diff --git a/src/main/resources/resource/layout/endnote/EndNote.article.layout b/jablib/src/main/resources/resource/layout/endnote/EndNote.article.layout similarity index 100% rename from src/main/resources/resource/layout/endnote/EndNote.article.layout rename to jablib/src/main/resources/resource/layout/endnote/EndNote.article.layout diff --git a/src/main/resources/resource/layout/endnote/EndNote.book.layout b/jablib/src/main/resources/resource/layout/endnote/EndNote.book.layout similarity index 100% rename from src/main/resources/resource/layout/endnote/EndNote.book.layout rename to jablib/src/main/resources/resource/layout/endnote/EndNote.book.layout diff --git a/src/main/resources/resource/layout/endnote/EndNote.booklet.layout b/jablib/src/main/resources/resource/layout/endnote/EndNote.booklet.layout similarity index 100% rename from src/main/resources/resource/layout/endnote/EndNote.booklet.layout rename to jablib/src/main/resources/resource/layout/endnote/EndNote.booklet.layout diff --git a/src/main/resources/resource/layout/endnote/EndNote.inbook.layout b/jablib/src/main/resources/resource/layout/endnote/EndNote.inbook.layout similarity index 100% rename from src/main/resources/resource/layout/endnote/EndNote.inbook.layout rename to jablib/src/main/resources/resource/layout/endnote/EndNote.inbook.layout diff --git a/src/main/resources/resource/layout/endnote/EndNote.incollection.layout b/jablib/src/main/resources/resource/layout/endnote/EndNote.incollection.layout similarity index 100% rename from src/main/resources/resource/layout/endnote/EndNote.incollection.layout rename to jablib/src/main/resources/resource/layout/endnote/EndNote.incollection.layout diff --git a/src/main/resources/resource/layout/endnote/EndNote.inproceedings.layout b/jablib/src/main/resources/resource/layout/endnote/EndNote.inproceedings.layout similarity index 100% rename from src/main/resources/resource/layout/endnote/EndNote.inproceedings.layout rename to jablib/src/main/resources/resource/layout/endnote/EndNote.inproceedings.layout diff --git a/src/main/resources/resource/layout/endnote/EndNote.layout b/jablib/src/main/resources/resource/layout/endnote/EndNote.layout similarity index 100% rename from src/main/resources/resource/layout/endnote/EndNote.layout rename to jablib/src/main/resources/resource/layout/endnote/EndNote.layout diff --git a/src/main/resources/resource/layout/endnote/EndNote.manual.layout b/jablib/src/main/resources/resource/layout/endnote/EndNote.manual.layout similarity index 100% rename from src/main/resources/resource/layout/endnote/EndNote.manual.layout rename to jablib/src/main/resources/resource/layout/endnote/EndNote.manual.layout diff --git a/src/main/resources/resource/layout/endnote/EndNote.mastersthesis.layout b/jablib/src/main/resources/resource/layout/endnote/EndNote.mastersthesis.layout similarity index 100% rename from src/main/resources/resource/layout/endnote/EndNote.mastersthesis.layout rename to jablib/src/main/resources/resource/layout/endnote/EndNote.mastersthesis.layout diff --git a/src/main/resources/resource/layout/endnote/EndNote.misc.layout b/jablib/src/main/resources/resource/layout/endnote/EndNote.misc.layout similarity index 100% rename from src/main/resources/resource/layout/endnote/EndNote.misc.layout rename to jablib/src/main/resources/resource/layout/endnote/EndNote.misc.layout diff --git a/src/main/resources/resource/layout/endnote/EndNote.other.layout b/jablib/src/main/resources/resource/layout/endnote/EndNote.other.layout similarity index 100% rename from src/main/resources/resource/layout/endnote/EndNote.other.layout rename to jablib/src/main/resources/resource/layout/endnote/EndNote.other.layout diff --git a/src/main/resources/resource/layout/endnote/EndNote.phdthesis.layout b/jablib/src/main/resources/resource/layout/endnote/EndNote.phdthesis.layout similarity index 100% rename from src/main/resources/resource/layout/endnote/EndNote.phdthesis.layout rename to jablib/src/main/resources/resource/layout/endnote/EndNote.phdthesis.layout diff --git a/src/main/resources/resource/layout/endnote/EndNote.proceedings.layout b/jablib/src/main/resources/resource/layout/endnote/EndNote.proceedings.layout similarity index 100% rename from src/main/resources/resource/layout/endnote/EndNote.proceedings.layout rename to jablib/src/main/resources/resource/layout/endnote/EndNote.proceedings.layout diff --git a/src/main/resources/resource/layout/endnote/EndNote.techreport.layout b/jablib/src/main/resources/resource/layout/endnote/EndNote.techreport.layout similarity index 100% rename from src/main/resources/resource/layout/endnote/EndNote.techreport.layout rename to jablib/src/main/resources/resource/layout/endnote/EndNote.techreport.layout diff --git a/src/main/resources/resource/layout/endnote/EndNote.unpublished.layout b/jablib/src/main/resources/resource/layout/endnote/EndNote.unpublished.layout similarity index 100% rename from src/main/resources/resource/layout/endnote/EndNote.unpublished.layout rename to jablib/src/main/resources/resource/layout/endnote/EndNote.unpublished.layout diff --git a/src/main/resources/resource/layout/endnote/Readme.txt b/jablib/src/main/resources/resource/layout/endnote/Readme.txt similarity index 100% rename from src/main/resources/resource/layout/endnote/Readme.txt rename to jablib/src/main/resources/resource/layout/endnote/Readme.txt diff --git a/src/main/resources/resource/layout/harvard/harvard.article.layout b/jablib/src/main/resources/resource/layout/harvard/harvard.article.layout similarity index 100% rename from src/main/resources/resource/layout/harvard/harvard.article.layout rename to jablib/src/main/resources/resource/layout/harvard/harvard.article.layout diff --git a/src/main/resources/resource/layout/harvard/harvard.begin.layout b/jablib/src/main/resources/resource/layout/harvard/harvard.begin.layout similarity index 100% rename from src/main/resources/resource/layout/harvard/harvard.begin.layout rename to jablib/src/main/resources/resource/layout/harvard/harvard.begin.layout diff --git a/src/main/resources/resource/layout/harvard/harvard.book.layout b/jablib/src/main/resources/resource/layout/harvard/harvard.book.layout similarity index 100% rename from src/main/resources/resource/layout/harvard/harvard.book.layout rename to jablib/src/main/resources/resource/layout/harvard/harvard.book.layout diff --git a/src/main/resources/resource/layout/harvard/harvard.end.layout b/jablib/src/main/resources/resource/layout/harvard/harvard.end.layout similarity index 100% rename from src/main/resources/resource/layout/harvard/harvard.end.layout rename to jablib/src/main/resources/resource/layout/harvard/harvard.end.layout diff --git a/src/main/resources/resource/layout/harvard/harvard.inbook.layout b/jablib/src/main/resources/resource/layout/harvard/harvard.inbook.layout similarity index 100% rename from src/main/resources/resource/layout/harvard/harvard.inbook.layout rename to jablib/src/main/resources/resource/layout/harvard/harvard.inbook.layout diff --git a/src/main/resources/resource/layout/harvard/harvard.incollection.layout b/jablib/src/main/resources/resource/layout/harvard/harvard.incollection.layout similarity index 100% rename from src/main/resources/resource/layout/harvard/harvard.incollection.layout rename to jablib/src/main/resources/resource/layout/harvard/harvard.incollection.layout diff --git a/src/main/resources/resource/layout/harvard/harvard.inproceedings.layout b/jablib/src/main/resources/resource/layout/harvard/harvard.inproceedings.layout similarity index 100% rename from src/main/resources/resource/layout/harvard/harvard.inproceedings.layout rename to jablib/src/main/resources/resource/layout/harvard/harvard.inproceedings.layout diff --git a/src/main/resources/resource/layout/harvard/harvard.layout b/jablib/src/main/resources/resource/layout/harvard/harvard.layout similarity index 100% rename from src/main/resources/resource/layout/harvard/harvard.layout rename to jablib/src/main/resources/resource/layout/harvard/harvard.layout diff --git a/src/main/resources/resource/layout/harvard/harvard.mastersthesis.layout b/jablib/src/main/resources/resource/layout/harvard/harvard.mastersthesis.layout similarity index 100% rename from src/main/resources/resource/layout/harvard/harvard.mastersthesis.layout rename to jablib/src/main/resources/resource/layout/harvard/harvard.mastersthesis.layout diff --git a/src/main/resources/resource/layout/harvard/harvard.phdthesis.layout b/jablib/src/main/resources/resource/layout/harvard/harvard.phdthesis.layout similarity index 100% rename from src/main/resources/resource/layout/harvard/harvard.phdthesis.layout rename to jablib/src/main/resources/resource/layout/harvard/harvard.phdthesis.layout diff --git a/src/main/resources/resource/layout/harvard/harvard.proceedings.layout b/jablib/src/main/resources/resource/layout/harvard/harvard.proceedings.layout similarity index 100% rename from src/main/resources/resource/layout/harvard/harvard.proceedings.layout rename to jablib/src/main/resources/resource/layout/harvard/harvard.proceedings.layout diff --git a/src/main/resources/resource/layout/harvard/harvard.readme b/jablib/src/main/resources/resource/layout/harvard/harvard.readme similarity index 100% rename from src/main/resources/resource/layout/harvard/harvard.readme rename to jablib/src/main/resources/resource/layout/harvard/harvard.readme diff --git a/src/main/resources/resource/layout/hayagrivayaml.begin.layout b/jablib/src/main/resources/resource/layout/hayagrivayaml.begin.layout similarity index 100% rename from src/main/resources/resource/layout/hayagrivayaml.begin.layout rename to jablib/src/main/resources/resource/layout/hayagrivayaml.begin.layout diff --git a/src/main/resources/resource/layout/hayagrivayaml.end.layout b/jablib/src/main/resources/resource/layout/hayagrivayaml.end.layout similarity index 100% rename from src/main/resources/resource/layout/hayagrivayaml.end.layout rename to jablib/src/main/resources/resource/layout/hayagrivayaml.end.layout diff --git a/src/main/resources/resource/layout/hayagrivayaml.layout b/jablib/src/main/resources/resource/layout/hayagrivayaml.layout similarity index 100% rename from src/main/resources/resource/layout/hayagrivayaml.layout rename to jablib/src/main/resources/resource/layout/hayagrivayaml.layout diff --git a/src/main/resources/resource/layout/html.begin.layout b/jablib/src/main/resources/resource/layout/html.begin.layout similarity index 100% rename from src/main/resources/resource/layout/html.begin.layout rename to jablib/src/main/resources/resource/layout/html.begin.layout diff --git a/src/main/resources/resource/layout/html.book.layout b/jablib/src/main/resources/resource/layout/html.book.layout similarity index 100% rename from src/main/resources/resource/layout/html.book.layout rename to jablib/src/main/resources/resource/layout/html.book.layout diff --git a/src/main/resources/resource/layout/html.end.layout b/jablib/src/main/resources/resource/layout/html.end.layout similarity index 100% rename from src/main/resources/resource/layout/html.end.layout rename to jablib/src/main/resources/resource/layout/html.end.layout diff --git a/src/main/resources/resource/layout/html.inbook.layout b/jablib/src/main/resources/resource/layout/html.inbook.layout similarity index 100% rename from src/main/resources/resource/layout/html.inbook.layout rename to jablib/src/main/resources/resource/layout/html.inbook.layout diff --git a/src/main/resources/resource/layout/html.inproceedings.layout b/jablib/src/main/resources/resource/layout/html.inproceedings.layout similarity index 100% rename from src/main/resources/resource/layout/html.inproceedings.layout rename to jablib/src/main/resources/resource/layout/html.inproceedings.layout diff --git a/src/main/resources/resource/layout/html.layout b/jablib/src/main/resources/resource/layout/html.layout similarity index 100% rename from src/main/resources/resource/layout/html.layout rename to jablib/src/main/resources/resource/layout/html.layout diff --git a/src/main/resources/resource/layout/html.mastersthesis.layout b/jablib/src/main/resources/resource/layout/html.mastersthesis.layout similarity index 100% rename from src/main/resources/resource/layout/html.mastersthesis.layout rename to jablib/src/main/resources/resource/layout/html.mastersthesis.layout diff --git a/src/main/resources/resource/layout/html.phdthesis.layout b/jablib/src/main/resources/resource/layout/html.phdthesis.layout similarity index 100% rename from src/main/resources/resource/layout/html.phdthesis.layout rename to jablib/src/main/resources/resource/layout/html.phdthesis.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.article.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.article.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.article.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.article.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.begin.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.begin.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.begin.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.begin.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.book.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.book.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.book.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.book.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.edocs.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.edocs.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.edocs.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.edocs.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.edocsarticle.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.edocsarticle.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.edocsarticle.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.edocsarticle.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.edocscontribution.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.edocscontribution.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.edocscontribution.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.edocscontribution.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.edocsnews.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.edocsnews.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.edocsnews.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.edocsnews.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.edocsperiodical.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.edocsperiodical.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.edocsperiodical.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.edocsperiodical.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.email.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.email.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.email.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.email.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.emaillist.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.emaillist.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.emaillist.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.emaillist.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.end.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.end.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.end.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.end.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.graphics.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.graphics.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.graphics.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.graphics.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.inbook.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.inbook.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.inbook.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.inbook.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.inedocs.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.inedocs.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.inedocs.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.inedocs.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.inproceedings.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.inproceedings.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.inproceedings.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.inproceedings.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.legislation.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.legislation.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.legislation.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.legislation.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.mastersthesis.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.mastersthesis.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.mastersthesis.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.mastersthesis.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.patent.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.patent.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.patent.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.patent.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.periodical.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.periodical.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.periodical.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.periodical.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.proceeding.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.proceeding.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.proceeding.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.proceeding.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.radiotv.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.radiotv.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.radiotv.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.radiotv.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.recording.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.recording.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.recording.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.recording.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.standard.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.standard.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.standard.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.standard.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.techreport.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.techreport.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.techreport.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.techreport.layout diff --git a/src/main/resources/resource/layout/iso690rtf/iso690RTF.unpublished.layout b/jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.unpublished.layout similarity index 100% rename from src/main/resources/resource/layout/iso690rtf/iso690RTF.unpublished.layout rename to jablib/src/main/resources/resource/layout/iso690rtf/iso690RTF.unpublished.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.article.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.article.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.article.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.article.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.book.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.book.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.book.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.book.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.edocs.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.edocs.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.edocs.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.edocs.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.edocsarticle.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.edocsarticle.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.edocsarticle.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.edocsarticle.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.edocscontribution.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.edocscontribution.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.edocscontribution.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.edocscontribution.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.edocsnews.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.edocsnews.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.edocsnews.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.edocsnews.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.edocsperiodical.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.edocsperiodical.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.edocsperiodical.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.edocsperiodical.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.email.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.email.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.email.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.email.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.emaillist.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.emaillist.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.emaillist.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.emaillist.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.graphics.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.graphics.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.graphics.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.graphics.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.inbook.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.inbook.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.inbook.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.inbook.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.inedocs.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.inedocs.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.inedocs.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.inedocs.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.inproceedings.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.inproceedings.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.inproceedings.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.inproceedings.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.legislation.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.legislation.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.legislation.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.legislation.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.mastersthesis.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.mastersthesis.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.mastersthesis.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.mastersthesis.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.patent.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.patent.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.patent.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.patent.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.periodical.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.periodical.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.periodical.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.periodical.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.proceeding.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.proceeding.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.proceeding.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.proceeding.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.radiotv.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.radiotv.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.radiotv.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.radiotv.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.recording.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.recording.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.recording.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.recording.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.standard.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.standard.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.standard.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.standard.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.techreport.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.techreport.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.techreport.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.techreport.layout diff --git a/src/main/resources/resource/layout/iso690txt/iso690.unpublished.layout b/jablib/src/main/resources/resource/layout/iso690txt/iso690.unpublished.layout similarity index 100% rename from src/main/resources/resource/layout/iso690txt/iso690.unpublished.layout rename to jablib/src/main/resources/resource/layout/iso690txt/iso690.unpublished.layout diff --git a/src/main/resources/resource/layout/listrefs/listrefs.begin.layout b/jablib/src/main/resources/resource/layout/listrefs/listrefs.begin.layout similarity index 100% rename from src/main/resources/resource/layout/listrefs/listrefs.begin.layout rename to jablib/src/main/resources/resource/layout/listrefs/listrefs.begin.layout diff --git a/src/main/resources/resource/layout/listrefs/listrefs.end.layout b/jablib/src/main/resources/resource/layout/listrefs/listrefs.end.layout similarity index 100% rename from src/main/resources/resource/layout/listrefs/listrefs.end.layout rename to jablib/src/main/resources/resource/layout/listrefs/listrefs.end.layout diff --git a/src/main/resources/resource/layout/listrefs/listrefs.layout b/jablib/src/main/resources/resource/layout/listrefs/listrefs.layout similarity index 100% rename from src/main/resources/resource/layout/listrefs/listrefs.layout rename to jablib/src/main/resources/resource/layout/listrefs/listrefs.layout diff --git a/src/main/resources/resource/layout/listrefs/listrefs.misc.layout b/jablib/src/main/resources/resource/layout/listrefs/listrefs.misc.layout similarity index 100% rename from src/main/resources/resource/layout/listrefs/listrefs.misc.layout rename to jablib/src/main/resources/resource/layout/listrefs/listrefs.misc.layout diff --git a/src/main/resources/resource/layout/misq/misq.article.layout b/jablib/src/main/resources/resource/layout/misq/misq.article.layout similarity index 100% rename from src/main/resources/resource/layout/misq/misq.article.layout rename to jablib/src/main/resources/resource/layout/misq/misq.article.layout diff --git a/src/main/resources/resource/layout/misq/misq.begin.layout b/jablib/src/main/resources/resource/layout/misq/misq.begin.layout similarity index 100% rename from src/main/resources/resource/layout/misq/misq.begin.layout rename to jablib/src/main/resources/resource/layout/misq/misq.begin.layout diff --git a/src/main/resources/resource/layout/misq/misq.book.layout b/jablib/src/main/resources/resource/layout/misq/misq.book.layout similarity index 100% rename from src/main/resources/resource/layout/misq/misq.book.layout rename to jablib/src/main/resources/resource/layout/misq/misq.book.layout diff --git a/src/main/resources/resource/layout/misq/misq.end.layout b/jablib/src/main/resources/resource/layout/misq/misq.end.layout similarity index 100% rename from src/main/resources/resource/layout/misq/misq.end.layout rename to jablib/src/main/resources/resource/layout/misq/misq.end.layout diff --git a/src/main/resources/resource/layout/misq/misq.layout b/jablib/src/main/resources/resource/layout/misq/misq.layout similarity index 100% rename from src/main/resources/resource/layout/misq/misq.layout rename to jablib/src/main/resources/resource/layout/misq/misq.layout diff --git a/src/main/resources/resource/layout/misq/readme.txt b/jablib/src/main/resources/resource/layout/misq/readme.txt similarity index 100% rename from src/main/resources/resource/layout/misq/readme.txt rename to jablib/src/main/resources/resource/layout/misq/readme.txt diff --git a/src/main/resources/resource/layout/openoffice/README b/jablib/src/main/resources/resource/layout/openoffice/README similarity index 100% rename from src/main/resources/resource/layout/openoffice/README rename to jablib/src/main/resources/resource/layout/openoffice/README diff --git a/src/main/resources/resource/layout/openoffice/openoffice-csv.begin.layout b/jablib/src/main/resources/resource/layout/openoffice/openoffice-csv.begin.layout similarity index 100% rename from src/main/resources/resource/layout/openoffice/openoffice-csv.begin.layout rename to jablib/src/main/resources/resource/layout/openoffice/openoffice-csv.begin.layout diff --git a/src/main/resources/resource/layout/openoffice/openoffice-csv.layout b/jablib/src/main/resources/resource/layout/openoffice/openoffice-csv.layout similarity index 100% rename from src/main/resources/resource/layout/openoffice/openoffice-csv.layout rename to jablib/src/main/resources/resource/layout/openoffice/openoffice-csv.layout diff --git a/src/main/resources/resource/layout/ris/ris.article.layout b/jablib/src/main/resources/resource/layout/ris/ris.article.layout similarity index 100% rename from src/main/resources/resource/layout/ris/ris.article.layout rename to jablib/src/main/resources/resource/layout/ris/ris.article.layout diff --git a/src/main/resources/resource/layout/ris/ris.book.layout b/jablib/src/main/resources/resource/layout/ris/ris.book.layout similarity index 100% rename from src/main/resources/resource/layout/ris/ris.book.layout rename to jablib/src/main/resources/resource/layout/ris/ris.book.layout diff --git a/src/main/resources/resource/layout/ris/ris.conference.layout b/jablib/src/main/resources/resource/layout/ris/ris.conference.layout similarity index 100% rename from src/main/resources/resource/layout/ris/ris.conference.layout rename to jablib/src/main/resources/resource/layout/ris/ris.conference.layout diff --git a/src/main/resources/resource/layout/ris/ris.incollection.layout b/jablib/src/main/resources/resource/layout/ris/ris.incollection.layout similarity index 100% rename from src/main/resources/resource/layout/ris/ris.incollection.layout rename to jablib/src/main/resources/resource/layout/ris/ris.incollection.layout diff --git a/src/main/resources/resource/layout/ris/ris.inproceedings.layout b/jablib/src/main/resources/resource/layout/ris/ris.inproceedings.layout similarity index 100% rename from src/main/resources/resource/layout/ris/ris.inproceedings.layout rename to jablib/src/main/resources/resource/layout/ris/ris.inproceedings.layout diff --git a/src/main/resources/resource/layout/ris/ris.layout b/jablib/src/main/resources/resource/layout/ris/ris.layout similarity index 100% rename from src/main/resources/resource/layout/ris/ris.layout rename to jablib/src/main/resources/resource/layout/ris/ris.layout diff --git a/src/main/resources/resource/layout/ris/ris.mastersthesis.layout b/jablib/src/main/resources/resource/layout/ris/ris.mastersthesis.layout similarity index 100% rename from src/main/resources/resource/layout/ris/ris.mastersthesis.layout rename to jablib/src/main/resources/resource/layout/ris/ris.mastersthesis.layout diff --git a/src/main/resources/resource/layout/ris/ris.patent.layout b/jablib/src/main/resources/resource/layout/ris/ris.patent.layout similarity index 100% rename from src/main/resources/resource/layout/ris/ris.patent.layout rename to jablib/src/main/resources/resource/layout/ris/ris.patent.layout diff --git a/src/main/resources/resource/layout/ris/ris.phdthesis.layout b/jablib/src/main/resources/resource/layout/ris/ris.phdthesis.layout similarity index 100% rename from src/main/resources/resource/layout/ris/ris.phdthesis.layout rename to jablib/src/main/resources/resource/layout/ris/ris.phdthesis.layout diff --git a/src/main/resources/resource/layout/ris/ris.techreport.layout b/jablib/src/main/resources/resource/layout/ris/ris.techreport.layout similarity index 100% rename from src/main/resources/resource/layout/ris/ris.techreport.layout rename to jablib/src/main/resources/resource/layout/ris/ris.techreport.layout diff --git a/src/main/resources/resource/layout/ris/ris.unpublished.layout b/jablib/src/main/resources/resource/layout/ris/ris.unpublished.layout similarity index 100% rename from src/main/resources/resource/layout/ris/ris.unpublished.layout rename to jablib/src/main/resources/resource/layout/ris/ris.unpublished.layout diff --git a/src/main/resources/resource/layout/ris/ris.www.layout b/jablib/src/main/resources/resource/layout/ris/ris.www.layout similarity index 100% rename from src/main/resources/resource/layout/ris/ris.www.layout rename to jablib/src/main/resources/resource/layout/ris/ris.www.layout diff --git a/src/main/resources/resource/layout/simplehtml.begin.layout b/jablib/src/main/resources/resource/layout/simplehtml.begin.layout similarity index 100% rename from src/main/resources/resource/layout/simplehtml.begin.layout rename to jablib/src/main/resources/resource/layout/simplehtml.begin.layout diff --git a/src/main/resources/resource/layout/simplehtml.end.layout b/jablib/src/main/resources/resource/layout/simplehtml.end.layout similarity index 100% rename from src/main/resources/resource/layout/simplehtml.end.layout rename to jablib/src/main/resources/resource/layout/simplehtml.end.layout diff --git a/src/main/resources/resource/layout/simplehtml.layout b/jablib/src/main/resources/resource/layout/simplehtml.layout similarity index 100% rename from src/main/resources/resource/layout/simplehtml.layout rename to jablib/src/main/resources/resource/layout/simplehtml.layout diff --git a/src/main/resources/resource/layout/tablerefs/tablerefs.begin.layout b/jablib/src/main/resources/resource/layout/tablerefs/tablerefs.begin.layout similarity index 100% rename from src/main/resources/resource/layout/tablerefs/tablerefs.begin.layout rename to jablib/src/main/resources/resource/layout/tablerefs/tablerefs.begin.layout diff --git a/src/main/resources/resource/layout/tablerefs/tablerefs.end.layout b/jablib/src/main/resources/resource/layout/tablerefs/tablerefs.end.layout similarity index 100% rename from src/main/resources/resource/layout/tablerefs/tablerefs.end.layout rename to jablib/src/main/resources/resource/layout/tablerefs/tablerefs.end.layout diff --git a/src/main/resources/resource/layout/tablerefs/tablerefs.layout b/jablib/src/main/resources/resource/layout/tablerefs/tablerefs.layout similarity index 100% rename from src/main/resources/resource/layout/tablerefs/tablerefs.layout rename to jablib/src/main/resources/resource/layout/tablerefs/tablerefs.layout diff --git a/src/main/resources/resource/layout/tablerefsabsbib/tablerefsabsbib.begin.layout b/jablib/src/main/resources/resource/layout/tablerefsabsbib/tablerefsabsbib.begin.layout similarity index 100% rename from src/main/resources/resource/layout/tablerefsabsbib/tablerefsabsbib.begin.layout rename to jablib/src/main/resources/resource/layout/tablerefsabsbib/tablerefsabsbib.begin.layout diff --git a/src/main/resources/resource/layout/tablerefsabsbib/tablerefsabsbib.end.layout b/jablib/src/main/resources/resource/layout/tablerefsabsbib/tablerefsabsbib.end.layout similarity index 100% rename from src/main/resources/resource/layout/tablerefsabsbib/tablerefsabsbib.end.layout rename to jablib/src/main/resources/resource/layout/tablerefsabsbib/tablerefsabsbib.end.layout diff --git a/src/main/resources/resource/layout/tablerefsabsbib/tablerefsabsbib.layout b/jablib/src/main/resources/resource/layout/tablerefsabsbib/tablerefsabsbib.layout similarity index 100% rename from src/main/resources/resource/layout/tablerefsabsbib/tablerefsabsbib.layout rename to jablib/src/main/resources/resource/layout/tablerefsabsbib/tablerefsabsbib.layout diff --git a/src/main/resources/resource/layout/text.layout b/jablib/src/main/resources/resource/layout/text.layout similarity index 100% rename from src/main/resources/resource/layout/text.layout rename to jablib/src/main/resources/resource/layout/text.layout diff --git a/src/main/resources/resource/layout/title-markdown/title-md.article.layout b/jablib/src/main/resources/resource/layout/title-markdown/title-md.article.layout similarity index 100% rename from src/main/resources/resource/layout/title-markdown/title-md.article.layout rename to jablib/src/main/resources/resource/layout/title-markdown/title-md.article.layout diff --git a/src/main/resources/resource/layout/title-markdown/title-md.book.layout b/jablib/src/main/resources/resource/layout/title-markdown/title-md.book.layout similarity index 100% rename from src/main/resources/resource/layout/title-markdown/title-md.book.layout rename to jablib/src/main/resources/resource/layout/title-markdown/title-md.book.layout diff --git a/src/main/resources/resource/layout/title-markdown/title-md.incollection.layout b/jablib/src/main/resources/resource/layout/title-markdown/title-md.incollection.layout similarity index 100% rename from src/main/resources/resource/layout/title-markdown/title-md.incollection.layout rename to jablib/src/main/resources/resource/layout/title-markdown/title-md.incollection.layout diff --git a/src/main/resources/resource/layout/title-markdown/title-md.inproceedings.layout b/jablib/src/main/resources/resource/layout/title-markdown/title-md.inproceedings.layout similarity index 100% rename from src/main/resources/resource/layout/title-markdown/title-md.inproceedings.layout rename to jablib/src/main/resources/resource/layout/title-markdown/title-md.inproceedings.layout diff --git a/src/main/resources/resource/layout/title-markdown/title-md.layout b/jablib/src/main/resources/resource/layout/title-markdown/title-md.layout similarity index 100% rename from src/main/resources/resource/layout/title-markdown/title-md.layout rename to jablib/src/main/resources/resource/layout/title-markdown/title-md.layout diff --git a/src/main/resources/resource/layout/yaml.begin.layout b/jablib/src/main/resources/resource/layout/yaml.begin.layout similarity index 100% rename from src/main/resources/resource/layout/yaml.begin.layout rename to jablib/src/main/resources/resource/layout/yaml.begin.layout diff --git a/src/main/resources/resource/layout/yaml.end.layout b/jablib/src/main/resources/resource/layout/yaml.end.layout similarity index 100% rename from src/main/resources/resource/layout/yaml.end.layout rename to jablib/src/main/resources/resource/layout/yaml.end.layout diff --git a/src/main/resources/resource/layout/yaml.layout b/jablib/src/main/resources/resource/layout/yaml.layout similarity index 100% rename from src/main/resources/resource/layout/yaml.layout rename to jablib/src/main/resources/resource/layout/yaml.layout diff --git a/src/main/resources/resource/ods/manifest.xml b/jablib/src/main/resources/resource/ods/manifest.xml similarity index 100% rename from src/main/resources/resource/ods/manifest.xml rename to jablib/src/main/resources/resource/ods/manifest.xml diff --git a/src/main/resources/resource/ods/meta.xml b/jablib/src/main/resources/resource/ods/meta.xml similarity index 100% rename from src/main/resources/resource/ods/meta.xml rename to jablib/src/main/resources/resource/ods/meta.xml diff --git a/src/main/resources/resource/ods/settings.xml b/jablib/src/main/resources/resource/ods/settings.xml similarity index 100% rename from src/main/resources/resource/ods/settings.xml rename to jablib/src/main/resources/resource/ods/settings.xml diff --git a/src/main/resources/resource/openoffice/default_authoryear.jstyle b/jablib/src/main/resources/resource/openoffice/default_authoryear.jstyle similarity index 100% rename from src/main/resources/resource/openoffice/default_authoryear.jstyle rename to jablib/src/main/resources/resource/openoffice/default_authoryear.jstyle diff --git a/src/main/resources/resource/openoffice/default_numerical.jstyle b/jablib/src/main/resources/resource/openoffice/default_numerical.jstyle similarity index 100% rename from src/main/resources/resource/openoffice/default_numerical.jstyle rename to jablib/src/main/resources/resource/openoffice/default_numerical.jstyle diff --git a/src/main/resources/resource/openoffice/manifest.xml b/jablib/src/main/resources/resource/openoffice/manifest.xml similarity index 100% rename from src/main/resources/resource/openoffice/manifest.xml rename to jablib/src/main/resources/resource/openoffice/manifest.xml diff --git a/src/main/resources/resource/openoffice/meta.xml b/jablib/src/main/resources/resource/openoffice/meta.xml similarity index 100% rename from src/main/resources/resource/openoffice/meta.xml rename to jablib/src/main/resources/resource/openoffice/meta.xml diff --git a/src/main/resources/resource/openoffice/mimetype b/jablib/src/main/resources/resource/openoffice/mimetype similarity index 100% rename from src/main/resources/resource/openoffice/mimetype rename to jablib/src/main/resources/resource/openoffice/mimetype diff --git a/src/main/resources/ssl/truststore.jks b/jablib/src/main/resources/ssl/truststore.jks similarity index 100% rename from src/main/resources/ssl/truststore.jks rename to jablib/src/main/resources/ssl/truststore.jks diff --git a/src/main/resources/xslt/mathml_latex/README b/jablib/src/main/resources/xslt/mathml_latex/README similarity index 100% rename from src/main/resources/xslt/mathml_latex/README rename to jablib/src/main/resources/xslt/mathml_latex/README diff --git a/src/main/resources/xslt/mathml_latex/cmarkup.xsl b/jablib/src/main/resources/xslt/mathml_latex/cmarkup.xsl similarity index 100% rename from src/main/resources/xslt/mathml_latex/cmarkup.xsl rename to jablib/src/main/resources/xslt/mathml_latex/cmarkup.xsl diff --git a/src/main/resources/xslt/mathml_latex/entities.xsl b/jablib/src/main/resources/xslt/mathml_latex/entities.xsl similarity index 100% rename from src/main/resources/xslt/mathml_latex/entities.xsl rename to jablib/src/main/resources/xslt/mathml_latex/entities.xsl diff --git a/src/main/resources/xslt/mathml_latex/glayout.xsl b/jablib/src/main/resources/xslt/mathml_latex/glayout.xsl similarity index 100% rename from src/main/resources/xslt/mathml_latex/glayout.xsl rename to jablib/src/main/resources/xslt/mathml_latex/glayout.xsl diff --git a/src/main/resources/xslt/mathml_latex/mmltex.xsl b/jablib/src/main/resources/xslt/mathml_latex/mmltex.xsl similarity index 100% rename from src/main/resources/xslt/mathml_latex/mmltex.xsl rename to jablib/src/main/resources/xslt/mathml_latex/mmltex.xsl diff --git a/src/main/resources/xslt/mathml_latex/scripts.xsl b/jablib/src/main/resources/xslt/mathml_latex/scripts.xsl similarity index 100% rename from src/main/resources/xslt/mathml_latex/scripts.xsl rename to jablib/src/main/resources/xslt/mathml_latex/scripts.xsl diff --git a/src/main/resources/xslt/mathml_latex/tables.xsl b/jablib/src/main/resources/xslt/mathml_latex/tables.xsl similarity index 100% rename from src/main/resources/xslt/mathml_latex/tables.xsl rename to jablib/src/main/resources/xslt/mathml_latex/tables.xsl diff --git a/src/main/resources/xslt/mathml_latex/tokens.xsl b/jablib/src/main/resources/xslt/mathml_latex/tokens.xsl similarity index 100% rename from src/main/resources/xslt/mathml_latex/tokens.xsl rename to jablib/src/main/resources/xslt/mathml_latex/tokens.xsl diff --git a/src/main/resources/xjc/citavi/citavi.xsd b/jablib/src/main/schemas/xjc/citavi/citavi.xsd similarity index 100% rename from src/main/resources/xjc/citavi/citavi.xsd rename to jablib/src/main/schemas/xjc/citavi/citavi.xsd diff --git a/jablib/src/test/java/module-info.test b/jablib/src/test/java/module-info.test new file mode 100644 index 00000000000..6927d4c0824 --- /dev/null +++ b/jablib/src/test/java/module-info.test @@ -0,0 +1,16 @@ +--add-opens + javafx.base/com.sun.javafx.beans=net.bytebuddy + +--add-opens + // Needed for localization tests + javafx.fxml/javafx.fxml=org.jabref + +--add-modules + io.github.classgraph +--add-reads + org.jabref.jablib=io.github.classgraph + +--add-modules + org.jabref.testsupport +--add-reads + org.jabref.jablib=org.jabref.testsupport diff --git a/src/test/java/org/jabref/logic/TypedBibEntryTest.java b/jablib/src/test/java/org/jabref/logic/TypedBibEntryTest.java similarity index 100% rename from src/test/java/org/jabref/logic/TypedBibEntryTest.java rename to jablib/src/test/java/org/jabref/logic/TypedBibEntryTest.java diff --git a/src/test/java/org/jabref/logic/ai/chatting/chathistory/ChatHistoryStorageTest.java b/jablib/src/test/java/org/jabref/logic/ai/chatting/chathistory/ChatHistoryStorageTest.java similarity index 100% rename from src/test/java/org/jabref/logic/ai/chatting/chathistory/ChatHistoryStorageTest.java rename to jablib/src/test/java/org/jabref/logic/ai/chatting/chathistory/ChatHistoryStorageTest.java diff --git a/src/test/java/org/jabref/logic/ai/chatting/chathistory/MVStoreChatHistoryStorageTest.java b/jablib/src/test/java/org/jabref/logic/ai/chatting/chathistory/MVStoreChatHistoryStorageTest.java similarity index 100% rename from src/test/java/org/jabref/logic/ai/chatting/chathistory/MVStoreChatHistoryStorageTest.java rename to jablib/src/test/java/org/jabref/logic/ai/chatting/chathistory/MVStoreChatHistoryStorageTest.java diff --git a/src/test/java/org/jabref/logic/ai/ingestion/FullyIngestedDocumentsTrackerTest.java b/jablib/src/test/java/org/jabref/logic/ai/ingestion/FullyIngestedDocumentsTrackerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/ai/ingestion/FullyIngestedDocumentsTrackerTest.java rename to jablib/src/test/java/org/jabref/logic/ai/ingestion/FullyIngestedDocumentsTrackerTest.java diff --git a/src/test/java/org/jabref/logic/ai/ingestion/MVStoreFullyIngestedDocumentsTrackerTest.java b/jablib/src/test/java/org/jabref/logic/ai/ingestion/MVStoreFullyIngestedDocumentsTrackerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/ai/ingestion/MVStoreFullyIngestedDocumentsTrackerTest.java rename to jablib/src/test/java/org/jabref/logic/ai/ingestion/MVStoreFullyIngestedDocumentsTrackerTest.java diff --git a/src/test/java/org/jabref/logic/ai/summarization/MVStoreSummariesStorageTest.java b/jablib/src/test/java/org/jabref/logic/ai/summarization/MVStoreSummariesStorageTest.java similarity index 100% rename from src/test/java/org/jabref/logic/ai/summarization/MVStoreSummariesStorageTest.java rename to jablib/src/test/java/org/jabref/logic/ai/summarization/MVStoreSummariesStorageTest.java diff --git a/src/test/java/org/jabref/logic/ai/summarization/SummariesStorageTest.java b/jablib/src/test/java/org/jabref/logic/ai/summarization/SummariesStorageTest.java similarity index 100% rename from src/test/java/org/jabref/logic/ai/summarization/SummariesStorageTest.java rename to jablib/src/test/java/org/jabref/logic/ai/summarization/SummariesStorageTest.java diff --git a/src/test/java/org/jabref/logic/auxparser/AuxParserTest.java b/jablib/src/test/java/org/jabref/logic/auxparser/AuxParserTest.java similarity index 100% rename from src/test/java/org/jabref/logic/auxparser/AuxParserTest.java rename to jablib/src/test/java/org/jabref/logic/auxparser/AuxParserTest.java diff --git a/src/test/java/org/jabref/logic/auxparser/DefaultAuxParserTest.java b/jablib/src/test/java/org/jabref/logic/auxparser/DefaultAuxParserTest.java similarity index 100% rename from src/test/java/org/jabref/logic/auxparser/DefaultAuxParserTest.java rename to jablib/src/test/java/org/jabref/logic/auxparser/DefaultAuxParserTest.java diff --git a/src/test/java/org/jabref/logic/biblog/BibLogPathResolverTest.java b/jablib/src/test/java/org/jabref/logic/biblog/BibLogPathResolverTest.java similarity index 100% rename from src/test/java/org/jabref/logic/biblog/BibLogPathResolverTest.java rename to jablib/src/test/java/org/jabref/logic/biblog/BibLogPathResolverTest.java diff --git a/src/test/java/org/jabref/logic/biblog/BibWarningToIntegrityMessageConverterTest.java b/jablib/src/test/java/org/jabref/logic/biblog/BibWarningToIntegrityMessageConverterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/biblog/BibWarningToIntegrityMessageConverterTest.java rename to jablib/src/test/java/org/jabref/logic/biblog/BibWarningToIntegrityMessageConverterTest.java diff --git a/src/test/java/org/jabref/logic/biblog/BibtexLogParserTest.java b/jablib/src/test/java/org/jabref/logic/biblog/BibtexLogParserTest.java similarity index 91% rename from src/test/java/org/jabref/logic/biblog/BibtexLogParserTest.java rename to jablib/src/test/java/org/jabref/logic/biblog/BibtexLogParserTest.java index 57e72bfdd95..fdc2e06a0ec 100644 --- a/src/test/java/org/jabref/logic/biblog/BibtexLogParserTest.java +++ b/jablib/src/test/java/org/jabref/logic/biblog/BibtexLogParserTest.java @@ -1,5 +1,6 @@ package org.jabref.logic.biblog; +import java.io.IOException; import java.nio.file.Path; import java.util.List; @@ -20,7 +21,7 @@ void setup() { } @Test - void parsesWarningsFromResourceFileTest() throws Exception { + void parsesWarningsFromResourceFileTest() throws IOException { Path blgFile = Path.of("src/test/resources/org/jabref/logic/blg/Chocolate.blg"); List warnings = parser.parseBiblog(blgFile); assertEquals(List.of( diff --git a/src/test/java/org/jabref/logic/bibtex/BibEntryWriterTest.java b/jablib/src/test/java/org/jabref/logic/bibtex/BibEntryWriterTest.java similarity index 95% rename from src/test/java/org/jabref/logic/bibtex/BibEntryWriterTest.java rename to jablib/src/test/java/org/jabref/logic/bibtex/BibEntryWriterTest.java index 47d06d72ce4..fd2fb495747 100644 --- a/src/test/java/org/jabref/logic/bibtex/BibEntryWriterTest.java +++ b/jablib/src/test/java/org/jabref/logic/bibtex/BibEntryWriterTest.java @@ -1,10 +1,9 @@ package org.jabref.logic.bibtex; import java.io.IOException; -import java.io.StringReader; +import java.io.Reader; import java.io.StringWriter; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.Set; import java.util.stream.Stream; @@ -47,12 +46,12 @@ class BibEntryWriterTest { @BeforeEach void setUpWriter() { importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); - FieldPreferences fieldPreferences = new FieldPreferences(true, List.of(StandardField.MONTH), Collections.emptyList()); + FieldPreferences fieldPreferences = new FieldPreferences(true, List.of(StandardField.MONTH), List.of()); bibEntryWriter = new BibEntryWriter(new FieldWriter(fieldPreferences), new BibEntryTypesManager()); } @Test - void serialization() throws Exception { + void serialization() throws IOException { BibEntry entry = new BibEntry(StandardEntryType.Article) // set required fields .withField(StandardField.AUTHOR, "Foo Bar") @@ -77,7 +76,7 @@ void serialization() throws Exception { } @Test - void bibEntryTwoSpacesBeforeAndAfterKept() throws Exception { + void bibEntryTwoSpacesBeforeAndAfterKept() throws IOException { BibEntry entry = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, " two spaces before and after (before) ") .withChanged(true); @@ -94,7 +93,7 @@ void bibEntryTwoSpacesBeforeAndAfterKept() throws Exception { } @Test - void bibEntryNotModified() throws Exception { + void bibEntryNotModified() throws IOException { BibEntry entry = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, " two spaces before and after ") .withChanged(true); @@ -107,7 +106,7 @@ void bibEntryNotModified() throws Exception { } @Test - void writeOtherTypeTest() throws Exception { + void writeOtherTypeTest() throws IOException { String expected = """ @Other{test, comment = {testentry}, @@ -124,7 +123,7 @@ void writeOtherTypeTest() throws Exception { } @Test - void writeEntryWithFile() throws Exception { + void writeEntryWithFile() throws IOException { BibEntry entry = new BibEntry(StandardEntryType.Article); LinkedFile file = new LinkedFile("test", Path.of("/home/uers/test.pdf"), "PDF"); entry.addFile(file); @@ -139,7 +138,7 @@ void writeEntryWithFile() throws Exception { } @Test - void writeEntryWithOrField() throws Exception { + void writeEntryWithOrField() throws IOException { BibEntry entry = new BibEntry(StandardEntryType.InBook) // set a required OR field (author/editor) .withField(StandardField.EDITOR, "Foo Bar") @@ -164,7 +163,7 @@ void writeEntryWithOrField() throws Exception { } @Test - void writeEntryWithOrFieldBothFieldsPresent() throws Exception { + void writeEntryWithOrFieldBothFieldsPresent() throws IOException { BibEntry entry = new BibEntry(StandardEntryType.InBook) // set a required OR field with both fields(author/editor) .withField(StandardField.AUTHOR, "Foo Thor") @@ -191,7 +190,7 @@ void writeEntryWithOrFieldBothFieldsPresent() throws Exception { } @Test - void writeReallyUnknownTypeTest() throws Exception { + void writeReallyUnknownTypeTest() throws IOException { String expected = """ @Reallyunknowntype{test, comment = {testentry}, @@ -219,7 +218,7 @@ void roundTripTest() throws IOException { """.replace("\n", OS.NEWLINE); // read in bibtex string - ParserResult result = new BibtexParser(importFormatPreferences).parse(new StringReader(bibtexEntry)); + ParserResult result = new BibtexParser(importFormatPreferences).parse(Reader.of(bibtexEntry)); BibEntry entry = result.getDatabase().getEntries().getFirst(); // write out bibtex string @@ -237,7 +236,7 @@ void roundTripKeepsFilePathWithBackslashes() throws IOException { """.replace("\n", OS.NEWLINE); // read in bibtex string - ParserResult result = new BibtexParser(importFormatPreferences).parse(new StringReader(bibtexEntry)); + ParserResult result = new BibtexParser(importFormatPreferences).parse(Reader.of(bibtexEntry)); BibEntry entry = result.getDatabase().getEntries().getFirst(); // write out bibtex string @@ -255,7 +254,7 @@ void roundTripKeepsEscapedCharacters() throws IOException { """.replace("\n", OS.NEWLINE); // read in bibtex string - ParserResult result = new BibtexParser(importFormatPreferences).parse(new StringReader(bibtexEntry)); + ParserResult result = new BibtexParser(importFormatPreferences).parse(Reader.of(bibtexEntry)); BibEntry entry = result.getDatabase().getEntries().getFirst(); // write out bibtex string @@ -273,7 +272,7 @@ void roundTripKeepsFilePathEndingWithBackslash() throws IOException { """.replace("\n", OS.NEWLINE); // read in bibtex string - ParserResult result = new BibtexParser(importFormatPreferences).parse(new StringReader(bibtexEntry)); + ParserResult result = new BibtexParser(importFormatPreferences).parse(Reader.of(bibtexEntry)); BibEntry entry = result.getDatabase().getEntries().getFirst(); // write out bibtex string @@ -294,7 +293,7 @@ void roundTripWithPrependingNewlines() throws IOException { // @formatter:on // read in bibtex string - ParserResult result = new BibtexParser(importFormatPreferences).parse(new StringReader(bibtexEntry)); + ParserResult result = new BibtexParser(importFormatPreferences).parse(Reader.of(bibtexEntry)); BibEntry entry = result.getDatabase().getEntries().getFirst(); // write out bibtex string @@ -315,7 +314,7 @@ void roundTripWithKeepsCRLFLineBreakStyle() throws IOException { // @formatter:on // read in bibtex string - ParserResult result = new BibtexParser(importFormatPreferences).parse(new StringReader(bibtexEntry)); + ParserResult result = new BibtexParser(importFormatPreferences).parse(Reader.of(bibtexEntry)); BibEntry entry = result.getDatabase().getEntries().getFirst(); // write out bibtex string @@ -338,7 +337,7 @@ void roundTripWithKeepsLFLineBreakStyle() throws IOException { // @formatter:on // read in bibtex string - ParserResult result = new BibtexParser(importFormatPreferences).parse(new StringReader(bibtexEntry)); + ParserResult result = new BibtexParser(importFormatPreferences).parse(Reader.of(bibtexEntry)); BibEntry entry = result.getDatabase().getEntries().getFirst(); // write out bibtex string @@ -363,7 +362,7 @@ void roundTripWithModification() throws IOException { // @formatter:on // read in bibtex string - ParserResult result = new BibtexParser(importFormatPreferences).parse(new StringReader(bibtexEntry)); + ParserResult result = new BibtexParser(importFormatPreferences).parse(Reader.of(bibtexEntry)); BibEntry entry = result.getDatabase().getEntries().getFirst(); // Modify entry @@ -400,7 +399,7 @@ void roundTripWithCamelCasingInTheOriginalEntryAndResultInLowerCase() throws IOE // @formatter:on // read in bibtex string - ParserResult result = new BibtexParser(importFormatPreferences).parse(new StringReader(bibtexEntry)); + ParserResult result = new BibtexParser(importFormatPreferences).parse(Reader.of(bibtexEntry)); BibEntry entry = result.getDatabase().getEntries().getFirst(); // modify entry @@ -439,7 +438,7 @@ void entryTypeChange() throws IOException { // @formatter:on // read in bibtex string - ParserResult result = new BibtexParser(importFormatPreferences).parse(new StringReader(expected)); + ParserResult result = new BibtexParser(importFormatPreferences).parse(Reader.of(expected)); BibEntry entry = result.getDatabase().getEntries().getFirst(); // modify entry @@ -474,7 +473,7 @@ void roundTripWithAppendedNewlines() throws IOException { // @formatter:on // read in bibtex string - ParserResult result = new BibtexParser(importFormatPreferences).parse(new StringReader(bibtexEntry)); + ParserResult result = new BibtexParser(importFormatPreferences).parse(Reader.of(bibtexEntry)); BibEntry entry = result.getDatabase().getEntries().getFirst(); // write out bibtex string @@ -498,7 +497,7 @@ void roundTripNormalizesNewLines() throws IOException { // @formatter:on // read in bibtex string - ParserResult result = new BibtexParser(importFormatPreferences).parse(new StringReader(bibtexEntry)); + ParserResult result = new BibtexParser(importFormatPreferences).parse(Reader.of(bibtexEntry)); BibEntry entry = result.getDatabase().getEntries().getFirst(); // write out bibtex string @@ -536,7 +535,7 @@ void multipleWritesWithoutModification() throws IOException { private String testSingleWrite(String bibtexEntry) throws IOException { // read in bibtex string - ParserResult result = new BibtexParser(importFormatPreferences).parse(new StringReader(bibtexEntry)); + ParserResult result = new BibtexParser(importFormatPreferences).parse(Reader.of(bibtexEntry)); BibEntry entry = result.getDatabase().getEntries().getFirst(); // write out bibtex string @@ -562,7 +561,7 @@ void monthFieldSpecialSyntax() throws IOException { // @formatter:on // read in bibtex string - ParserResult result = new BibtexParser(importFormatPreferences).parse(new StringReader(bibtexEntry)); + ParserResult result = new BibtexParser(importFormatPreferences).parse(Reader.of(bibtexEntry)); BibEntry entry = result.getDatabase().getEntries().getFirst(); // check month field @@ -597,7 +596,7 @@ void customTypeCanBewritten() throws IOException { // @formatter:on // read in bibtex string - ParserResult result = new BibtexParser(importFormatPreferences).parse(new StringReader(bibtexEntry)); + ParserResult result = new BibtexParser(importFormatPreferences).parse(Reader.of(bibtexEntry)); BibEntry entry = result.getDatabase().getEntries().getFirst(); entry.setField(FieldFactory.parseField("location"), "NY"); @@ -625,7 +624,7 @@ void customTypeCanBewritten() throws IOException { } @Test - void constantMonthApril() throws Exception { + void constantMonthApril() throws IOException { BibEntry entry = new BibEntry(StandardEntryType.Misc) .withField(StandardField.MONTH, "#apr#"); // enable writing @@ -642,7 +641,7 @@ void constantMonthApril() throws Exception { } @Test - void monthApril() throws Exception { + void monthApril() throws IOException { BibEntry entry = new BibEntry(StandardEntryType.Misc) .withField(StandardField.MONTH, "apr"); // enable writing @@ -659,7 +658,7 @@ void monthApril() throws Exception { } @Test - void filenameIsUnmodifiedDuringWrite() throws Exception { + void filenameIsUnmodifiedDuringWrite() throws IOException { // source: https://github.com/JabRef/jabref/issues/7012#issuecomment-707788107 String bibtexEntry = """ @Book{Hue17, @@ -674,7 +673,7 @@ void filenameIsUnmodifiedDuringWrite() throws Exception { """.replace("\n", OS.NEWLINE); // read in bibtex string - ParserResult result = new BibtexParser(importFormatPreferences).parse(new StringReader(bibtexEntry)); + ParserResult result = new BibtexParser(importFormatPreferences).parse(Reader.of(bibtexEntry)); BibEntry entry = result.getDatabase().getEntries().getFirst(); // write out bibtex string @@ -695,7 +694,7 @@ void addFieldWithLongerLength() throws IOException { // @formatter:on // read in bibtex string - ParserResult result = new BibtexParser(importFormatPreferences).parse(new StringReader(bibtexEntry)); + ParserResult result = new BibtexParser(importFormatPreferences).parse(Reader.of(bibtexEntry)); BibEntry entry = result.getDatabase().getEntries().getFirst(); // modify entry @@ -754,7 +753,7 @@ void roundTripWithPrecedingCommentTest() throws IOException { // @formatter:on // read in bibtex string - ParserResult result = new BibtexParser(importFormatPreferences).parse(new StringReader(bibtexEntry)); + ParserResult result = new BibtexParser(importFormatPreferences).parse(Reader.of(bibtexEntry)); BibEntry entry = result.getDatabase().getEntries().getFirst(); // write out bibtex string @@ -778,7 +777,7 @@ void roundTripWithPrecedingCommentAndModificationTest() throws IOException { // @formatter:on // read in bibtex string - ParserResult result = new BibtexParser(importFormatPreferences).parse(new StringReader(bibtexEntry)); + ParserResult result = new BibtexParser(importFormatPreferences).parse(Reader.of(bibtexEntry)); BibEntry entry = result.getDatabase().getEntries().getFirst(); // change the entry diff --git a/src/test/java/org/jabref/logic/bibtex/FieldWriterTest.java b/jablib/src/test/java/org/jabref/logic/bibtex/FieldWriterTest.java similarity index 82% rename from src/test/java/org/jabref/logic/bibtex/FieldWriterTest.java rename to jablib/src/test/java/org/jabref/logic/bibtex/FieldWriterTest.java index a5d47bd601d..f9e7753232d 100644 --- a/src/test/java/org/jabref/logic/bibtex/FieldWriterTest.java +++ b/jablib/src/test/java/org/jabref/logic/bibtex/FieldWriterTest.java @@ -1,6 +1,5 @@ package org.jabref.logic.bibtex; -import java.util.Collections; import java.util.List; import java.util.stream.Stream; @@ -51,20 +50,20 @@ static Stream keepHashSignInComment() { @BeforeEach void setUp() { - FieldPreferences fieldPreferences = new FieldPreferences(true, List.of(StandardField.MONTH), Collections.emptyList()); + FieldPreferences fieldPreferences = new FieldPreferences(true, List.of(StandardField.MONTH), List.of()); writer = new FieldWriter(fieldPreferences); } @ParameterizedTest @MethodSource - void keepHashSignInComment(String text) throws Exception { + void keepHashSignInComment(String text) throws InvalidFieldValueException { String writeResult = writer.write(StandardField.COMMENT, text); String resultWithLfAsNewLineSeparator = StringUtil.unifyLineBreaks(writeResult, "\n"); assertEquals("{" + text + "}", resultWithLfAsNewLineSeparator); } @Test - void noNormalizationOfNewlinesInAbstractField() throws Exception { + void noNormalizationOfNewlinesInAbstractField() throws InvalidFieldValueException { String text = "lorem" + OS.NEWLINE + " ipsum lorem ipsum\nlorem ipsum \rlorem ipsum\r\ntest"; String result = writer.write(StandardField.ABSTRACT, text); // The normalization is done at org.jabref.logic.exporter.BibWriter, so no need to normalize here @@ -73,7 +72,7 @@ void noNormalizationOfNewlinesInAbstractField() throws Exception { } @Test - void preserveNewlineInAbstractField() throws Exception { + void preserveNewlineInAbstractField() throws InvalidFieldValueException { String text = "lorem ipsum lorem ipsum" + OS.NEWLINE + "lorem ipsum lorem ipsum"; String result = writer.write(StandardField.ABSTRACT, text); @@ -83,7 +82,7 @@ void preserveNewlineInAbstractField() throws Exception { } @Test - void preserveMultipleNewlinesInAbstractField() throws Exception { + void preserveMultipleNewlinesInAbstractField() throws InvalidFieldValueException { String text = "lorem ipsum lorem ipsum" + OS.NEWLINE + OS.NEWLINE + "lorem ipsum lorem ipsum"; String result = writer.write(StandardField.ABSTRACT, text); @@ -93,7 +92,7 @@ void preserveMultipleNewlinesInAbstractField() throws Exception { } @Test - void preserveNewlineInReviewField() throws Exception { + void preserveNewlineInReviewField() throws InvalidFieldValueException { String text = "lorem ipsum lorem ipsum" + OS.NEWLINE + "lorem ipsum lorem ipsum"; String result = writer.write(StandardField.REVIEW, text); @@ -103,7 +102,7 @@ void preserveNewlineInReviewField() throws Exception { } @Test - void whitespaceFromNonMultiLineFieldsKept() throws Exception { + void whitespaceFromNonMultiLineFieldsKept() throws InvalidFieldValueException { // This was a decision on 2024-06-15 when fixing https://github.com/JabRef/jabref/issues/4877 // We want to have a clean architecture for reading and writing // Normalizing is done during write (and not during read) @@ -120,84 +119,84 @@ void whitespaceFromNonMultiLineFieldsKept() throws Exception { } @Test - void reportUnbalancedBracing() throws Exception { + void reportUnbalancedBracing() { String unbalanced = "{"; assertThrows(InvalidFieldValueException.class, () -> writer.write(new UnknownField("anyfield"), unbalanced)); } @Test - void reportUnbalancedBracingWithEscapedBraces() throws Exception { + void reportUnbalancedBracingWithEscapedBraces() { String unbalanced = "{\\}"; assertThrows(InvalidFieldValueException.class, () -> writer.write(new UnknownField("anyfield"), unbalanced)); } @Test - void tolerateBalancedBrace() throws Exception { + void tolerateBalancedBrace() throws InvalidFieldValueException { String text = "Incorporating evolutionary {Measures into Conservation Prioritization}"; assertEquals("{" + text + "}", writer.write(new UnknownField("anyfield"), text)); } @Test - void tolerateEscapeCharacters() throws Exception { + void tolerateEscapeCharacters() throws InvalidFieldValueException { String text = "Incorporating {\\O}evolutionary {Measures into Conservation Prioritization}"; assertEquals("{" + text + "}", writer.write(new UnknownField("anyfield"), text)); } @Test - void hashEnclosedWordsGetRealStringsInMonthField() throws Exception { + void hashEnclosedWordsGetRealStringsInMonthField() throws InvalidFieldValueException { String text = "#jan# - #feb#"; assertEquals("jan # { - } # feb", writer.write(StandardField.MONTH, text)); } @Test - void hashWorksSimple() throws Exception { + void hashWorksSimple() throws InvalidFieldValueException { String text = "#text"; assertEquals("{#text}", writer.write(StandardField.MONTH, text)); } @Test - void escapedHashWorksSimple() throws Exception { + void escapedHashWorksSimple() throws InvalidFieldValueException { String text = "\\#text"; assertEquals("{\\#text}", writer.write(StandardField.MONTH, text)); } @Test - void doubleHashesRemoved() throws Exception { + void doubleHashesRemoved() throws InvalidFieldValueException { String text = "te##xt"; assertEquals("{text}", writer.write(StandardField.MONTH, text)); } @Test - void multipleSpacesNotShrunkOnSingleLineField() throws Exception { + void multipleSpacesNotShrunkOnSingleLineField() throws InvalidFieldValueException { String text = "t w o"; assertEquals("{t w o}", writer.write(StandardField.MONTH, text)); } @Test - void doubleSpacesAreKept() throws Exception { + void doubleSpacesAreKept() throws InvalidFieldValueException { String text = " text "; assertEquals("{ text }", writer.write(StandardField.MONTH, text)); } @Test - void spacesAreNotTrimmedAtMultilineField() throws Exception { + void spacesAreNotTrimmedAtMultilineField() throws InvalidFieldValueException { String text = " text "; assertEquals("{ text }", writer.write(StandardField.COMMENT, text)); // Note: Spaces are trimmed at BibDatabaseWriter#applySaveActions } @Test - void multipleSpacesKeptOnMultiLineField() throws Exception { + void multipleSpacesKeptOnMultiLineField() throws InvalidFieldValueException { String text = "t w o"; assertEquals("{t w o}", writer.write(StandardField.COMMENT, text)); } @Test - void finalNewLineIsKeptAtMultilineField() throws Exception { + void finalNewLineIsKeptAtMultilineField() throws InvalidFieldValueException { String text = " text " + OS.NEWLINE; assertEquals("{" + text + "}", writer.write(StandardField.COMMENT, text)); // Note: Spaces are trimmed at BibDatabaseWriter#applySaveActions diff --git a/src/test/java/org/jabref/logic/bibtex/FileFieldWriterTest.java b/jablib/src/test/java/org/jabref/logic/bibtex/FileFieldWriterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/bibtex/FileFieldWriterTest.java rename to jablib/src/test/java/org/jabref/logic/bibtex/FileFieldWriterTest.java diff --git a/src/test/java/org/jabref/logic/bibtex/comparator/BibDatabaseDiffTest.java b/jablib/src/test/java/org/jabref/logic/bibtex/comparator/BibDatabaseDiffTest.java similarity index 85% rename from src/test/java/org/jabref/logic/bibtex/comparator/BibDatabaseDiffTest.java rename to jablib/src/test/java/org/jabref/logic/bibtex/comparator/BibDatabaseDiffTest.java index 2146d4247b1..762ffb9aa3c 100644 --- a/src/test/java/org/jabref/logic/bibtex/comparator/BibDatabaseDiffTest.java +++ b/jablib/src/test/java/org/jabref/logic/bibtex/comparator/BibDatabaseDiffTest.java @@ -1,7 +1,7 @@ package org.jabref.logic.bibtex.comparator; import java.util.Arrays; -import java.util.Collections; +import java.util.List; import java.util.Optional; import org.jabref.model.database.BibDatabase; @@ -17,66 +17,66 @@ class BibDatabaseDiffTest { @Test - void compareOfEmptyDatabasesReportsNoDifferences() throws Exception { + void compareOfEmptyDatabasesReportsNoDifferences() { BibDatabaseDiff diff = BibDatabaseDiff.compare(new BibDatabaseContext(), new BibDatabaseContext()); assertEquals(Optional.empty(), diff.getPreambleDifferences()); assertEquals(Optional.empty(), diff.getMetaDataDifferences()); - assertEquals(Collections.emptyList(), diff.getBibStringDifferences()); - assertEquals(Collections.emptyList(), diff.getEntryDifferences()); + assertEquals(List.of(), diff.getBibStringDifferences()); + assertEquals(List.of(), diff.getEntryDifferences()); } @Test - void compareOfSameEntryReportsNoDifferences() throws Exception { + void compareOfSameEntryReportsNoDifferences() { BibEntry entry = new BibEntry(BibEntry.DEFAULT_TYPE).withField(StandardField.TITLE, "test"); BibDatabaseDiff diff = compareEntries(entry, entry); - assertEquals(Collections.emptyList(), diff.getEntryDifferences()); + assertEquals(List.of(), diff.getEntryDifferences()); } @Test - void compareOfDifferentEntriesWithSameDataReportsNoDifferences() throws Exception { + void compareOfDifferentEntriesWithSameDataReportsNoDifferences() { BibEntry entryOne = new BibEntry(BibEntry.DEFAULT_TYPE).withField(StandardField.TITLE, "test"); BibEntry entryTwo = new BibEntry(BibEntry.DEFAULT_TYPE).withField(StandardField.TITLE, "test"); BibDatabaseDiff diff = compareEntries(entryOne, entryTwo); - assertEquals(Collections.emptyList(), diff.getEntryDifferences()); + assertEquals(List.of(), diff.getEntryDifferences()); } @Test - void compareOfTwoEntriesWithSameContentAndLfEndingsReportsNoDifferences() throws Exception { + void compareOfTwoEntriesWithSameContentAndLfEndingsReportsNoDifferences() { BibEntry entryOne = new BibEntry().withField(StandardField.COMMENT, "line1\n\nline3\n\nline5"); BibEntry entryTwo = new BibEntry().withField(StandardField.COMMENT, "line1\n\nline3\n\nline5"); BibDatabaseDiff diff = compareEntries(entryOne, entryTwo); - assertEquals(Collections.emptyList(), diff.getEntryDifferences()); + assertEquals(List.of(), diff.getEntryDifferences()); } @Test - void compareOfTwoEntriesWithSameContentAndCrLfEndingsReportsNoDifferences() throws Exception { + void compareOfTwoEntriesWithSameContentAndCrLfEndingsReportsNoDifferences() { BibEntry entryOne = new BibEntry().withField(StandardField.COMMENT, "line1\r\n\r\nline3\r\n\r\nline5"); BibEntry entryTwo = new BibEntry().withField(StandardField.COMMENT, "line1\r\n\r\nline3\r\n\r\nline5"); BibDatabaseDiff diff = compareEntries(entryOne, entryTwo); - assertEquals(Collections.emptyList(), diff.getEntryDifferences()); + assertEquals(List.of(), diff.getEntryDifferences()); } @Test - void compareOfTwoEntriesWithSameContentAndMixedLineEndingsReportsNoDifferences() throws Exception { + void compareOfTwoEntriesWithSameContentAndMixedLineEndingsReportsNoDifferences() { BibEntry entryOne = new BibEntry().withField(StandardField.COMMENT, "line1\n\nline3\n\nline5"); BibEntry entryTwo = new BibEntry().withField(StandardField.COMMENT, "line1\r\n\r\nline3\r\n\r\nline5"); BibDatabaseDiff diff = compareEntries(entryOne, entryTwo); - assertEquals(Collections.emptyList(), diff.getEntryDifferences()); + assertEquals(List.of(), diff.getEntryDifferences()); } @Test - void compareOfTwoDifferentEntriesWithDifferentDataReportsDifferences() throws Exception { + void compareOfTwoDifferentEntriesWithDifferentDataReportsDifferences() { BibEntry entryOne = new BibEntry(BibEntry.DEFAULT_TYPE).withField(StandardField.TITLE, "test"); BibEntry entryTwo = new BibEntry(BibEntry.DEFAULT_TYPE).withField(StandardField.TITLE, "another test"); @@ -92,11 +92,11 @@ void compareOfTwoDifferentEntriesWithDifferentDataReportsDifferences() throws Ex } @Test - void compareOfThreeDifferentEntriesWithDifferentDataReportsDifferences() throws Exception { + void compareOfThreeDifferentEntriesWithDifferentDataReportsDifferences() { BibEntry entryOne = new BibEntry(BibEntry.DEFAULT_TYPE).withField(StandardField.TITLE, "test"); BibEntry entryTwo = new BibEntry(BibEntry.DEFAULT_TYPE).withField(StandardField.TITLE, "another test"); BibEntry entryThree = new BibEntry(BibEntry.DEFAULT_TYPE).withField(StandardField.TITLE, "again another test"); - BibDatabaseContext databaseOne = new BibDatabaseContext(new BibDatabase(Collections.singletonList(entryOne))); + BibDatabaseContext databaseOne = new BibDatabaseContext(new BibDatabase(List.of(entryOne))); BibDatabaseContext databaseTwo = new BibDatabaseContext(new BibDatabase(Arrays.asList(entryTwo, entryThree))); BibDatabaseDiff diff = BibDatabaseDiff.compare(databaseOne, databaseTwo); @@ -135,8 +135,8 @@ void compareOfTwoEntriesWithEqualCitationKeysShouldReportsOneDifference() { } private BibDatabaseDiff compareEntries(BibEntry entryOne, BibEntry entryTwo) { - BibDatabaseContext databaseOne = new BibDatabaseContext(new BibDatabase(Collections.singletonList(entryOne))); - BibDatabaseContext databaseTwo = new BibDatabaseContext(new BibDatabase(Collections.singletonList(entryTwo))); + BibDatabaseContext databaseOne = new BibDatabaseContext(new BibDatabase(List.of(entryOne))); + BibDatabaseContext databaseTwo = new BibDatabaseContext(new BibDatabase(List.of(entryTwo))); return BibDatabaseDiff.compare(databaseOne, databaseTwo); } diff --git a/src/test/java/org/jabref/logic/bibtex/comparator/BibEntryCompareTest.java b/jablib/src/test/java/org/jabref/logic/bibtex/comparator/BibEntryCompareTest.java similarity index 100% rename from src/test/java/org/jabref/logic/bibtex/comparator/BibEntryCompareTest.java rename to jablib/src/test/java/org/jabref/logic/bibtex/comparator/BibEntryCompareTest.java diff --git a/src/test/java/org/jabref/logic/bibtex/comparator/BibStringDiffTest.java b/jablib/src/test/java/org/jabref/logic/bibtex/comparator/BibStringDiffTest.java similarity index 91% rename from src/test/java/org/jabref/logic/bibtex/comparator/BibStringDiffTest.java rename to jablib/src/test/java/org/jabref/logic/bibtex/comparator/BibStringDiffTest.java index f31bc64512f..106d56ce167 100644 --- a/src/test/java/org/jabref/logic/bibtex/comparator/BibStringDiffTest.java +++ b/jablib/src/test/java/org/jabref/logic/bibtex/comparator/BibStringDiffTest.java @@ -1,6 +1,5 @@ package org.jabref.logic.bibtex.comparator; -import java.util.Collections; import java.util.List; import org.jabref.model.database.BibDatabase; @@ -62,7 +61,7 @@ void compareToNullObjectIsFalse() { @Test void compareToDifferentClassIsFalse() { - assertNotEquals(diff, new Object()); + assertNotEquals(new Object(), diff); } @Test @@ -79,7 +78,7 @@ void compareEmptyDatabases() { when(originalDataBase.hasNoStrings()).thenReturn(true); when(newDataBase.hasNoStrings()).thenReturn(true); - assertEquals(Collections.emptyList(), BibStringDiff.compare(originalDataBase, newDataBase)); + assertEquals(List.of(), BibStringDiff.compare(originalDataBase, newDataBase)); } @Test @@ -98,13 +97,13 @@ void compareNoDiff() { when(newDataBase.getStringValues()).thenReturn(List.of(new BibtexString("name", "content"))); List result = BibStringDiff.compare(originalDataBase, newDataBase); - assertEquals(Collections.emptyList(), result); + assertEquals(List.of(), result); } @Test void compareRemovedString() { when(originalDataBase.getStringValues()).thenReturn(List.of(new BibtexString("name", "content"))); - when(newDataBase.getStringValues()).thenReturn(Collections.emptyList()); + when(newDataBase.getStringValues()).thenReturn(List.of()); List result = BibStringDiff.compare(originalDataBase, newDataBase); BibStringDiff expectedDiff = new BibStringDiff(new BibtexString("name", "content"), null); @@ -113,7 +112,7 @@ void compareRemovedString() { @Test void compareAddString() { - when(originalDataBase.getStringValues()).thenReturn(Collections.emptyList()); + when(originalDataBase.getStringValues()).thenReturn(List.of()); when(newDataBase.getStringValues()).thenReturn(List.of(new BibtexString("name", "content"))); List result = BibStringDiff.compare(originalDataBase, newDataBase); diff --git a/src/test/java/org/jabref/logic/bibtex/comparator/BibtexStringComparatorTest.java b/jablib/src/test/java/org/jabref/logic/bibtex/comparator/BibtexStringComparatorTest.java similarity index 100% rename from src/test/java/org/jabref/logic/bibtex/comparator/BibtexStringComparatorTest.java rename to jablib/src/test/java/org/jabref/logic/bibtex/comparator/BibtexStringComparatorTest.java diff --git a/src/test/java/org/jabref/logic/bibtex/comparator/CrossRefEntryComparatorTest.java b/jablib/src/test/java/org/jabref/logic/bibtex/comparator/CrossRefEntryComparatorTest.java similarity index 100% rename from src/test/java/org/jabref/logic/bibtex/comparator/CrossRefEntryComparatorTest.java rename to jablib/src/test/java/org/jabref/logic/bibtex/comparator/CrossRefEntryComparatorTest.java diff --git a/src/test/java/org/jabref/logic/bibtex/comparator/EntryComparatorTest.java b/jablib/src/test/java/org/jabref/logic/bibtex/comparator/EntryComparatorTest.java similarity index 100% rename from src/test/java/org/jabref/logic/bibtex/comparator/EntryComparatorTest.java rename to jablib/src/test/java/org/jabref/logic/bibtex/comparator/EntryComparatorTest.java diff --git a/src/test/java/org/jabref/logic/bibtex/comparator/FieldComparatorTest.java b/jablib/src/test/java/org/jabref/logic/bibtex/comparator/FieldComparatorTest.java similarity index 89% rename from src/test/java/org/jabref/logic/bibtex/comparator/FieldComparatorTest.java rename to jablib/src/test/java/org/jabref/logic/bibtex/comparator/FieldComparatorTest.java index bbe85f3e60a..9511afc6aa4 100644 --- a/src/test/java/org/jabref/logic/bibtex/comparator/FieldComparatorTest.java +++ b/jablib/src/test/java/org/jabref/logic/bibtex/comparator/FieldComparatorTest.java @@ -17,7 +17,7 @@ class FieldComparatorTest { @Test - void compareMonthFieldIdentity() throws Exception { + void compareMonthFieldIdentity() { FieldComparator comparator = new FieldComparator(StandardField.MONTH); BibEntry equal = new BibEntry() .withField(StandardField.MONTH, "1"); @@ -26,7 +26,7 @@ void compareMonthFieldIdentity() throws Exception { } @Test - void compareMonthFieldEquality() throws Exception { + void compareMonthFieldEquality() { FieldComparator comparator = new FieldComparator(StandardField.MONTH); BibEntry equal = new BibEntry() .withField(StandardField.MONTH, "1"); @@ -37,7 +37,7 @@ void compareMonthFieldEquality() throws Exception { } @Test - void compareMonthFieldBiggerAscending() throws Exception { + void compareMonthFieldBiggerAscending() { FieldComparator comparator = new FieldComparator(StandardField.MONTH); BibEntry smaller = new BibEntry() .withField(StandardField.MONTH, "jan"); @@ -48,7 +48,7 @@ void compareMonthFieldBiggerAscending() throws Exception { } @Test - void compareMonthFieldBiggerDescending() throws Exception { + void compareMonthFieldBiggerDescending() { FieldComparator comparator = new FieldComparator(new OrFields(StandardField.MONTH), true); BibEntry smaller = new BibEntry() .withField(StandardField.MONTH, "feb"); @@ -59,7 +59,7 @@ void compareMonthFieldBiggerDescending() throws Exception { } @Test - void compareYearFieldIdentity() throws Exception { + void compareYearFieldIdentity() { FieldComparator comparator = new FieldComparator(StandardField.YEAR); BibEntry equal = new BibEntry() .withField(StandardField.YEAR, "2016"); @@ -68,7 +68,7 @@ void compareYearFieldIdentity() throws Exception { } @Test - void compareYearFieldEquality() throws Exception { + void compareYearFieldEquality() { FieldComparator comparator = new FieldComparator(StandardField.YEAR); BibEntry equal = new BibEntry() .withField(StandardField.YEAR, "2016"); @@ -79,7 +79,7 @@ void compareYearFieldEquality() throws Exception { } @Test - void compareYearFieldBiggerAscending() throws Exception { + void compareYearFieldBiggerAscending() { FieldComparator comparator = new FieldComparator(StandardField.YEAR); BibEntry smaller = new BibEntry() .withField(StandardField.YEAR, "2000"); @@ -90,7 +90,7 @@ void compareYearFieldBiggerAscending() throws Exception { } @Test - void compareYearFieldBiggerDescending() throws Exception { + void compareYearFieldBiggerDescending() { FieldComparator comparator = new FieldComparator(new OrFields(StandardField.YEAR), true); BibEntry smaller = new BibEntry() .withField(StandardField.YEAR, "2016"); @@ -101,7 +101,7 @@ void compareYearFieldBiggerDescending() throws Exception { } @Test - void compareTypeFieldIdentity() throws Exception { + void compareTypeFieldIdentity() { FieldComparator comparator = new FieldComparator(InternalField.TYPE_HEADER); BibEntry equal = new BibEntry(StandardEntryType.Article); @@ -109,7 +109,7 @@ void compareTypeFieldIdentity() throws Exception { } @Test - void compareTypeFieldEquality() throws Exception { + void compareTypeFieldEquality() { FieldComparator comparator = new FieldComparator(InternalField.TYPE_HEADER); BibEntry equal = new BibEntry(StandardEntryType.Article); equal.setId("1"); @@ -120,7 +120,7 @@ void compareTypeFieldEquality() throws Exception { } @Test - void compareTypeFieldBiggerAscending() throws Exception { + void compareTypeFieldBiggerAscending() { FieldComparator comparator = new FieldComparator(InternalField.TYPE_HEADER); BibEntry smaller = new BibEntry(StandardEntryType.Article); BibEntry bigger = new BibEntry(StandardEntryType.Book); @@ -129,7 +129,7 @@ void compareTypeFieldBiggerAscending() throws Exception { } @Test - void compareTypeFieldBiggerDescending() throws Exception { + void compareTypeFieldBiggerDescending() { FieldComparator comparator = new FieldComparator(new OrFields(InternalField.TYPE_HEADER), true); BibEntry bigger = new BibEntry(StandardEntryType.Article); BibEntry smaller = new BibEntry(StandardEntryType.Book); @@ -138,7 +138,7 @@ void compareTypeFieldBiggerDescending() throws Exception { } @Test - void compareStringFieldsIdentity() throws Exception { + void compareStringFieldsIdentity() { FieldComparator comparator = new FieldComparator(StandardField.TITLE); BibEntry equal = new BibEntry() .withField(StandardField.TITLE, "title"); @@ -147,7 +147,7 @@ void compareStringFieldsIdentity() throws Exception { } @Test - void compareStringFieldsEquality() throws Exception { + void compareStringFieldsEquality() { FieldComparator comparator = new FieldComparator(StandardField.TITLE); BibEntry equal = new BibEntry() .withField(StandardField.TITLE, "title"); @@ -158,7 +158,7 @@ void compareStringFieldsEquality() throws Exception { } @Test - void compareStringFieldsBiggerAscending() throws Exception { + void compareStringFieldsBiggerAscending() { FieldComparator comparator = new FieldComparator(StandardField.TITLE); BibEntry bigger = new BibEntry() .withField(StandardField.TITLE, "b"); @@ -169,7 +169,7 @@ void compareStringFieldsBiggerAscending() throws Exception { } @Test - void compareStringFieldsBiggerDescending() throws Exception { + void compareStringFieldsBiggerDescending() { FieldComparator comparator = new FieldComparator(new OrFields(StandardField.TITLE), true); BibEntry bigger = new BibEntry() .withField(StandardField.TITLE, "a"); @@ -180,7 +180,7 @@ void compareStringFieldsBiggerDescending() throws Exception { } @Test - void compareNumericFieldsBiggerDescending() throws Exception { + void compareNumericFieldsBiggerDescending() { FieldComparator comparator = new FieldComparator(new OrFields(StandardField.PMID), true); BibEntry smaller = new BibEntry() .withField(StandardField.PMID, "234567"); @@ -191,7 +191,7 @@ void compareNumericFieldsBiggerDescending() throws Exception { } @Test - void compareParsableWithNonParsableNumericFieldDescending() throws Exception { + void compareParsableWithNonParsableNumericFieldDescending() { FieldComparator comparator = new FieldComparator(new OrFields(StandardField.PMID), true); BibEntry parsable = new BibEntry() .withField(StandardField.PMID, "123456"); @@ -252,7 +252,7 @@ private static Stream nullTests() { } @Test - void compareAuthorField() throws Exception { + void compareAuthorField() { FieldComparator comparator = new FieldComparator(StandardField.AUTHOR); BibEntry bigger = new BibEntry() .withField(StandardField.AUTHOR, "Freund, Lucas"); diff --git a/src/test/java/org/jabref/logic/bibtex/comparator/GroupDiffTest.java b/jablib/src/test/java/org/jabref/logic/bibtex/comparator/GroupDiffTest.java similarity index 100% rename from src/test/java/org/jabref/logic/bibtex/comparator/GroupDiffTest.java rename to jablib/src/test/java/org/jabref/logic/bibtex/comparator/GroupDiffTest.java diff --git a/src/test/java/org/jabref/logic/bibtex/comparator/MetaDataDiffTest.java b/jablib/src/test/java/org/jabref/logic/bibtex/comparator/MetaDataDiffTest.java similarity index 100% rename from src/test/java/org/jabref/logic/bibtex/comparator/MetaDataDiffTest.java rename to jablib/src/test/java/org/jabref/logic/bibtex/comparator/MetaDataDiffTest.java diff --git a/src/test/java/org/jabref/logic/bibtex/comparator/PreambleDiffTest.java b/jablib/src/test/java/org/jabref/logic/bibtex/comparator/PreambleDiffTest.java similarity index 100% rename from src/test/java/org/jabref/logic/bibtex/comparator/PreambleDiffTest.java rename to jablib/src/test/java/org/jabref/logic/bibtex/comparator/PreambleDiffTest.java diff --git a/src/test/java/org/jabref/logic/bst/BstFunctionsTest.java b/jablib/src/test/java/org/jabref/logic/bst/BstFunctionsTest.java similarity index 95% rename from src/test/java/org/jabref/logic/bst/BstFunctionsTest.java rename to jablib/src/test/java/org/jabref/logic/bst/BstFunctionsTest.java index f9f8a85a8f1..4b892949aea 100644 --- a/src/test/java/org/jabref/logic/bst/BstFunctionsTest.java +++ b/jablib/src/test/java/org/jabref/logic/bst/BstFunctionsTest.java @@ -1,7 +1,6 @@ package org.jabref.logic.bst; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.Map; @@ -49,7 +48,7 @@ void compareFunctions() throws RecognitionException { EXECUTE { test.compare } """); - vm.render(Collections.emptyList()); + vm.render(List.of()); assertEquals(BstVM.FALSE, vm.getStack().pop()); assertEquals(BstVM.TRUE, vm.getStack().pop()); @@ -74,7 +73,7 @@ void arithmeticFunctions() throws RecognitionException { EXECUTE { test } """); - vm.render(Collections.emptyList()); + vm.render(List.of()); assertEquals(3, vm.getStack().pop()); assertEquals(2, vm.getStack().pop()); @@ -90,7 +89,7 @@ void arithmeticFunctionTypeMismatch() throws RecognitionException { EXECUTE { test } """); - assertThrows(BstVMException.class, () -> vm.render(Collections.emptyList())); + assertThrows(BstVMException.class, () -> vm.render(List.of())); } @Test @@ -111,7 +110,7 @@ void stringOperations() throws RecognitionException { EXECUTE { test } """); - vm.render(Collections.emptyList()); + vm.render(List.of()); assertEquals("Johnny.}", vm.getStack().pop()); assertEquals("Johnny?}", vm.getStack().pop()); @@ -161,7 +160,7 @@ void numNames() throws RecognitionException { EXECUTE { test } """); - vm.render(Collections.emptyList()); + vm.render(List.of()); assertEquals(2, vm.getStack().pop()); assertEquals(1, vm.getStack().pop()); @@ -184,7 +183,7 @@ void substring() throws RecognitionException { } EXECUTE { test } """); - vm.render(Collections.emptyList()); + vm.render(List.of()); assertEquals("78", vm.getStack().pop()); assertEquals("789", vm.getStack().pop()); @@ -254,7 +253,7 @@ void formatNameStatic() throws RecognitionException { FUNCTION { format }{ "Charles Louis Xavier Joseph de la Vall{\\'e}e Poussin" #1 "{vv~}{ll}{, jj}{, f}?" format.name$ } EXECUTE { format } """); - List v = Collections.emptyList(); + List v = List.of(); vm.render(v); @@ -306,7 +305,7 @@ void changeCase() throws RecognitionException { EXECUTE { test } """); - vm.render(Collections.emptyList()); + vm.render(List.of()); assertEquals("{A}{D}/{C}ycle: {I}{B}{M}'s {F}ramework for {A}pplication {D}evelopment and {C}ase", vm.getStack().pop()); @@ -332,7 +331,7 @@ void textLength() throws RecognitionException { EXECUTE { test } """); - vm.render(Collections.emptyList()); + vm.render(List.of()); assertEquals(11, vm.getStack().pop()); assertEquals(1, vm.getStack().pop()); @@ -352,7 +351,7 @@ void intToStr() throws RecognitionException { EXECUTE { test } """); - vm.render(Collections.emptyList()); + vm.render(List.of()); assertEquals("9999", vm.getStack().pop()); assertEquals("3", vm.getStack().pop()); @@ -366,7 +365,7 @@ void chrToInt() throws RecognitionException { EXECUTE { test } """); - vm.render(Collections.emptyList()); + vm.render(List.of()); assertEquals(72, vm.getStack().pop()); assertEquals(0, vm.getStack().size()); @@ -379,7 +378,7 @@ void chrToIntIntToChr() throws RecognitionException { EXECUTE {test} """); - vm.render(Collections.emptyList()); + vm.render(List.of()); assertEquals("H", vm.getStack().pop()); assertEquals(0, vm.getStack().size()); @@ -444,7 +443,7 @@ void swap() throws RecognitionException { EXECUTE { a } """); - List v = Collections.emptyList(); + List v = List.of(); vm.render(v); assertEquals(3, vm.getStack().pop()); @@ -460,7 +459,7 @@ void assignFunction() { EXECUTE { test.func } """); - vm.render(Collections.emptyList()); + vm.render(List.of()); Map functions = vm.latestContext.functions(); assertTrue(functions.containsKey("test.func")); @@ -480,7 +479,7 @@ void simpleIf() { EXECUTE { test } """); - vm.render(Collections.emptyList()); + vm.render(List.of()); assertEquals(0, vm.getStack().pop()); assertEquals(1, vm.getStack().pop()); @@ -504,7 +503,7 @@ void simpleWhile() { EXECUTE { test } """); - vm.render(Collections.emptyList()); + vm.render(List.of()); assertEquals(1, vm.getStack().pop()); assertEquals(2, vm.getStack().pop()); @@ -549,7 +548,7 @@ void nestedControlFunctions() throws RecognitionException { } EXECUTE { n.dashify } """); - List v = Collections.emptyList(); + List v = List.of(); vm.render(v); @@ -578,7 +577,7 @@ void logic() throws RecognitionException { EXECUTE { test } """); - vm.render(Collections.emptyList()); + vm.render(List.of()); assertEquals(BstVM.FALSE, vm.getStack().pop()); assertEquals(BstVM.TRUE, vm.getStack().pop()); @@ -654,7 +653,7 @@ void duplicateEmptyPopSwapIf() throws RecognitionException { EXECUTE { test } """); - vm.render(Collections.emptyList()); + vm.render(List.of()); assertEquals("{\\em Hello}", vm.getStack().pop()); assertEquals("", vm.getStack().pop()); @@ -679,7 +678,7 @@ void preambleWriteNewlineQuote() { BibDatabase testDatabase = new BibDatabase(); testDatabase.setPreamble("A Preamble"); - String result = vm.render(Collections.emptyList(), testDatabase); + String result = vm.render(List.of(), testDatabase); assertEquals("A Preamble\nhello\"quoted\"", result); } diff --git a/src/test/java/org/jabref/logic/bst/BstPreviewLayoutTest.java b/jablib/src/test/java/org/jabref/logic/bst/BstPreviewLayoutTest.java similarity index 91% rename from src/test/java/org/jabref/logic/bst/BstPreviewLayoutTest.java rename to jablib/src/test/java/org/jabref/logic/bst/BstPreviewLayoutTest.java index ccd2ff2bb79..9a25e347c3f 100644 --- a/src/test/java/org/jabref/logic/bst/BstPreviewLayoutTest.java +++ b/jablib/src/test/java/org/jabref/logic/bst/BstPreviewLayoutTest.java @@ -1,5 +1,6 @@ package org.jabref.logic.bst; +import java.net.URISyntaxException; import java.nio.file.Path; import org.jabref.model.database.BibDatabase; @@ -18,7 +19,7 @@ class BstPreviewLayoutTest { private final BibDatabaseContext bibDatabaseContext = new BibDatabaseContext(); @Test - void generatePreviewForSimpleEntryUsingAbbr() throws Exception { + void generatePreviewForSimpleEntryUsingAbbr() throws URISyntaxException { BstPreviewLayout bstPreviewLayout = new BstPreviewLayout(Path.of(BstPreviewLayoutTest.class.getResource("abbrv.bst").toURI())); BibEntry entry = new BibEntry().withField(StandardField.AUTHOR, "Oliver Kopp") .withField(StandardField.TITLE, "Thoughts on Development"); @@ -28,7 +29,7 @@ void generatePreviewForSimpleEntryUsingAbbr() throws Exception { } @Test - void monthMayIsCorrectlyRendered() throws Exception { + void monthMayIsCorrectlyRendered() throws URISyntaxException { BstPreviewLayout bstPreviewLayout = new BstPreviewLayout(Path.of(BstPreviewLayoutTest.class.getResource("abbrv.bst").toURI())); BibEntry entry = new BibEntry().withField(StandardField.AUTHOR, "Oliver Kopp") .withField(StandardField.TITLE, "Thoughts on Development") @@ -39,15 +40,15 @@ void monthMayIsCorrectlyRendered() throws Exception { } @Test - void generatePreviewForSliceTheoremPaperUsingAbbr() throws Exception { + void generatePreviewForSliceTheoremPaperUsingAbbr() throws URISyntaxException { BstPreviewLayout bstPreviewLayout = new BstPreviewLayout(Path.of(BstPreviewLayoutTest.class.getResource("abbrv.bst").toURI())); String preview = bstPreviewLayout.generatePreview(getSliceTheoremPaper(), bibDatabaseContext); assertEquals("T. Diez. Slice theorem for fréchet group actions and covariant symplectic field theory. May 2014.", preview); } @Test - void generatePreviewForSliceTheoremPaperUsingIEEE() throws Exception { - BstPreviewLayout bstPreviewLayout = new BstPreviewLayout(Path.of(ClassLoader.getSystemResource("bst/IEEEtran.bst").toURI())); + void generatePreviewForSliceTheoremPaperUsingIEEE() throws URISyntaxException { + BstPreviewLayout bstPreviewLayout = new BstPreviewLayout(Path.of(BstPreviewLayoutTest.class.getResource("IEEEtran.bst").toURI())); String preview = bstPreviewLayout.generatePreview(getSliceTheoremPaper(), bibDatabaseContext); assertEquals("T. Diez, \"Slice theorem for fréchet group actions and covariant symplectic field theory\" May 2014.", preview); } diff --git a/src/test/java/org/jabref/logic/bst/BstVMTest.java b/jablib/src/test/java/org/jabref/logic/bst/BstVMTest.java similarity index 92% rename from src/test/java/org/jabref/logic/bst/BstVMTest.java rename to jablib/src/test/java/org/jabref/logic/bst/BstVMTest.java index e001be0a977..53373895e94 100644 --- a/src/test/java/org/jabref/logic/bst/BstVMTest.java +++ b/jablib/src/test/java/org/jabref/logic/bst/BstVMTest.java @@ -1,8 +1,8 @@ package org.jabref.logic.bst; import java.io.IOException; +import java.net.URISyntaxException; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import org.jabref.logic.util.TestEntry; @@ -31,8 +31,8 @@ public static BibEntry defaultTestEntry() { } @Test - void abbrv() throws RecognitionException, IOException { - BstVM vm = new BstVM(Path.of("src/test/resources/org/jabref/logic/bst/abbrv.bst")); + void abbrv() throws URISyntaxException, IOException { + BstVM vm = new BstVM(Path.of(BstVMTest.class.getResource("abbrv.bst").toURI())); List testEntries = List.of(defaultTestEntry()); String expected = "\\begin{thebibliography}{1}\\bibitem{canh05}K.~Crowston, H.~Annabi, J.~Howison, and C.~Masango.\\newblock Effective work practices for floss development: A model and propositions.\\newblock In {\\em Hawaii International Conference On System Sciences (HICSS)}, 2005.\\end{thebibliography}"; @@ -44,8 +44,8 @@ void abbrv() throws RecognitionException, IOException { } @Test - void ieeetran() throws RecognitionException, IOException { - BstVM vm = new BstVM(Path.of("src/main/resources/bst/IEEEtran.bst")); + void ieeetran() throws URISyntaxException, IOException { + BstVM vm = new BstVM(Path.of(BstVMTest.class.getResource("IEEEtran.bst").toURI())); List testEntries = List.of(TestEntry.getTestEntry()); String expected = """ @@ -107,7 +107,7 @@ void label() throws RecognitionException { void quote() throws RecognitionException { BstVM vm = new BstVM("FUNCTION { a }{ quote$ quote$ * } EXECUTE { a }"); - vm.render(Collections.emptyList()); + vm.render(List.of()); assertEquals("\"\"", vm.latestContext.stack().pop()); } @@ -115,7 +115,7 @@ void quote() throws RecognitionException { void buildIn() throws RecognitionException { BstVM vm = new BstVM("EXECUTE { global.max$ }"); - vm.render(Collections.emptyList()); + vm.render(List.of()); assertEquals(Integer.MAX_VALUE, vm.latestContext.stack().pop()); assertTrue(vm.latestContext.stack().isEmpty()); @@ -135,14 +135,14 @@ void variables() throws RecognitionException { EXECUTE { n.dashify } """); - vm.render(Collections.emptyList()); + vm.render(List.of()); assertEquals(BstVM.TRUE, vm.latestContext.stack().pop()); } @Test - void hyphenatedName() throws RecognitionException, IOException { - BstVM vm = new BstVM(Path.of("src/test/resources/org/jabref/logic/bst/abbrv.bst")); + void hyphenatedName() throws URISyntaxException, IOException { + BstVM vm = new BstVM(Path.of(BstVMTest.class.getResource("abbrv.bst").toURI())); List testEntries = List.of( new BibEntry(StandardEntryType.Article) .withCitationKey("canh05") @@ -183,7 +183,7 @@ void abbrevStyleChopWord() { EXECUTE { test } """); - vm.render(Collections.emptyList()); + vm.render(List.of()); assertEquals("A Colorful Morning", vm.latestContext.stack().pop()); assertEquals("Colorful Morning", vm.latestContext.stack().pop()); @@ -229,7 +229,7 @@ void abbrevStyleSortFormatTitle() { EXECUTE {test} """); - vm.render(Collections.emptyList()); + vm.render(List.of()); assertEquals("colorful morning", vm.latestContext.stack().pop()); } diff --git a/src/test/java/org/jabref/logic/bst/BstVMVisitorTest.java b/jablib/src/test/java/org/jabref/logic/bst/BstVMVisitorTest.java similarity index 96% rename from src/test/java/org/jabref/logic/bst/BstVMVisitorTest.java rename to jablib/src/test/java/org/jabref/logic/bst/BstVMVisitorTest.java index c8c57f250db..def18af01de 100644 --- a/src/test/java/org/jabref/logic/bst/BstVMVisitorTest.java +++ b/jablib/src/test/java/org/jabref/logic/bst/BstVMVisitorTest.java @@ -1,6 +1,5 @@ package org.jabref.logic.bst; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; @@ -24,7 +23,7 @@ class BstVMVisitorTest { void visitStringsCommand() { BstVM vm = new BstVM("STRINGS { test.string1 test.string2 test.string3 }"); - vm.render(Collections.emptyList()); + vm.render(List.of()); Map strList = vm.latestContext.strings(); assertTrue(strList.containsKey("test.string1")); @@ -39,7 +38,7 @@ void visitStringsCommand() { void visitIntegersCommand() { BstVM vm = new BstVM("INTEGERS { variable.a variable.b variable.c }"); - vm.render(Collections.emptyList()); + vm.render(List.of()); Map integersList = vm.latestContext.integers(); assertTrue(integersList.containsKey("variable.a")); @@ -57,7 +56,7 @@ void visitFunctionCommand() { EXECUTE { test.func } """); - vm.render(Collections.emptyList()); + vm.render(List.of()); Map functions = vm.latestContext.functions(); assertTrue(functions.containsKey("test.func")); @@ -71,7 +70,7 @@ void visitMacroCommand() { EXECUTE { jan } """); - vm.render(Collections.emptyList()); + vm.render(List.of()); Map functions = vm.latestContext.functions(); assertTrue(functions.containsKey("jan")); @@ -125,7 +124,7 @@ void visitExecuteCommand() throws RecognitionException { EXECUTE { init.state.consts } """); - vm.render(Collections.emptyList()); + vm.render(List.of()); assertEquals(5, vm.latestContext.integers().get("variable.a")); } @@ -236,7 +235,7 @@ void visitStackitem() { EXECUTE { test } """); - vm.render(Collections.emptyList()); + vm.render(List.of()); assertEquals(3, vm.getStack().pop()); assertInstanceOf(ParseTree.class, vm.getStack().pop()); diff --git a/src/test/java/org/jabref/logic/bst/util/BstCaseChangersTest.java b/jablib/src/test/java/org/jabref/logic/bst/util/BstCaseChangersTest.java similarity index 100% rename from src/test/java/org/jabref/logic/bst/util/BstCaseChangersTest.java rename to jablib/src/test/java/org/jabref/logic/bst/util/BstCaseChangersTest.java diff --git a/src/test/java/org/jabref/logic/bst/util/BstNameFormatterTest.java b/jablib/src/test/java/org/jabref/logic/bst/util/BstNameFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/bst/util/BstNameFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/bst/util/BstNameFormatterTest.java diff --git a/src/test/java/org/jabref/logic/bst/util/BstPurifierTest.java b/jablib/src/test/java/org/jabref/logic/bst/util/BstPurifierTest.java similarity index 100% rename from src/test/java/org/jabref/logic/bst/util/BstPurifierTest.java rename to jablib/src/test/java/org/jabref/logic/bst/util/BstPurifierTest.java diff --git a/src/test/java/org/jabref/logic/bst/util/BstTextPrefixerTest.java b/jablib/src/test/java/org/jabref/logic/bst/util/BstTextPrefixerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/bst/util/BstTextPrefixerTest.java rename to jablib/src/test/java/org/jabref/logic/bst/util/BstTextPrefixerTest.java diff --git a/src/test/java/org/jabref/logic/bst/util/BstWidthCalculatorTest.java b/jablib/src/test/java/org/jabref/logic/bst/util/BstWidthCalculatorTest.java similarity index 100% rename from src/test/java/org/jabref/logic/bst/util/BstWidthCalculatorTest.java rename to jablib/src/test/java/org/jabref/logic/bst/util/BstWidthCalculatorTest.java diff --git a/src/test/java/org/jabref/logic/citationkeypattern/AbstractCitationKeyPatternsTest.java b/jablib/src/test/java/org/jabref/logic/citationkeypattern/AbstractCitationKeyPatternsTest.java similarity index 100% rename from src/test/java/org/jabref/logic/citationkeypattern/AbstractCitationKeyPatternsTest.java rename to jablib/src/test/java/org/jabref/logic/citationkeypattern/AbstractCitationKeyPatternsTest.java diff --git a/src/test/java/org/jabref/logic/citationkeypattern/BracketedPatternTest.java b/jablib/src/test/java/org/jabref/logic/citationkeypattern/BracketedPatternTest.java similarity index 100% rename from src/test/java/org/jabref/logic/citationkeypattern/BracketedPatternTest.java rename to jablib/src/test/java/org/jabref/logic/citationkeypattern/BracketedPatternTest.java diff --git a/src/test/java/org/jabref/logic/citationkeypattern/CitationKeyGeneratorTest.java b/jablib/src/test/java/org/jabref/logic/citationkeypattern/CitationKeyGeneratorTest.java similarity index 100% rename from src/test/java/org/jabref/logic/citationkeypattern/CitationKeyGeneratorTest.java rename to jablib/src/test/java/org/jabref/logic/citationkeypattern/CitationKeyGeneratorTest.java diff --git a/src/test/java/org/jabref/logic/citationkeypattern/MakeLabelWithDatabaseTest.java b/jablib/src/test/java/org/jabref/logic/citationkeypattern/MakeLabelWithDatabaseTest.java similarity index 100% rename from src/test/java/org/jabref/logic/citationkeypattern/MakeLabelWithDatabaseTest.java rename to jablib/src/test/java/org/jabref/logic/citationkeypattern/MakeLabelWithDatabaseTest.java diff --git a/src/test/java/org/jabref/logic/citationkeypattern/MakeLabelWithoutDatabaseTest.java b/jablib/src/test/java/org/jabref/logic/citationkeypattern/MakeLabelWithoutDatabaseTest.java similarity index 100% rename from src/test/java/org/jabref/logic/citationkeypattern/MakeLabelWithoutDatabaseTest.java rename to jablib/src/test/java/org/jabref/logic/citationkeypattern/MakeLabelWithoutDatabaseTest.java diff --git a/src/test/java/org/jabref/logic/citationstyle/CSLStyleLoaderTest.java b/jablib/src/test/java/org/jabref/logic/citationstyle/CSLStyleLoaderTest.java similarity index 100% rename from src/test/java/org/jabref/logic/citationstyle/CSLStyleLoaderTest.java rename to jablib/src/test/java/org/jabref/logic/citationstyle/CSLStyleLoaderTest.java diff --git a/src/test/java/org/jabref/logic/citationstyle/CSLStyleUtilsTest.java b/jablib/src/test/java/org/jabref/logic/citationstyle/CSLStyleUtilsTest.java similarity index 100% rename from src/test/java/org/jabref/logic/citationstyle/CSLStyleUtilsTest.java rename to jablib/src/test/java/org/jabref/logic/citationstyle/CSLStyleUtilsTest.java diff --git a/src/test/java/org/jabref/logic/citationstyle/CitationStyleCacheTest.java b/jablib/src/test/java/org/jabref/logic/citationstyle/CitationStyleCacheTest.java similarity index 100% rename from src/test/java/org/jabref/logic/citationstyle/CitationStyleCacheTest.java rename to jablib/src/test/java/org/jabref/logic/citationstyle/CitationStyleCacheTest.java diff --git a/src/test/java/org/jabref/logic/citationstyle/CitationStyleCatalogGeneratorTest.java b/jablib/src/test/java/org/jabref/logic/citationstyle/CitationStyleCatalogGeneratorTest.java similarity index 96% rename from src/test/java/org/jabref/logic/citationstyle/CitationStyleCatalogGeneratorTest.java rename to jablib/src/test/java/org/jabref/logic/citationstyle/CitationStyleCatalogGeneratorTest.java index 1176fbf638b..0afccc1d874 100644 --- a/src/test/java/org/jabref/logic/citationstyle/CitationStyleCatalogGeneratorTest.java +++ b/jablib/src/test/java/org/jabref/logic/citationstyle/CitationStyleCatalogGeneratorTest.java @@ -6,6 +6,8 @@ import java.util.List; import java.util.Map; +import org.jabref.generators.CitationStyleCatalogGenerator; + import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.jupiter.api.BeforeEach; diff --git a/src/test/java/org/jabref/logic/citationstyle/CitationStyleGeneratorTest.java b/jablib/src/test/java/org/jabref/logic/citationstyle/CitationStyleGeneratorTest.java similarity index 100% rename from src/test/java/org/jabref/logic/citationstyle/CitationStyleGeneratorTest.java rename to jablib/src/test/java/org/jabref/logic/citationstyle/CitationStyleGeneratorTest.java diff --git a/src/test/java/org/jabref/logic/citationstyle/JabRefItemDataProviderTest.java b/jablib/src/test/java/org/jabref/logic/citationstyle/JabRefItemDataProviderTest.java similarity index 100% rename from src/test/java/org/jabref/logic/citationstyle/JabRefItemDataProviderTest.java rename to jablib/src/test/java/org/jabref/logic/citationstyle/JabRefItemDataProviderTest.java diff --git a/src/test/java/org/jabref/logic/cleanup/BibtexBiblatexRoundtripTest.java b/jablib/src/test/java/org/jabref/logic/cleanup/BibtexBiblatexRoundtripTest.java similarity index 100% rename from src/test/java/org/jabref/logic/cleanup/BibtexBiblatexRoundtripTest.java rename to jablib/src/test/java/org/jabref/logic/cleanup/BibtexBiblatexRoundtripTest.java diff --git a/src/test/java/org/jabref/logic/cleanup/CleanupWorkerTest.java b/jablib/src/test/java/org/jabref/logic/cleanup/CleanupWorkerTest.java similarity index 91% rename from src/test/java/org/jabref/logic/cleanup/CleanupWorkerTest.java rename to jablib/src/test/java/org/jabref/logic/cleanup/CleanupWorkerTest.java index 7f01fc0e81f..fd33f35feba 100644 --- a/src/test/java/org/jabref/logic/cleanup/CleanupWorkerTest.java +++ b/jablib/src/test/java/org/jabref/logic/cleanup/CleanupWorkerTest.java @@ -4,7 +4,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; -import java.util.Collections; import java.util.EnumSet; import java.util.List; import java.util.Optional; @@ -104,7 +103,7 @@ void cleanupDoesNothingByDefault(@TempDir Path bibFolder) throws IOException { entry.setField(StandardField.FILE, FileFieldWriter.getStringRepresentation(fileField)); List changes = worker.cleanup(emptyPreset, entry); - assertEquals(Collections.emptyList(), changes); + assertEquals(List.of(), changes); } @Test @@ -148,7 +147,7 @@ void cleanupDoiReturnsChanges() { List changes = worker.cleanup(preset, entry); FieldChange expectedChange = new FieldChange(entry, StandardField.DOI, "http://dx.doi.org/10.1016/0001-8708(80)90035-3", "10.1016/0001-8708(80)90035-3"); - assertEquals(Collections.singletonList(expectedChange), changes); + assertEquals(List.of(expectedChange), changes); } @Test @@ -178,7 +177,7 @@ void cleanupDoiReturnsChangeWhenDoiInURLField() { @Test void cleanupMonthChangesNumberToBibtex() { CleanupPreferences preset = new CleanupPreferences(new FieldFormatterCleanups(true, - Collections.singletonList(new FieldFormatterCleanup(StandardField.MONTH, new NormalizeMonthFormatter())))); + List.of(new FieldFormatterCleanup(StandardField.MONTH, new NormalizeMonthFormatter())))); BibEntry entry = new BibEntry(); entry.setField(StandardField.MONTH, "01"); @@ -189,7 +188,7 @@ void cleanupMonthChangesNumberToBibtex() { @Test void cleanupPageNumbersConvertsSingleDashToDouble() { CleanupPreferences preset = new CleanupPreferences(new FieldFormatterCleanups(true, - Collections.singletonList(new FieldFormatterCleanup(StandardField.PAGES, new NormalizePagesFormatter())))); + List.of(new FieldFormatterCleanup(StandardField.PAGES, new NormalizePagesFormatter())))); BibEntry entry = new BibEntry(); entry.setField(StandardField.PAGES, "1-2"); @@ -200,7 +199,7 @@ void cleanupPageNumbersConvertsSingleDashToDouble() { @Test void cleanupDatesConvertsToCorrectFormat() { CleanupPreferences preset = new CleanupPreferences(new FieldFormatterCleanups(true, - Collections.singletonList(new FieldFormatterCleanup(StandardField.DATE, new NormalizeDateFormatter())))); + List.of(new FieldFormatterCleanup(StandardField.DATE, new NormalizeDateFormatter())))); BibEntry entry = new BibEntry(); entry.setField(StandardField.DATE, "01/1999"); @@ -268,7 +267,7 @@ void cleanupRenamePdfRenamesRelativeFile() throws IOException { @Test void cleanupHtmlToLatexConvertsEpsilonToLatex() { CleanupPreferences preset = new CleanupPreferences(new FieldFormatterCleanups(true, - Collections.singletonList(new FieldFormatterCleanup(StandardField.TITLE, new HtmlToLatexFormatter())))); + List.of(new FieldFormatterCleanup(StandardField.TITLE, new HtmlToLatexFormatter())))); BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "Ε"); @@ -279,7 +278,7 @@ void cleanupHtmlToLatexConvertsEpsilonToLatex() { @Test void cleanupUnitsConvertsOneAmpereToLatex() { CleanupPreferences preset = new CleanupPreferences(new FieldFormatterCleanups(true, - Collections.singletonList(new FieldFormatterCleanup(StandardField.TITLE, new UnitsToLatexFormatter())))); + List.of(new FieldFormatterCleanup(StandardField.TITLE, new UnitsToLatexFormatter())))); BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "1 A"); @@ -290,11 +289,10 @@ void cleanupUnitsConvertsOneAmpereToLatex() { @Test void cleanupCasesAddsBracketAroundAluminiumGalliumArsenid() { ProtectedTermsLoader protectedTermsLoader = new ProtectedTermsLoader( - new ProtectedTermsPreferences(ProtectedTermsLoader.getInternalLists(), Collections.emptyList(), - Collections.emptyList(), Collections.emptyList())); - assertNotEquals(Collections.emptyList(), protectedTermsLoader.getProtectedTerms()); - CleanupPreferences preset = new CleanupPreferences(new FieldFormatterCleanups(true, Collections - .singletonList(new FieldFormatterCleanup(StandardField.TITLE, new ProtectTermsFormatter(protectedTermsLoader))))); + new ProtectedTermsPreferences(ProtectedTermsLoader.getInternalLists(), List.of(), + List.of(), List.of())); + assertNotEquals(List.of(), protectedTermsLoader.getProtectedTerms()); + CleanupPreferences preset = new CleanupPreferences(new FieldFormatterCleanups(true, List.of(new FieldFormatterCleanup(StandardField.TITLE, new ProtectTermsFormatter(protectedTermsLoader))))); BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "AlGaAs"); @@ -305,7 +303,7 @@ void cleanupCasesAddsBracketAroundAluminiumGalliumArsenid() { @Test void cleanupLatexMergesTwoLatexMathEnvironments() { CleanupPreferences preset = new CleanupPreferences(new FieldFormatterCleanups(true, - Collections.singletonList(new FieldFormatterCleanup(StandardField.TITLE, new LatexCleanupFormatter())))); + List.of(new FieldFormatterCleanup(StandardField.TITLE, new LatexCleanupFormatter())))); BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "$\\alpha$$\\beta$"); @@ -338,7 +336,7 @@ void convertToBiblatexMovesJournalToJournalTitle() { @Test void cleanupWithDisabledFieldFormatterChangesNothing() { CleanupPreferences preset = new CleanupPreferences(new FieldFormatterCleanups(false, - Collections.singletonList(new FieldFormatterCleanup(StandardField.MONTH, new NormalizeMonthFormatter())))); + List.of(new FieldFormatterCleanup(StandardField.MONTH, new NormalizeMonthFormatter())))); BibEntry entry = new BibEntry(); entry.setField(StandardField.MONTH, "01"); diff --git a/src/test/java/org/jabref/logic/cleanup/ConvertToBiblatexCleanupTest.java b/jablib/src/test/java/org/jabref/logic/cleanup/ConvertToBiblatexCleanupTest.java similarity index 100% rename from src/test/java/org/jabref/logic/cleanup/ConvertToBiblatexCleanupTest.java rename to jablib/src/test/java/org/jabref/logic/cleanup/ConvertToBiblatexCleanupTest.java diff --git a/src/test/java/org/jabref/logic/cleanup/ConvertToBibtexCleanupTest.java b/jablib/src/test/java/org/jabref/logic/cleanup/ConvertToBibtexCleanupTest.java similarity index 100% rename from src/test/java/org/jabref/logic/cleanup/ConvertToBibtexCleanupTest.java rename to jablib/src/test/java/org/jabref/logic/cleanup/ConvertToBibtexCleanupTest.java diff --git a/src/test/java/org/jabref/logic/cleanup/DoiCleanupTest.java b/jablib/src/test/java/org/jabref/logic/cleanup/DoiCleanupTest.java similarity index 100% rename from src/test/java/org/jabref/logic/cleanup/DoiCleanupTest.java rename to jablib/src/test/java/org/jabref/logic/cleanup/DoiCleanupTest.java diff --git a/src/test/java/org/jabref/logic/cleanup/DoiDecodeCleanupTest.java b/jablib/src/test/java/org/jabref/logic/cleanup/DoiDecodeCleanupTest.java similarity index 100% rename from src/test/java/org/jabref/logic/cleanup/DoiDecodeCleanupTest.java rename to jablib/src/test/java/org/jabref/logic/cleanup/DoiDecodeCleanupTest.java diff --git a/src/test/java/org/jabref/logic/cleanup/EprintCleanupTest.java b/jablib/src/test/java/org/jabref/logic/cleanup/EprintCleanupTest.java similarity index 100% rename from src/test/java/org/jabref/logic/cleanup/EprintCleanupTest.java rename to jablib/src/test/java/org/jabref/logic/cleanup/EprintCleanupTest.java diff --git a/src/test/java/org/jabref/logic/cleanup/FieldFormatterCleanupTest.java b/jablib/src/test/java/org/jabref/logic/cleanup/FieldFormatterCleanupTest.java similarity index 93% rename from src/test/java/org/jabref/logic/cleanup/FieldFormatterCleanupTest.java rename to jablib/src/test/java/org/jabref/logic/cleanup/FieldFormatterCleanupTest.java index 795a8055456..52c82f88505 100644 --- a/src/test/java/org/jabref/logic/cleanup/FieldFormatterCleanupTest.java +++ b/jablib/src/test/java/org/jabref/logic/cleanup/FieldFormatterCleanupTest.java @@ -38,7 +38,7 @@ void setUp() { } @Test - void internalAllField() throws Exception { + void internalAllField() { FieldFormatterCleanup cleanup = new FieldFormatterCleanup(InternalField.INTERNAL_ALL_FIELD, new UpperCaseFormatter()); cleanup.cleanup(entry); @@ -52,7 +52,7 @@ void internalAllField() throws Exception { } @Test - void internalAllTextFieldsField() throws Exception { + void internalAllTextFieldsField() { FieldFormatterCleanup cleanup = new FieldFormatterCleanup(InternalField.INTERNAL_ALL_TEXT_FIELDS_FIELD, new UpperCaseFormatter()); cleanup.cleanup(entry); @@ -66,7 +66,7 @@ void internalAllTextFieldsField() throws Exception { } @Test - void cleanupAllFieldsIgnoresKeyField() throws Exception { + void cleanupAllFieldsIgnoresKeyField() { FieldFormatterCleanup cleanup = new FieldFormatterCleanup(InternalField.INTERNAL_ALL_FIELD, new UnicodeToLatexFormatter()); entry.setField(InternalField.KEY_FIELD, "François-Marie Arouet"); // Contains ç, not in Basic Latin cleanup.cleanup(entry); @@ -75,7 +75,7 @@ void cleanupAllFieldsIgnoresKeyField() throws Exception { } @Test - void cleanupAllTextFieldsIgnoresKeyField() throws Exception { + void cleanupAllTextFieldsIgnoresKeyField() { FieldFormatterCleanup cleanup = new FieldFormatterCleanup(InternalField.INTERNAL_ALL_TEXT_FIELDS_FIELD, new UnicodeToLatexFormatter()); entry.setField(InternalField.KEY_FIELD, "François-Marie Arouet"); // Contains ç, not in Basic Latin cleanup.cleanup(entry); @@ -84,7 +84,7 @@ void cleanupAllTextFieldsIgnoresKeyField() throws Exception { } @Test - void cleanupKeyFieldCleansUpKeyField() throws Exception { + void cleanupKeyFieldCleansUpKeyField() { FieldFormatterCleanup cleanup = new FieldFormatterCleanup(InternalField.KEY_FIELD, new UnicodeToLatexFormatter()); entry.setField(InternalField.KEY_FIELD, "François-Marie Arouet"); // Contains ç, not in Basic Latin cleanup.cleanup(entry); diff --git a/src/test/java/org/jabref/logic/cleanup/FieldFormatterCleanupsTest.java b/jablib/src/test/java/org/jabref/logic/cleanup/FieldFormatterCleanupsTest.java similarity index 98% rename from src/test/java/org/jabref/logic/cleanup/FieldFormatterCleanupsTest.java rename to jablib/src/test/java/org/jabref/logic/cleanup/FieldFormatterCleanupsTest.java index e2582f2194b..0f73d37f73c 100644 --- a/src/test/java/org/jabref/logic/cleanup/FieldFormatterCleanupsTest.java +++ b/jablib/src/test/java/org/jabref/logic/cleanup/FieldFormatterCleanupsTest.java @@ -2,7 +2,6 @@ import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.stream.Stream; @@ -54,7 +53,7 @@ void checkSimpleUseCase() { FieldFormatterCleanups actions = new FieldFormatterCleanups(true, FieldFormatterCleanups.parse("title[identity]")); FieldFormatterCleanup identityInTitle = new FieldFormatterCleanup(StandardField.TITLE, new IdentityFormatter()); - assertEquals(Collections.singletonList(identityInTitle), actions.getConfiguredActions()); + assertEquals(List.of(identityInTitle), actions.getConfiguredActions()); actions.applySaveActions(entry); @@ -65,7 +64,7 @@ void checkSimpleUseCase() { void invalidSaveActionSting() { FieldFormatterCleanups actions = new FieldFormatterCleanups(true, FieldFormatterCleanups.parse("title")); - assertEquals(Collections.emptyList(), actions.getConfiguredActions()); + assertEquals(List.of(), actions.getConfiguredActions()); actions.applySaveActions(entry); diff --git a/src/test/java/org/jabref/logic/cleanup/ISSNCleanupTest.java b/jablib/src/test/java/org/jabref/logic/cleanup/ISSNCleanupTest.java similarity index 100% rename from src/test/java/org/jabref/logic/cleanup/ISSNCleanupTest.java rename to jablib/src/test/java/org/jabref/logic/cleanup/ISSNCleanupTest.java diff --git a/src/test/java/org/jabref/logic/cleanup/MoveFilesCleanupTest.java b/jablib/src/test/java/org/jabref/logic/cleanup/MoveFilesCleanupTest.java similarity index 98% rename from src/test/java/org/jabref/logic/cleanup/MoveFilesCleanupTest.java rename to jablib/src/test/java/org/jabref/logic/cleanup/MoveFilesCleanupTest.java index 90ab8a91052..d2ca42a8abc 100644 --- a/src/test/java/org/jabref/logic/cleanup/MoveFilesCleanupTest.java +++ b/jablib/src/test/java/org/jabref/logic/cleanup/MoveFilesCleanupTest.java @@ -4,7 +4,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Optional; @@ -147,6 +146,6 @@ void movesFileWithNoDirectory() { databaseContext.setMetaData(new MetaData()); when(filePreferences.getFileDirectoryPattern()).thenReturn(""); List changes = cleanup.cleanup(entry); - assertEquals(Collections.emptyList(), changes); + assertEquals(List.of(), changes); } } diff --git a/src/test/java/org/jabref/logic/cleanup/RemoveLinksToNotExistentFilesTest.java b/jablib/src/test/java/org/jabref/logic/cleanup/RemoveLinksToNotExistentFilesTest.java similarity index 100% rename from src/test/java/org/jabref/logic/cleanup/RemoveLinksToNotExistentFilesTest.java rename to jablib/src/test/java/org/jabref/logic/cleanup/RemoveLinksToNotExistentFilesTest.java diff --git a/src/test/java/org/jabref/logic/cleanup/RenamePdfCleanupTest.java b/jablib/src/test/java/org/jabref/logic/cleanup/RenamePdfCleanupTest.java similarity index 100% rename from src/test/java/org/jabref/logic/cleanup/RenamePdfCleanupTest.java rename to jablib/src/test/java/org/jabref/logic/cleanup/RenamePdfCleanupTest.java diff --git a/src/test/java/org/jabref/logic/cleanup/TimeStampToCreationDateTest.java b/jablib/src/test/java/org/jabref/logic/cleanup/TimeStampToCreationDateTest.java similarity index 100% rename from src/test/java/org/jabref/logic/cleanup/TimeStampToCreationDateTest.java rename to jablib/src/test/java/org/jabref/logic/cleanup/TimeStampToCreationDateTest.java diff --git a/src/test/java/org/jabref/logic/cleanup/TimeStampToModificationDateTest.java b/jablib/src/test/java/org/jabref/logic/cleanup/TimeStampToModificationDateTest.java similarity index 100% rename from src/test/java/org/jabref/logic/cleanup/TimeStampToModificationDateTest.java rename to jablib/src/test/java/org/jabref/logic/cleanup/TimeStampToModificationDateTest.java diff --git a/src/test/java/org/jabref/logic/cleanup/URLCleanupTest.java b/jablib/src/test/java/org/jabref/logic/cleanup/URLCleanupTest.java similarity index 100% rename from src/test/java/org/jabref/logic/cleanup/URLCleanupTest.java rename to jablib/src/test/java/org/jabref/logic/cleanup/URLCleanupTest.java diff --git a/src/test/java/org/jabref/logic/crawler/CrawlerTest.java b/jablib/src/test/java/org/jabref/logic/crawler/CrawlerTest.java similarity index 90% rename from src/test/java/org/jabref/logic/crawler/CrawlerTest.java rename to jablib/src/test/java/org/jabref/logic/crawler/CrawlerTest.java index 9fcf26c2665..3542124c8d0 100644 --- a/src/test/java/org/jabref/logic/crawler/CrawlerTest.java +++ b/jablib/src/test/java/org/jabref/logic/crawler/CrawlerTest.java @@ -1,5 +1,7 @@ package org.jabref.logic.crawler; +import java.io.IOException; +import java.net.URISyntaxException; import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; @@ -10,9 +12,11 @@ import org.jabref.logic.citationkeypattern.CitationKeyPatternPreferences; import org.jabref.logic.citationkeypattern.GlobalCitationKeyPatterns; import org.jabref.logic.exporter.SaveConfiguration; +import org.jabref.logic.exporter.SaveException; import org.jabref.logic.git.SlrGitHandler; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.logic.importer.ImporterPreferences; +import org.jabref.logic.importer.ParseException; import org.jabref.logic.preferences.CliPreferences; import org.jabref.logic.util.io.FileUtil; import org.jabref.model.entry.BibEntryTypesManager; @@ -21,6 +25,7 @@ import org.jabref.testutils.category.FetcherTest; import org.eclipse.jgit.api.Git; +import org.eclipse.jgit.api.errors.GitAPIException; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; @@ -53,7 +58,7 @@ class CrawlerTest { * Set up mocks and copies the study definition file into the test repository */ @BeforeEach - void setUp() throws Exception { + void setUp() throws GitAPIException, URISyntaxException { setUpRepository(); CitationKeyPatternPreferences citationKeyPatternPreferences = new CitationKeyPatternPreferences( @@ -80,7 +85,7 @@ void setUp() throws Exception { entryTypesManager = new BibEntryTypesManager(); } - private void setUpRepository() throws Exception { + private void setUpRepository() throws GitAPIException, URISyntaxException { Git git = Git.init() .setDirectory(tempRepositoryDirectory.toFile()) .call(); @@ -94,14 +99,14 @@ private void setUpRepository() throws Exception { git.close(); } - private void setUpTestStudyDefinitionFile() throws Exception { + private void setUpTestStudyDefinitionFile() throws URISyntaxException { Path destination = tempRepositoryDirectory.resolve(StudyRepository.STUDY_DEFINITION_FILE_NAME); URL studyDefinition = this.getClass().getResource(StudyRepository.STUDY_DEFINITION_FILE_NAME); FileUtil.copyFile(Path.of(studyDefinition.toURI()), destination, false); } @Test - void whetherAllFilesAreCreated() throws Exception { + void whetherAllFilesAreCreated() throws IOException, ParseException, GitAPIException, SaveException { Crawler testCrawler = new Crawler(getPathToStudyDefinitionFile(), gitHandler, preferences, diff --git a/src/test/java/org/jabref/logic/crawler/StudyCatalogToFetcherConverterTest.java b/jablib/src/test/java/org/jabref/logic/crawler/StudyCatalogToFetcherConverterTest.java similarity index 94% rename from src/test/java/org/jabref/logic/crawler/StudyCatalogToFetcherConverterTest.java rename to jablib/src/test/java/org/jabref/logic/crawler/StudyCatalogToFetcherConverterTest.java index e5c0ce3cf75..3f271d9326b 100644 --- a/src/test/java/org/jabref/logic/crawler/StudyCatalogToFetcherConverterTest.java +++ b/jablib/src/test/java/org/jabref/logic/crawler/StudyCatalogToFetcherConverterTest.java @@ -1,5 +1,7 @@ package org.jabref.logic.crawler; +import java.io.IOException; +import java.net.URISyntaxException; import java.net.URL; import java.nio.file.Path; import java.util.List; @@ -48,7 +50,7 @@ void setUpMocks() { } @Test - void getActiveFetcherInstances() throws Exception { + void getActiveFetcherInstances() throws IOException, URISyntaxException { Path studyDefinition = tempRepositoryDirectory.resolve(StudyRepository.STUDY_DEFINITION_FILE_NAME); copyTestStudyDefinitionFileIntoDirectory(studyDefinition); @@ -70,7 +72,7 @@ void getActiveFetcherInstances() throws Exception { ); } - private void copyTestStudyDefinitionFileIntoDirectory(Path destination) throws Exception { + private void copyTestStudyDefinitionFileIntoDirectory(Path destination) throws URISyntaxException { URL studyDefinition = this.getClass().getResource(StudyRepository.STUDY_DEFINITION_FILE_NAME); FileUtil.copyFile(Path.of(studyDefinition.toURI()), destination, false); } diff --git a/src/test/java/org/jabref/logic/crawler/StudyRepositoryTest.java b/jablib/src/test/java/org/jabref/logic/crawler/StudyRepositoryTest.java similarity index 94% rename from src/test/java/org/jabref/logic/crawler/StudyRepositoryTest.java rename to jablib/src/test/java/org/jabref/logic/crawler/StudyRepositoryTest.java index 057bfa069ba..5e9451e963b 100644 --- a/src/test/java/org/jabref/logic/crawler/StudyRepositoryTest.java +++ b/jablib/src/test/java/org/jabref/logic/crawler/StudyRepositoryTest.java @@ -1,6 +1,7 @@ package org.jabref.logic.crawler; import java.io.IOException; +import java.net.URISyntaxException; import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; @@ -16,6 +17,7 @@ import org.jabref.logic.citationkeypattern.GlobalCitationKeyPatterns; import org.jabref.logic.database.DatabaseMerger; import org.jabref.logic.exporter.SaveConfiguration; +import org.jabref.logic.exporter.SaveException; import org.jabref.logic.git.SlrGitHandler; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.logic.preferences.CliPreferences; @@ -30,6 +32,7 @@ import org.jabref.model.study.QueryResult; import org.jabref.model.util.DummyFileUpdateMonitor; +import org.eclipse.jgit.api.errors.GitAPIException; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; @@ -63,7 +66,7 @@ class StudyRepositoryTest { * Set up mocks */ @BeforeEach - void setUpMocks() throws Exception { + void setUpMocks() throws IOException, URISyntaxException { libraryPreferences = mock(LibraryPreferences.class, Answers.RETURNS_DEEP_STUBS); saveConfiguration = mock(SaveConfiguration.class, Answers.RETURNS_DEEP_STUBS); importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); @@ -124,14 +127,14 @@ void repositoryStructureCorrectlyCreated() { * This tests whether the repository returns the stored bib entries correctly. */ @Test - void bibEntriesCorrectlyStored() throws Exception { + void bibEntriesCorrectlyStored() throws IOException, URISyntaxException { setUpTestResultFile(); List result = studyRepository.getFetcherResultEntries("Quantum", "ArXiv").getEntries(); assertEquals(getArXivQuantumMockResults(), result); } @Test - void fetcherResultsPersistedCorrectly() throws Exception { + void fetcherResultsPersistedCorrectly() throws GitAPIException, SaveException, IOException, URISyntaxException { List mockResults = getMockResults(); studyRepository.persist(mockResults); @@ -142,7 +145,7 @@ void fetcherResultsPersistedCorrectly() throws Exception { } @Test - void mergedResultsPersistedCorrectly() throws Exception { + void mergedResultsPersistedCorrectly() throws GitAPIException, SaveException, IOException, URISyntaxException { List mockResults = getMockResults(); List expected = new ArrayList<>(); expected.addAll(getArXivQuantumMockResults()); @@ -157,13 +160,13 @@ void mergedResultsPersistedCorrectly() throws Exception { } @Test - void studyResultsPersistedCorrectly() throws Exception { + void studyResultsPersistedCorrectly() throws GitAPIException, SaveException, IOException, URISyntaxException { List mockResults = getMockResults(); studyRepository.persist(mockResults); assertEquals(new HashSet<>(getNonDuplicateBibEntryResult().getEntries()), new HashSet<>(getTestStudyRepository().getStudyResultEntries().getEntries())); } - private StudyRepository getTestStudyRepository() throws Exception { + private StudyRepository getTestStudyRepository() throws IOException, URISyntaxException { setUpTestStudyDefinitionFile(); studyRepository = new StudyRepository( tempRepositoryDirectory, @@ -177,7 +180,7 @@ private StudyRepository getTestStudyRepository() throws Exception { /** * Copies the study definition file into the test repository */ - private void setUpTestStudyDefinitionFile() throws Exception { + private void setUpTestStudyDefinitionFile() throws URISyntaxException { Path destination = tempRepositoryDirectory.resolve(StudyRepository.STUDY_DEFINITION_FILE_NAME); URL studyDefinition = this.getClass().getResource(StudyRepository.STUDY_DEFINITION_FILE_NAME); FileUtil.copyFile(Path.of(studyDefinition.toURI()), destination, false); @@ -187,7 +190,7 @@ private void setUpTestStudyDefinitionFile() throws Exception { * This overwrites the existing result file in the repository with a result file containing multiple BibEntries. * The repository has to exist before this method is called. */ - private void setUpTestResultFile() throws Exception { + private void setUpTestResultFile() throws URISyntaxException { Path queryDirectory = Path.of(tempRepositoryDirectory.toString(), hashCodeQuantum + " - Quantum"); Path resultFileLocation = Path.of(queryDirectory.toString(), "ArXiv" + ".bib"); URL resultFile = this.getClass().getResource("ArXivQuantumMock.bib"); diff --git a/src/test/java/org/jabref/logic/crawler/StudyYamlParserTest.java b/jablib/src/test/java/org/jabref/logic/crawler/StudyYamlParserTest.java similarity index 89% rename from src/test/java/org/jabref/logic/crawler/StudyYamlParserTest.java rename to jablib/src/test/java/org/jabref/logic/crawler/StudyYamlParserTest.java index 1b82eae5741..007bf2b9a1a 100644 --- a/src/test/java/org/jabref/logic/crawler/StudyYamlParserTest.java +++ b/jablib/src/test/java/org/jabref/logic/crawler/StudyYamlParserTest.java @@ -1,5 +1,7 @@ package org.jabref.logic.crawler; +import java.io.IOException; +import java.net.URISyntaxException; import java.net.URL; import java.nio.file.Path; import java.util.List; @@ -22,7 +24,7 @@ class StudyYamlParserTest { Study expectedStudy; @BeforeEach - void setupStudy() throws Exception { + void setupStudy() throws URISyntaxException { Path destination = testDirectory.resolve(StudyRepository.STUDY_DEFINITION_FILE_NAME); URL studyDefinition = StudyYamlParser.class.getResource(StudyRepository.STUDY_DEFINITION_FILE_NAME); FileUtil.copyFile(Path.of(studyDefinition.toURI()), destination, true); @@ -38,20 +40,20 @@ void setupStudy() throws Exception { } @Test - void parseStudyFileSuccessfully() throws Exception { + void parseStudyFileSuccessfully() throws IOException { Study study = new StudyYamlParser().parseStudyYamlFile(testDirectory.resolve(StudyRepository.STUDY_DEFINITION_FILE_NAME)); assertEquals(expectedStudy, study); } @Test - void writeStudyFileSuccessfully() throws Exception { + void writeStudyFileSuccessfully() throws IOException { new StudyYamlParser().writeStudyYamlFile(expectedStudy, testDirectory.resolve(StudyRepository.STUDY_DEFINITION_FILE_NAME)); Study study = new StudyYamlParser().parseStudyYamlFile(testDirectory.resolve(StudyRepository.STUDY_DEFINITION_FILE_NAME)); assertEquals(expectedStudy, study); } @Test - void readsJabRef57StudySuccessfully() throws Exception { + void readsJabRef57StudySuccessfully() throws URISyntaxException, IOException { // The field "last-search-date" was removed // If the field is "just" removed from the datamodel, one gets following exception: // com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "last-search-date" (class org.jabref.model.study.Study), not marked as ignorable (5 known properties: "authors", "research-questions", "queries", "title", "databases"]) diff --git a/src/test/java/org/jabref/logic/database/DatabaseMergerTest.java b/jablib/src/test/java/org/jabref/logic/database/DatabaseMergerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/database/DatabaseMergerTest.java rename to jablib/src/test/java/org/jabref/logic/database/DatabaseMergerTest.java diff --git a/src/test/java/org/jabref/logic/database/DuplicateCheckTest.java b/jablib/src/test/java/org/jabref/logic/database/DuplicateCheckTest.java similarity index 98% rename from src/test/java/org/jabref/logic/database/DuplicateCheckTest.java rename to jablib/src/test/java/org/jabref/logic/database/DuplicateCheckTest.java index 4cc2c79e6cf..6eef0befd63 100644 --- a/src/test/java/org/jabref/logic/database/DuplicateCheckTest.java +++ b/jablib/src/test/java/org/jabref/logic/database/DuplicateCheckTest.java @@ -316,9 +316,9 @@ void wordCorrelation() { String d2 = "Characterization of Calunus finmarchicus habitat in the North Sea"; String d3 = "Characterization of Calanus glacialissss habitat in the South Sea"; - assertEquals(1.0, (DuplicateCheck.correlateByWords(d1, d2)), 0.01); - assertEquals(0.78, (DuplicateCheck.correlateByWords(d1, d3)), 0.01); - assertEquals(0.78, (DuplicateCheck.correlateByWords(d2, d3)), 0.01); + assertEquals(1.0, DuplicateCheck.correlateByWords(d1, d2), 0.01); + assertEquals(0.78, DuplicateCheck.correlateByWords(d1, d3), 0.01); + assertEquals(0.78, DuplicateCheck.correlateByWords(d2, d3), 0.01); } @Test @@ -502,21 +502,21 @@ void sameBooksWithDifferentEditionsAreNotDuplicates() { } @Test - void compareOfTwoEntriesWithSameContentAndLfEndingsReportsNoDifferences() throws Exception { + void compareOfTwoEntriesWithSameContentAndLfEndingsReportsNoDifferences() { BibEntry entryOne = new BibEntry().withField(StandardField.COMMENT, "line1\n\nline3\n\nline5"); BibEntry entryTwo = new BibEntry().withField(StandardField.COMMENT, "line1\n\nline3\n\nline5"); assertTrue(duplicateChecker.isDuplicate(entryOne, entryTwo, BibDatabaseMode.BIBTEX)); } @Test - void compareOfTwoEntriesWithSameContentAndCrLfEndingsReportsNoDifferences() throws Exception { + void compareOfTwoEntriesWithSameContentAndCrLfEndingsReportsNoDifferences() { BibEntry entryOne = new BibEntry().withField(StandardField.COMMENT, "line1\r\n\r\nline3\r\n\r\nline5"); BibEntry entryTwo = new BibEntry().withField(StandardField.COMMENT, "line1\r\n\r\nline3\r\n\r\nline5"); assertTrue(duplicateChecker.isDuplicate(entryOne, entryTwo, BibDatabaseMode.BIBTEX)); } @Test - void compareOfTwoEntriesWithSameContentAndMixedLineEndingsReportsNoDifferences() throws Exception { + void compareOfTwoEntriesWithSameContentAndMixedLineEndingsReportsNoDifferences() { BibEntry entryOne = new BibEntry().withField(StandardField.COMMENT, "line1\n\nline3\n\nline5"); BibEntry entryTwo = new BibEntry().withField(StandardField.COMMENT, "line1\r\n\r\nline3\r\n\r\nline5"); assertTrue(duplicateChecker.isDuplicate(entryOne, entryTwo, BibDatabaseMode.BIBTEX)); diff --git a/src/test/java/org/jabref/logic/exporter/AtomicFileOutputStreamTest.java b/jablib/src/test/java/org/jabref/logic/exporter/AtomicFileOutputStreamTest.java similarity index 89% rename from src/test/java/org/jabref/logic/exporter/AtomicFileOutputStreamTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/AtomicFileOutputStreamTest.java index af6058d17e9..2284c0f7c1d 100644 --- a/src/test/java/org/jabref/logic/exporter/AtomicFileOutputStreamTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/AtomicFileOutputStreamTest.java @@ -1,9 +1,9 @@ package org.jabref.logic.exporter; import java.io.ByteArrayInputStream; -import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.io.OutputStream; import java.nio.file.Files; import java.nio.file.Path; @@ -24,7 +24,7 @@ class AtomicFileOutputStreamTest { private static final String FIVE_THOUSAND_CHARS = Strings.repeat("A", 5_000); @Test - void normalSaveWorks(@TempDir Path tempDir) throws Exception { + void normalSaveWorks(@TempDir Path tempDir) throws IOException { Path out = tempDir.resolve("normal-save.txt"); Files.writeString(out, FIFTY_CHARS); @@ -38,14 +38,14 @@ void normalSaveWorks(@TempDir Path tempDir) throws Exception { } @Test - void originalContentExistsAtWriteError(@TempDir Path tempDir) throws Exception { + void originalContentExistsAtWriteError(@TempDir Path tempDir) throws IOException { Path pathToTestFile = tempDir.resolve("error-during-save.txt"); Files.writeString(pathToTestFile, FIFTY_CHARS); Path pathToTmpFile = tempDir.resolve("error-during-save.txt.tmp"); - try (FileOutputStream outputStream = new FileOutputStream(pathToTmpFile.toFile())) { - FileOutputStream spiedOutputStream = spy(outputStream); + try (OutputStream outputStream = Files.newOutputStream(pathToTmpFile)) { + OutputStream spiedOutputStream = spy(outputStream); doAnswer(invocation -> { // by writing one byte, we ensure that the `.tmp` file is created outputStream.write(((byte[]) invocation.getRawArguments()[0])[0]); diff --git a/src/test/java/org/jabref/logic/exporter/BibtexDatabaseWriterTest.java b/jablib/src/test/java/org/jabref/logic/exporter/BibtexDatabaseWriterTest.java similarity index 87% rename from src/test/java/org/jabref/logic/exporter/BibtexDatabaseWriterTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/BibtexDatabaseWriterTest.java index 62929a51a1e..ef383fafab0 100644 --- a/src/test/java/org/jabref/logic/exporter/BibtexDatabaseWriterTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/BibtexDatabaseWriterTest.java @@ -2,15 +2,15 @@ import java.io.BufferedWriter; import java.io.IOException; -import java.io.StringReader; +import java.io.Reader; import java.io.StringWriter; +import java.net.URISyntaxException; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.List; import org.jabref.logic.bibtex.FieldPreferences; @@ -80,7 +80,7 @@ class BibtexDatabaseWriterTest { @BeforeEach void setUp() { - fieldPreferences = new FieldPreferences(true, Collections.emptyList(), Collections.emptyList()); + fieldPreferences = new FieldPreferences(true, List.of(), List.of()); saveConfiguration = new SelfContainedSaveConfiguration(SaveOrder.getDefaultSaveOrder(), false, BibDatabaseWriter.SaveType.WITH_JABREF_META_DATA, false); citationKeyPatternPreferences = mock(CitationKeyPatternPreferences.class, Answers.RETURNS_DEEP_STUBS); entryTypesManager = new BibEntryTypesManager(); @@ -104,60 +104,60 @@ private void initializeDatabaseWriter() { } @Test - void writeWithNullContextThrowsException() throws Exception { - assertThrows(NullPointerException.class, () -> databaseWriter.savePartOfDatabase(null, Collections.emptyList())); + void writeWithNullContextThrowsException() { + assertThrows(NullPointerException.class, () -> databaseWriter.savePartOfDatabase(null, List.of())); } @Test - void writeWithNullEntriesThrowsException() throws Exception { + void writeWithNullEntriesThrowsException() { assertThrows(NullPointerException.class, () -> databaseWriter.savePartOfDatabase(bibtexContext, null)); } @Test - void writeEncodingUsAsciiWhenSetInPreferencesAndHeader() throws Exception { + void writeEncodingUsAsciiWhenSetInPreferencesAndHeader() throws IOException { metaData.setEncoding(StandardCharsets.US_ASCII); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); assertEquals("% Encoding: US-ASCII" + OS.NEWLINE, stringWriter.toString()); } @Test - void writeEncodingWindows1252WhenSetInPreferencesAndHeader() throws Exception { + void writeEncodingWindows1252WhenSetInPreferencesAndHeader() throws IOException { metaData.setEncoding(Charset.forName("windows-1252")); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); assertEquals("% Encoding: windows-1252" + OS.NEWLINE, stringWriter.toString()); } @Test - void writePreamble() throws Exception { + void writePreamble() throws IOException { database.setPreamble("Test preamble"); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); assertEquals("@Preamble{Test preamble}" + OS.NEWLINE, stringWriter.toString()); } @Test - void writePreambleAndEncoding() throws Exception { + void writePreambleAndEncoding() throws IOException { metaData.setEncoding(StandardCharsets.US_ASCII); database.setPreamble("Test preamble"); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); assertEquals("% Encoding: US-ASCII" + OS.NEWLINE + OS.NEWLINE + "@Preamble{Test preamble}" + OS.NEWLINE, stringWriter.toString()); } @Test - void writeEntry() throws Exception { + void writeEntry() throws IOException { BibEntry entry = new BibEntry(); entry.setType(StandardEntryType.Article); database.insertEntry(entry); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.singletonList(entry)); + databaseWriter.savePartOfDatabase(bibtexContext, List.of(entry)); assertEquals("@Article{," + OS.NEWLINE + "}" + OS.NEWLINE, @@ -165,13 +165,13 @@ void writeEntry() throws Exception { } @Test - void writeEntryWithDuplicateKeywords() throws Exception { + void writeEntryWithDuplicateKeywords() throws IOException { BibEntry entry = new BibEntry(); entry.setType(StandardEntryType.Article); entry.setField(StandardField.KEYWORDS, "asdf,asdf,asdf"); database.insertEntry(entry); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.singletonList(entry)); + databaseWriter.savePartOfDatabase(bibtexContext, List.of(entry)); assertEquals("@Article{," + OS.NEWLINE + " keywords = {asdf,asdf,asdf}," + OS.NEWLINE @@ -180,13 +180,13 @@ void writeEntryWithDuplicateKeywords() throws Exception { } @Test - void putKeyWordsRemovesDuplicateKeywordsIsVisibleDuringWrite() throws Exception { + void putKeyWordsRemovesDuplicateKeywordsIsVisibleDuringWrite() throws IOException { BibEntry entry = new BibEntry(StandardEntryType.Article); entry.putKeywords(List.of("asdf", "asdf", "asdf"), ','); database.insertEntry(entry); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.singletonList(entry)); + databaseWriter.savePartOfDatabase(bibtexContext, List.of(entry)); assertEquals("@Article{," + OS.NEWLINE + " keywords = {asdf}," + OS.NEWLINE @@ -195,13 +195,13 @@ void putKeyWordsRemovesDuplicateKeywordsIsVisibleDuringWrite() throws Exception } @Test - void writeEncodingAndEntry() throws Exception { + void writeEncodingAndEntry() throws IOException { BibEntry entry = new BibEntry(); entry.setType(StandardEntryType.Article); database.insertEntry(entry); metaData.setEncoding(StandardCharsets.US_ASCII); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.singletonList(entry)); + databaseWriter.savePartOfDatabase(bibtexContext, List.of(entry)); assertEquals( "% Encoding: US-ASCII" + OS.NEWLINE + OS.NEWLINE + @@ -211,66 +211,66 @@ void writeEncodingAndEntry() throws Exception { } @Test - void writeEpilogue() throws Exception { + void writeEpilogue() throws IOException { database.setEpilog("Test epilog"); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); assertEquals("Test epilog" + OS.NEWLINE, stringWriter.toString()); } @Test - void writeEpilogueAndEncoding() throws Exception { + void writeEpilogueAndEncoding() throws IOException { database.setEpilog("Test epilog"); metaData.setEncoding(StandardCharsets.US_ASCII); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); assertEquals("% Encoding: US-ASCII" + OS.NEWLINE + OS.NEWLINE + "Test epilog" + OS.NEWLINE, stringWriter.toString()); } @Test - void utf8EncodingWrittenIfExplicitlyDefined() throws Exception { + void utf8EncodingWrittenIfExplicitlyDefined() throws IOException { metaData.setEncoding(StandardCharsets.UTF_8); metaData.setEncodingExplicitlySupplied(true); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); assertEquals("% Encoding: UTF-8" + OS.NEWLINE, stringWriter.toString()); } @Test - void utf8EncodingNotWrittenIfNotExplicitlyDefined() throws Exception { + void utf8EncodingNotWrittenIfNotExplicitlyDefined() throws IOException { metaData.setEncoding(StandardCharsets.UTF_8); metaData.setEncodingExplicitlySupplied(false); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); assertEquals("", stringWriter.toString()); } @Test - void writeMetadata() throws Exception { + void writeMetadata() throws IOException { DatabaseCitationKeyPatterns bibtexKeyPattern = new DatabaseCitationKeyPatterns(mock(GlobalCitationKeyPatterns.class)); bibtexKeyPattern.setDefaultValue("test"); metaData.setCiteKeyPattern(bibtexKeyPattern); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); assertEquals("@Comment{jabref-meta: keypatterndefault:test;}" + OS.NEWLINE, stringWriter.toString()); } @Test - void writeMetadataAndEncoding() throws Exception { + void writeMetadataAndEncoding() throws IOException { DatabaseCitationKeyPatterns bibtexKeyPattern = new DatabaseCitationKeyPatterns(mock(GlobalCitationKeyPatterns.class)); bibtexKeyPattern.setDefaultValue("test"); metaData.setCiteKeyPattern(bibtexKeyPattern); metaData.setEncoding(StandardCharsets.US_ASCII); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); assertEquals("% Encoding: US-ASCII" + OS.NEWLINE + OS.NEWLINE + @@ -278,12 +278,12 @@ void writeMetadataAndEncoding() throws Exception { } @Test - void writeGroups() throws Exception { + void writeGroups() throws IOException { GroupTreeNode groupRoot = GroupTreeNode.fromGroup(new AllEntriesGroup("")); groupRoot.addSubgroup(new ExplicitGroup("test", GroupHierarchyType.INCLUDING, ',')); metaData.setGroups(groupRoot); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); // @formatter:off assertEquals("@Comment{jabref-meta: grouping:" + OS.NEWLINE @@ -294,13 +294,13 @@ void writeGroups() throws Exception { } @Test - void writeGroupsAndEncoding() throws Exception { + void writeGroupsAndEncoding() throws IOException { GroupTreeNode groupRoot = GroupTreeNode.fromGroup(new AllEntriesGroup("")); groupRoot.addChild(GroupTreeNode.fromGroup(new ExplicitGroup("test", GroupHierarchyType.INCLUDING, ','))); metaData.setGroups(groupRoot); metaData.setEncoding(StandardCharsets.US_ASCII); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); // @formatter:off assertEquals( @@ -314,47 +314,47 @@ void writeGroupsAndEncoding() throws Exception { } @Test - void writeString() throws Exception { + void writeString() throws IOException { database.addString(new BibtexString("name", "content")); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); assertEquals("@String{name = {content}}" + OS.NEWLINE, stringWriter.toString()); } @Test - void writeStringWithQuotes() throws Exception { + void writeStringWithQuotes() throws IOException { String parsedSerialization = "@String{name = \"content\"}"; BibtexString bibtexString = new BibtexString("name", "content", parsedSerialization); database.addString(bibtexString); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); assertEquals(parsedSerialization + OS.NEWLINE, stringWriter.toString()); } @Test - void writeStringAndEncoding() throws Exception { + void writeStringAndEncoding() throws IOException { metaData.setEncoding(StandardCharsets.US_ASCII); database.addString(new BibtexString("name", "content")); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); assertEquals("% Encoding: US-ASCII" + OS.NEWLINE + OS.NEWLINE + "@String{name = {content}}" + OS.NEWLINE, stringWriter.toString()); } @Test - void doNotWriteUtf8StringAndEncoding() throws Exception { + void doNotWriteUtf8StringAndEncoding() throws IOException { database.addString(new BibtexString("name", "content")); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); assertEquals("@String{name = {content}}" + OS.NEWLINE, stringWriter.toString()); } @Test - void writeEntryWithCustomizedTypeAlsoWritesTypeDeclaration() throws Exception { + void writeEntryWithCustomizedTypeAlsoWritesTypeDeclaration() throws IOException { EntryType customizedType = new UnknownEntryType("customizedType"); BibEntryType customizedBibType = new BibEntryType( customizedType, @@ -386,17 +386,17 @@ void writeEntryWithCustomizedTypeAlsoWritesTypeDeclaration() throws Exception { } @Test - void writeCustomizedTypesInAlphabeticalOrder() throws Exception { + void writeCustomizedTypesInAlphabeticalOrder() throws IOException { EntryType customizedType = new UnknownEntryType("customizedType"); EntryType otherCustomizedType = new UnknownEntryType("otherCustomizedType"); BibEntryType customizedBibType = new BibEntryType( customizedType, - Collections.singletonList(new BibField(StandardField.TITLE, FieldPriority.IMPORTANT)), - Collections.singletonList(new OrFields(StandardField.TITLE))); + List.of(new BibField(StandardField.TITLE, FieldPriority.IMPORTANT)), + List.of(new OrFields(StandardField.TITLE))); BibEntryType otherCustomizedBibType = new BibEntryType( otherCustomizedType, - Collections.singletonList(new BibField(StandardField.TITLE, FieldPriority.IMPORTANT)), - Collections.singletonList(new OrFields(StandardField.TITLE))); + List.of(new BibField(StandardField.TITLE, FieldPriority.IMPORTANT)), + List.of(new OrFields(StandardField.TITLE))); entryTypesManager.addCustomOrModifiedType(otherCustomizedBibType, BibDatabaseMode.BIBTEX); entryTypesManager.addCustomOrModifiedType(customizedBibType, BibDatabaseMode.BIBTEX); BibEntry entry = new BibEntry(customizedType); @@ -418,7 +418,7 @@ void writeCustomizedTypesInAlphabeticalOrder() throws Exception { } @Test - void roundtripWithArticleMonths() throws Exception { + void roundtripWithArticleMonths() throws IOException { Path testBibtexFile = Path.of("src/test/resources/testbib/articleWithMonths.bib"); Charset encoding = StandardCharsets.UTF_8; ParserResult result = new BibtexParser(importFormatPreferences).parse(Importer.getReader(testBibtexFile)); @@ -434,7 +434,7 @@ void roundtripWithArticleMonths() throws Exception { } @Test - void roundtripUtf8EncodingHeaderRemoved() throws Exception { + void roundtripUtf8EncodingHeaderRemoved() throws IOException { // @formatter:off String bibtexEntry = OS.NEWLINE + "% Encoding: UTF8" + OS.NEWLINE + OS.NEWLINE + @@ -445,7 +445,7 @@ void roundtripUtf8EncodingHeaderRemoved() throws Exception { " number = {1}," + OS.NEWLINE + "}" + OS.NEWLINE; // @formatter:on - ParserResult result = new BibtexParser(importFormatPreferences).parse(new StringReader(bibtexEntry)); + ParserResult result = new BibtexParser(importFormatPreferences).parse(Reader.of(bibtexEntry)); BibDatabaseContext context = new BibDatabaseContext(result.getDatabase(), result.getMetaData()); databaseWriter.saveDatabase(context); // @formatter:off @@ -460,7 +460,7 @@ void roundtripUtf8EncodingHeaderRemoved() throws Exception { } @Test - void roundtripWin1252HeaderKept(@TempDir Path bibFolder) throws Exception { + void roundtripWin1252HeaderKept(@TempDir Path bibFolder) throws IOException, URISyntaxException { Path testFile = Path.of(BibtexDatabaseWriterTest.class.getResource("encoding-windows-1252-with-header.bib").toURI()); ParserResult result = new BibtexImporter(importFormatPreferences, new DummyFileUpdateMonitor()).importDatabase(testFile); BibDatabaseContext context = new BibDatabaseContext(result.getDatabase(), result.getMetaData()); @@ -484,7 +484,7 @@ void roundtripWin1252HeaderKept(@TempDir Path bibFolder) throws Exception { } @Test - void roundtripUtf8HeaderKept(@TempDir Path bibFolder) throws Exception { + void roundtripUtf8HeaderKept(@TempDir Path bibFolder) throws URISyntaxException, IOException { Path testFile = Path.of(BibtexDatabaseWriterTest.class.getResource("encoding-utf-8-with-header-with-databasetypecomment.bib").toURI()); ParserResult result = new BibtexImporter(importFormatPreferences, new DummyFileUpdateMonitor()).importDatabase(testFile); BibDatabaseContext context = new BibDatabaseContext(result.getDatabase(), result.getMetaData()); @@ -508,7 +508,7 @@ void roundtripUtf8HeaderKept(@TempDir Path bibFolder) throws Exception { } @Test - void roundtripNotExplicitUtf8HeaderNotInsertedDuringWrite(@TempDir Path bibFolder) throws Exception { + void roundtripNotExplicitUtf8HeaderNotInsertedDuringWrite(@TempDir Path bibFolder) throws URISyntaxException, IOException { Path testFile = Path.of(BibtexDatabaseWriterTest.class.getResource("encoding-utf-8-without-header-with-databasetypecomment.bib").toURI()); ParserResult result = new BibtexImporter(importFormatPreferences, new DummyFileUpdateMonitor()).importDatabase(testFile); BibDatabaseContext context = new BibDatabaseContext(result.getDatabase(), result.getMetaData()); @@ -532,7 +532,7 @@ void roundtripNotExplicitUtf8HeaderNotInsertedDuringWrite(@TempDir Path bibFolde } @Test - void roundtripWithComplexBib() throws Exception { + void roundtripWithComplexBib() throws IOException { Path testBibtexFile = Path.of("src/test/resources/testbib/complex.bib"); Charset encoding = StandardCharsets.UTF_8; ParserResult result = new BibtexParser(importFormatPreferences).parse(Importer.getReader(testBibtexFile)); @@ -551,7 +551,7 @@ void roundtripWithComplexBib() throws Exception { } @Test - void roundtripWithUserComment() throws Exception { + void roundtripWithUserComment() throws IOException { Path testBibtexFile = Path.of("src/test/resources/testbib/bibWithUserComments.bib"); Charset encoding = StandardCharsets.UTF_8; ParserResult result = new BibtexParser(importFormatPreferences).parse(Importer.getReader(testBibtexFile)); @@ -567,7 +567,7 @@ void roundtripWithUserComment() throws Exception { } @Test - void roundtripWithOneUserCommentAndEntryChange() throws Exception { + void roundtripWithOneUserCommentAndEntryChange() throws IOException { String bibEntry = "@Comment this in an unbracketed comment that should be preserved as well\n" + "\n" + "This is some arbitrary user comment that should be preserved\n" + @@ -578,7 +578,7 @@ void roundtripWithOneUserCommentAndEntryChange() throws Exception { // read in bibtex string ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); - ParserResult result = new BibtexParser(importFormatPreferences).parse(new StringReader(bibEntry)); + ParserResult result = new BibtexParser(importFormatPreferences).parse(Reader.of(bibEntry)); BibEntry entry = result.getDatabase().getEntryByCitationKey("1137631").get(); entry.setField(StandardField.AUTHOR, "Mr. Author"); @@ -598,7 +598,7 @@ void roundtripWithOneUserCommentAndEntryChange() throws Exception { } @Test - void roundtripWithTwoEntriesAndOneUserCommentAndEntryChange() throws Exception { + void roundtripWithTwoEntriesAndOneUserCommentAndEntryChange() throws IOException { String bibEntry = "@Article{test,}\n" + "\n" + "@Comment this in an unbracketed comment that should be preserved as well\n" + @@ -611,7 +611,7 @@ void roundtripWithTwoEntriesAndOneUserCommentAndEntryChange() throws Exception { // read in bibtex string ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); - ParserResult result = new BibtexParser(importFormatPreferences).parse(new StringReader(bibEntry)); + ParserResult result = new BibtexParser(importFormatPreferences).parse(Reader.of(bibEntry)); BibEntry entry = result.getDatabase().getEntryByCitationKey("1137631").get(); entry.setField(StandardField.AUTHOR, "Mr. Author"); @@ -631,7 +631,7 @@ void roundtripWithTwoEntriesAndOneUserCommentAndEntryChange() throws Exception { } @Test - void roundtripWithUserCommentAndEntryChange() throws Exception { + void roundtripWithUserCommentAndEntryChange() throws IOException { Path testBibtexFile = Path.of("src/test/resources/testbib/bibWithUserComments.bib"); Charset encoding = StandardCharsets.UTF_8; ParserResult result = new BibtexParser(importFormatPreferences).parse(Importer.getReader(testBibtexFile)); @@ -650,7 +650,7 @@ void roundtripWithUserCommentAndEntryChange() throws Exception { } @Test - void roundtripWithUserCommentBeforeStringAndChange() throws Exception { + void roundtripWithUserCommentBeforeStringAndChange() throws IOException { Path testBibtexFile = Path.of("src/test/resources/testbib/complex.bib"); Charset encoding = StandardCharsets.UTF_8; ParserResult result = new BibtexParser(importFormatPreferences).parse(Importer.getReader(testBibtexFile)); @@ -672,7 +672,7 @@ void roundtripWithUserCommentBeforeStringAndChange() throws Exception { } @Test - void roundtripWithUnknownMetaData() throws Exception { + void roundtripWithUnknownMetaData() throws IOException { Path testBibtexFile = Path.of("src/test/resources/testbib/unknownMetaData.bib"); Charset encoding = StandardCharsets.UTF_8; ParserResult result = new BibtexParser(importFormatPreferences).parse(Importer.getReader(testBibtexFile)); @@ -688,20 +688,20 @@ void roundtripWithUnknownMetaData() throws Exception { } @Test - void writeSavedSerializationOfEntryIfUnchanged() throws Exception { + void writeSavedSerializationOfEntryIfUnchanged() throws IOException { BibEntry entry = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Mr. author"); entry.setParsedSerialization("presaved serialization"); entry.setChanged(false); database.insertEntry(entry); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.singletonList(entry)); + databaseWriter.savePartOfDatabase(bibtexContext, List.of(entry)); assertEquals("presaved serialization" + OS.NEWLINE, stringWriter.toString()); } @Test - void reformatEntryIfAskedToDoSo() throws Exception { + void reformatEntryIfAskedToDoSo() throws IOException { BibEntry entry = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Mr. author"); entry.setParsedSerialization("wrong serialization"); @@ -710,7 +710,7 @@ void reformatEntryIfAskedToDoSo() throws Exception { saveConfiguration = new SelfContainedSaveConfiguration(SaveOrder.getDefaultSaveOrder(), false, BibDatabaseWriter.SaveType.WITH_JABREF_META_DATA, true); initializeDatabaseWriter(); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.singletonList(entry)); + databaseWriter.savePartOfDatabase(bibtexContext, List.of(entry)); assertEquals("@Article{," + OS.NEWLINE + " author = {Mr. author}," + OS.NEWLINE + "}" + OS.NEWLINE, @@ -718,29 +718,29 @@ void reformatEntryIfAskedToDoSo() throws Exception { } @Test - void writeSavedSerializationOfStringIfUnchanged() throws Exception { + void writeSavedSerializationOfStringIfUnchanged() throws IOException { BibtexString string = new BibtexString("name", "content", "serialization"); database.addString(string); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); assertEquals("serialization" + OS.NEWLINE, stringWriter.toString()); } @Test - void reformatStringIfAskedToDoSo() throws Exception { + void reformatStringIfAskedToDoSo() throws IOException { BibtexString string = new BibtexString("name", "content", "wrong serialization"); database.addString(string); saveConfiguration = new SelfContainedSaveConfiguration(SaveOrder.getDefaultSaveOrder(), false, BibDatabaseWriter.SaveType.WITH_JABREF_META_DATA, true); initializeDatabaseWriter(); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); assertEquals("@String{name = {content}}" + OS.NEWLINE, stringWriter.toString()); } @Test - void writeSaveActions() throws Exception { + void writeSaveActions() throws IOException { FieldFormatterCleanups saveActions = new FieldFormatterCleanups(true, Arrays.asList( new FieldFormatterCleanup(StandardField.TITLE, new LowerCaseFormatter()), @@ -748,7 +748,7 @@ void writeSaveActions() throws Exception { new FieldFormatterCleanup(StandardField.DAY, new UpperCaseFormatter()))); metaData.setSaveActions(saveActions); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); // The order should be kept (the cleanups are a list, not a set) assertEquals("@Comment{jabref-meta: saveActions:enabled;" @@ -761,27 +761,27 @@ void writeSaveActions() throws Exception { } @Test - void writeSaveOrderConfig() throws Exception { + void writeSaveOrderConfig() throws IOException { SaveOrder saveOrder = new SaveOrder(SaveOrder.OrderType.SPECIFIED, List.of(new SaveOrder.SortCriterion(StandardField.AUTHOR, false), new SaveOrder.SortCriterion(StandardField.YEAR, true), new SaveOrder.SortCriterion(StandardField.ABSTRACT, false))); metaData.setSaveOrder(saveOrder); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); assertEquals("@Comment{jabref-meta: saveOrderConfig:specified;author;false;year;true;abstract;false;}" + OS.NEWLINE, stringWriter.toString()); } @Test - void writeCustomKeyPattern() throws Exception { + void writeCustomKeyPattern() throws IOException { AbstractCitationKeyPatterns pattern = new DatabaseCitationKeyPatterns(mock(GlobalCitationKeyPatterns.class)); pattern.setDefaultValue("test"); pattern.addCitationKeyPattern(StandardEntryType.Article, "articleTest"); metaData.setCiteKeyPattern(pattern); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); assertEquals("@Comment{jabref-meta: keypattern_article:articleTest;}" + OS.NEWLINE + OS.NEWLINE + "@Comment{jabref-meta: keypatterndefault:test;}" + OS.NEWLINE, @@ -789,32 +789,32 @@ void writeCustomKeyPattern() throws Exception { } @Test - void writeBiblatexMode() throws Exception { + void writeBiblatexMode() throws IOException { metaData.setMode(BibDatabaseMode.BIBLATEX); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); assertEquals("@Comment{jabref-meta: databaseType:biblatex;}" + OS.NEWLINE, stringWriter.toString()); } @Test - void writeProtectedFlag() throws Exception { + void writeProtectedFlag() throws IOException { metaData.markAsProtected(); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); assertEquals("@Comment{jabref-meta: protectedFlag:true;}" + OS.NEWLINE, stringWriter.toString()); } @Test - void writeFileDirectories() throws Exception { + void writeFileDirectories() throws IOException { metaData.setLibrarySpecificFileDirectory("\\Literature\\"); metaData.setUserFileDirectory("defaultOwner-user", "D:\\Documents"); metaData.setLatexFileDirectory("defaultOwner-user", Path.of("D:\\Latex")); - databaseWriter.savePartOfDatabase(bibtexContext, Collections.emptyList()); + databaseWriter.savePartOfDatabase(bibtexContext, List.of()); assertEquals("@Comment{jabref-meta: fileDirectory:\\\\Literature\\\\;}" + OS.NEWLINE + OS.NEWLINE + "@Comment{jabref-meta: fileDirectory-defaultOwner-user:D:\\\\Documents;}" @@ -822,7 +822,7 @@ void writeFileDirectories() throws Exception { } @Test - void writeEntriesSorted() throws Exception { + void writeEntriesSorted() throws IOException { SaveOrder saveOrder = new SaveOrder(SaveOrder.OrderType.SPECIFIED, List.of(new SaveOrder.SortCriterion(StandardField.AUTHOR, false), new SaveOrder.SortCriterion(StandardField.YEAR, true), @@ -866,7 +866,7 @@ void writeEntriesSorted() throws Exception { } @Test - void writeEntriesInOriginalOrderWhenNoSaveOrderConfigIsSetInMetadata() throws Exception { + void writeEntriesInOriginalOrderWhenNoSaveOrderConfigIsSetInMetadata() throws IOException { BibEntry firstEntry = new BibEntry(); firstEntry.setType(StandardEntryType.Article); firstEntry.setField(StandardField.AUTHOR, "A"); @@ -905,7 +905,7 @@ void writeEntriesInOriginalOrderWhenNoSaveOrderConfigIsSetInMetadata() throws Ex } @Test - void normalizeWhitespacesCleanupOnlyInTextFields() throws Exception { + void normalizeWhitespacesCleanupOnlyInTextFields() throws IOException { BibEntry firstEntry = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Firstname1 Lastname1 and Firstname2 Lastname2") .withField(StandardField.FILE, "some -- filename -- spaces.pdf") @@ -939,7 +939,7 @@ void trimFieldContents() throws IOException { } @Test - void newlineAtEndOfAbstractFieldIsDeleted() throws Exception { + void newlineAtEndOfAbstractFieldIsDeleted() throws IOException { String text = "lorem ipsum lorem ipsum" + OS.NEWLINE + "lorem ipsum lorem ipsum"; BibEntry entry = new BibEntry(StandardEntryType.Article); @@ -955,13 +955,13 @@ void newlineAtEndOfAbstractFieldIsDeleted() throws Exception { } @Test - void roundtripWithContentSelectorsAndUmlauts() throws Exception { + void roundtripWithContentSelectorsAndUmlauts() throws IOException { String encodingHeader = "% Encoding: UTF-8" + OS.NEWLINE + OS.NEWLINE; String commentEntry = "@Comment{jabref-meta: selector_journal:Test {\\\\\"U}mlaut;}" + OS.NEWLINE; String fileContent = encodingHeader + commentEntry; Charset encoding = StandardCharsets.UTF_8; - ParserResult firstParse = new BibtexParser(importFormatPreferences).parse(new StringReader(fileContent)); + ParserResult firstParse = new BibtexParser(importFormatPreferences).parse(Reader.of(fileContent)); BibDatabaseContext context = new BibDatabaseContext(firstParse.getDatabase(), firstParse.getMetaData()); @@ -971,7 +971,7 @@ void roundtripWithContentSelectorsAndUmlauts() throws Exception { } @Test - void saveAlsoSavesSecondModification() throws Exception { + void saveAlsoSavesSecondModification() throws IOException { // @formatter:off String bibtexEntry = OS.NEWLINE + "@Article{test," + OS.NEWLINE + " Author = {Foo Bar}," + OS.NEWLINE + @@ -983,7 +983,7 @@ void saveAlsoSavesSecondModification() throws Exception { // read in bibtex string ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); - ParserResult firstParse = new BibtexParser(importFormatPreferences).parse(new StringReader(bibtexEntry)); + ParserResult firstParse = new BibtexParser(importFormatPreferences).parse(Reader.of(bibtexEntry)); Collection entries = firstParse.getDatabase().getEntries(); BibEntry entry = entries.iterator().next(); @@ -1019,7 +1019,7 @@ void saveAlsoSavesSecondModification() throws Exception { } @Test - void saveReturnsToOriginalEntryWhenEntryIsFlaggedUnchanged() throws Exception { + void saveReturnsToOriginalEntryWhenEntryIsFlaggedUnchanged() throws IOException { // @formatter:off String bibtexEntry = "@Article{test," + OS.NEWLINE + " Author = {Foo Bar}," + OS.NEWLINE + @@ -1031,7 +1031,7 @@ void saveReturnsToOriginalEntryWhenEntryIsFlaggedUnchanged() throws Exception { // read in bibtex string ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); - ParserResult firstParse = new BibtexParser(importFormatPreferences, new DummyFileUpdateMonitor()).parse(new StringReader(bibtexEntry)); + ParserResult firstParse = new BibtexParser(importFormatPreferences, new DummyFileUpdateMonitor()).parse(Reader.of(bibtexEntry)); Collection entries = firstParse.getDatabase().getEntries(); BibEntry entry = entries.iterator().next(); @@ -1049,7 +1049,7 @@ void saveReturnsToOriginalEntryWhenEntryIsFlaggedUnchanged() throws Exception { } @Test - void saveReturnsToOriginalEntryWhenEntryIsFlaggedUnchangedEvenInThePresenceOfSavedModifications() throws Exception { + void saveReturnsToOriginalEntryWhenEntryIsFlaggedUnchangedEvenInThePresenceOfSavedModifications() throws IOException { // @formatter:off String bibtexEntry = "@Article{test," + OS.NEWLINE + " Author = {Foo Bar}," + OS.NEWLINE + @@ -1061,7 +1061,7 @@ void saveReturnsToOriginalEntryWhenEntryIsFlaggedUnchangedEvenInThePresenceOfSav // read in bibtex string ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); - ParserResult firstParse = new BibtexParser(importFormatPreferences, new DummyFileUpdateMonitor()).parse(new StringReader(bibtexEntry)); + ParserResult firstParse = new BibtexParser(importFormatPreferences, new DummyFileUpdateMonitor()).parse(Reader.of(bibtexEntry)); Collection entries = firstParse.getDatabase().getEntries(); BibEntry entry = entries.iterator().next(); diff --git a/src/test/java/org/jabref/logic/exporter/CffExporterTest.java b/jablib/src/test/java/org/jabref/logic/exporter/CffExporterTest.java similarity index 87% rename from src/test/java/org/jabref/logic/exporter/CffExporterTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/CffExporterTest.java index 5553b7527a6..b98ceb8e263 100644 --- a/src/test/java/org/jabref/logic/exporter/CffExporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/CffExporterTest.java @@ -1,14 +1,18 @@ package org.jabref.logic.exporter; +import java.io.IOException; +import java.net.URISyntaxException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + import org.jabref.logic.citationkeypattern.CitationKeyPatternPreferences; import org.jabref.logic.citationkeypattern.GlobalCitationKeyPatterns; import org.jabref.logic.importer.fileformat.CffImporter; @@ -40,15 +44,15 @@ static void setUp() { } @Test - final void exportForNoEntriesWritesNothing(@TempDir Path tempDir) throws Exception { + final void exportForNoEntriesWritesNothing(@TempDir Path tempDir) throws IOException, SaveException, ParserConfigurationException, TransformerException { Path file = tempDir.resolve("ThisIsARandomlyNamedFile"); Files.createFile(file); - cffExporter.export(databaseContext, tempDir, Collections.emptyList()); - assertEquals(Collections.emptyList(), Files.readAllLines(file)); + cffExporter.export(databaseContext, tempDir, List.of()); + assertEquals(List.of(), Files.readAllLines(file)); } @Test - final void exportsCorrectContent(@TempDir Path tempDir) throws Exception { + final void exportsCorrectContent(@TempDir Path tempDir) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -57,7 +61,7 @@ final void exportsCorrectContent(@TempDir Path tempDir) throws Exception { Path file = tempDir.resolve("RandomFileName"); Files.createFile(file); - cffExporter.export(databaseContext, file, Collections.singletonList(entry)); + cffExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "cff-version: 1.2.0", @@ -77,7 +81,7 @@ final void exportsCorrectContent(@TempDir Path tempDir) throws Exception { } @Test - final void usesCorrectType(@TempDir Path tempDir) throws Exception { + final void usesCorrectType(@TempDir Path tempDir) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.InProceedings) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -86,7 +90,7 @@ final void usesCorrectType(@TempDir Path tempDir) throws Exception { Path file = tempDir.resolve("RandomFileName"); Files.createFile(file); - cffExporter.export(databaseContext, file, Collections.singletonList(entry)); + cffExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "cff-version: 1.2.0", @@ -106,12 +110,12 @@ final void usesCorrectType(@TempDir Path tempDir) throws Exception { } @Test - final void usesCorrectDefaultValues(@TempDir Path tempDir) throws Exception { + final void usesCorrectDefaultValues(@TempDir Path tempDir) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.Thesis).withCitationKey("test"); Path file = tempDir.resolve("RandomFileName"); Files.createFile(file); - cffExporter.export(databaseContext, file, Collections.singletonList(entry)); + cffExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "cff-version: 1.2.0", @@ -129,7 +133,7 @@ final void usesCorrectDefaultValues(@TempDir Path tempDir) throws Exception { } @Test - final void exportsSoftwareCorrectly(@TempDir Path tempDir) throws Exception { + final void exportsSoftwareCorrectly(@TempDir Path tempDir) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.Software) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -138,7 +142,7 @@ final void exportsSoftwareCorrectly(@TempDir Path tempDir) throws Exception { Path file = tempDir.resolve("RandomFileName"); Files.createFile(file); - cffExporter.export(databaseContext, file, Collections.singletonList(entry)); + cffExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "cff-version: 1.2.0", @@ -154,7 +158,7 @@ final void exportsSoftwareCorrectly(@TempDir Path tempDir) throws Exception { } @Test - final void exportsSoftwareDateCorrectly(@TempDir Path tempDir) throws Exception { + final void exportsSoftwareDateCorrectly(@TempDir Path tempDir) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.Software) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -163,7 +167,7 @@ final void exportsSoftwareDateCorrectly(@TempDir Path tempDir) throws Exception Path file = tempDir.resolve("RandomFileName"); Files.createFile(file); - cffExporter.export(databaseContext, file, Collections.singletonList(entry)); + cffExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "cff-version: 1.2.0", @@ -179,7 +183,7 @@ final void exportsSoftwareDateCorrectly(@TempDir Path tempDir) throws Exception } @Test - final void exportsArticleDateCorrectly(@TempDir Path tempDir) throws Exception { + final void exportsArticleDateCorrectly(@TempDir Path tempDir) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -188,7 +192,7 @@ final void exportsArticleDateCorrectly(@TempDir Path tempDir) throws Exception { Path file = tempDir.resolve("RandomFileName"); Files.createFile(file); - cffExporter.export(databaseContext, file, Collections.singletonList(entry)); + cffExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "cff-version: 1.2.0", @@ -209,7 +213,7 @@ final void exportsArticleDateCorrectly(@TempDir Path tempDir) throws Exception { } @Test - final void passesModifiedCharset(@TempDir Path tempDir) throws Exception { + final void passesModifiedCharset(@TempDir Path tempDir) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "谷崎 潤一郎") @@ -218,7 +222,7 @@ final void passesModifiedCharset(@TempDir Path tempDir) throws Exception { Path file = tempDir.resolve("RandomFileName"); Files.createFile(file); - cffExporter.export(databaseContext, file, Collections.singletonList(entry)); + cffExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "cff-version: 1.2.0", @@ -238,7 +242,7 @@ final void passesModifiedCharset(@TempDir Path tempDir) throws Exception { } @Test - final void roundTripTest(@TempDir Path tempDir) throws Exception { + final void roundTripTest(@TempDir Path tempDir) throws URISyntaxException, IOException, SaveException, ParserConfigurationException, TransformerException { CitationKeyPatternPreferences citationKeyPatternPreferences = mock( CitationKeyPatternPreferences.class, Answers.RETURNS_SMART_NULLS diff --git a/src/test/java/org/jabref/logic/exporter/CsvExportFormatTest.java b/jablib/src/test/java/org/jabref/logic/exporter/CsvExportFormatTest.java similarity index 89% rename from src/test/java/org/jabref/logic/exporter/CsvExportFormatTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/CsvExportFormatTest.java index 73f06d2e5da..65fb4cc0457 100644 --- a/src/test/java/org/jabref/logic/exporter/CsvExportFormatTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/CsvExportFormatTest.java @@ -1,10 +1,14 @@ package org.jabref.logic.exporter; import java.io.File; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + import org.jabref.logic.layout.LayoutFormatterPreferences; import org.jabref.logic.util.StandardFileType; import org.jabref.model.database.BibDatabaseContext; @@ -46,7 +50,7 @@ void tearDown() { } @Test - void performExportForSingleAuthor(@TempDir Path testFolder) throws Exception { + void performExportForSingleAuthor(@TempDir Path testFolder) throws IOException, SaveException, ParserConfigurationException, TransformerException { Path path = testFolder.resolve("ThisIsARandomlyNamedFile"); BibEntry entry = new BibEntry().withField(StandardField.AUTHOR, "Someone, Van Something"); @@ -62,7 +66,7 @@ void performExportForSingleAuthor(@TempDir Path testFolder) throws Exception { } @Test - void performExportForMultipleAuthors(@TempDir Path testFolder) throws Exception { + void performExportForMultipleAuthors(@TempDir Path testFolder) throws IOException, SaveException, ParserConfigurationException, TransformerException { Path path = testFolder.resolve("ThisIsARandomlyNamedFile"); BibEntry entry = new BibEntry().withField(StandardField.AUTHOR, "von Neumann, John and Smith, John and Black Brown, Peter"); @@ -78,7 +82,7 @@ void performExportForMultipleAuthors(@TempDir Path testFolder) throws Exception } @Test - void performExportForSingleEditor(@TempDir Path testFolder) throws Exception { + void performExportForSingleEditor(@TempDir Path testFolder) throws IOException, SaveException, ParserConfigurationException, TransformerException { Path path = testFolder.resolve("ThisIsARandomlyNamedFile"); File tmpFile = path.toFile(); BibEntry entry = new BibEntry().withField(StandardField.EDITOR, "Someone, Van Something"); @@ -94,7 +98,7 @@ void performExportForSingleEditor(@TempDir Path testFolder) throws Exception { } @Test - void performExportForMultipleEditors(@TempDir Path testFolder) throws Exception { + void performExportForMultipleEditors(@TempDir Path testFolder) throws IOException, SaveException, ParserConfigurationException, TransformerException { Path path = testFolder.resolve("ThisIsARandomlyNamedFile"); File tmpFile = path.toFile(); BibEntry entry = new BibEntry() diff --git a/src/test/java/org/jabref/logic/exporter/DocBook5ExporterTest.java b/jablib/src/test/java/org/jabref/logic/exporter/DocBook5ExporterTest.java similarity index 91% rename from src/test/java/org/jabref/logic/exporter/DocBook5ExporterTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/DocBook5ExporterTest.java index d3dbc1c0c86..2f551103f74 100644 --- a/src/test/java/org/jabref/logic/exporter/DocBook5ExporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/DocBook5ExporterTest.java @@ -1,14 +1,17 @@ package org.jabref.logic.exporter; +import java.io.IOException; import java.net.URISyntaxException; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.time.LocalDate; -import java.util.Collections; import java.util.List; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + import org.jabref.logic.layout.LayoutFormatterPreferences; import org.jabref.logic.util.StandardFileType; import org.jabref.model.database.BibDatabaseContext; @@ -62,11 +65,11 @@ void setUp() throws URISyntaxException { .withField(StandardField.ISBN, "1-2-34") .withCitationKey("mykey") .withDate(new Date(myDate)); - entries = Collections.singletonList(entry); + entries = List.of(entry); } @Test - void performExportForSingleEntry(@TempDir Path testFolder) throws Exception { + void performExportForSingleEntry(@TempDir Path testFolder) throws IOException, SaveException, ParserConfigurationException, TransformerException { Path path = testFolder.resolve("ThisIsARandomlyNamedFile"); exporter.export(databaseContext, path, entries); diff --git a/src/test/java/org/jabref/logic/exporter/DocbookExporterTest.java b/jablib/src/test/java/org/jabref/logic/exporter/DocbookExporterTest.java similarity index 85% rename from src/test/java/org/jabref/logic/exporter/DocbookExporterTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/DocbookExporterTest.java index 0b905925e6e..ff6e255f647 100644 --- a/src/test/java/org/jabref/logic/exporter/DocbookExporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/DocbookExporterTest.java @@ -1,12 +1,15 @@ package org.jabref.logic.exporter; +import java.io.IOException; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Arrays; import java.util.List; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + import org.jabref.logic.layout.LayoutFormatterPreferences; import org.jabref.logic.util.StandardFileType; import org.jabref.model.database.BibDatabaseContext; @@ -42,13 +45,13 @@ void setUp() { } @Test - void corruptedTitleBraces(@TempDir Path testFolder) throws Exception { + void corruptedTitleBraces(@TempDir Path testFolder) throws IOException, SaveException, ParserConfigurationException, TransformerException { Path tmpFile = testFolder.resolve("testBraces"); BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "Peptidomics of the larval {{{D}rosophila melanogaster}} central nervous system."); - List entries = Arrays.asList(entry); + List entries = List.of(entry); exportFormat.export(databaseContext, tmpFile, entries); @@ -58,13 +61,13 @@ void corruptedTitleBraces(@TempDir Path testFolder) throws Exception { } @Test - void corruptedTitleUnicode(@TempDir Path testFolder) throws Exception { + void corruptedTitleUnicode(@TempDir Path testFolder) throws IOException, SaveException, ParserConfigurationException, TransformerException { Path tmpFile = testFolder.resolve("testBraces"); BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "Insect neuropeptide bursicon homodimers induce innate immune and stress genes during molting by activating the {NF}-$\\kappa$B transcription factor Relish."); - List entries = Arrays.asList(entry); + List entries = List.of(entry); exportFormat.export(databaseContext, tmpFile, entries); diff --git a/src/test/java/org/jabref/logic/exporter/EmbeddedBibFilePdfExporterTest.java b/jablib/src/test/java/org/jabref/logic/exporter/EmbeddedBibFilePdfExporterTest.java similarity index 92% rename from src/test/java/org/jabref/logic/exporter/EmbeddedBibFilePdfExporterTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/EmbeddedBibFilePdfExporterTest.java index 9b88521dd91..aa50400e139 100644 --- a/src/test/java/org/jabref/logic/exporter/EmbeddedBibFilePdfExporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/EmbeddedBibFilePdfExporterTest.java @@ -2,10 +2,12 @@ import java.io.IOException; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.stream.Stream; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + import javafx.collections.FXCollections; import org.jabref.logic.FilePreferences; @@ -113,7 +115,7 @@ void setUp() throws IOException { FieldPreferences fieldPreferences = new FieldPreferences( true, List.of(StandardField.MONTH), - Collections.emptyList()); + List.of()); exporter = new EmbeddedBibFilePdfExporter(bibDatabaseMode, bibEntryTypesManager, fieldPreferences); @@ -132,13 +134,13 @@ void setUp() throws IOException { @ParameterizedTest @MethodSource("provideBibEntriesWithValidPdfFileLinks") - void successfulExportToAllFilesOfEntry(BibEntry bibEntryWithValidPdfFileLink) throws Exception { + void successfulExportToAllFilesOfEntry(BibEntry bibEntryWithValidPdfFileLink) throws IOException, SaveException, ParserConfigurationException, TransformerException { assertTrue(exporter.exportToAllFilesOfEntry(databaseContext, filePreferences, bibEntryWithValidPdfFileLink, List.of(olly2018), abbreviationRepository)); } @ParameterizedTest @MethodSource("provideBibEntriesWithInvalidPdfFileLinks") - void unsuccessfulExportToAllFilesOfEntry(BibEntry bibEntryWithValidPdfFileLink) throws Exception { + void unsuccessfulExportToAllFilesOfEntry(BibEntry bibEntryWithValidPdfFileLink) throws IOException, SaveException, ParserConfigurationException, TransformerException { assertFalse(exporter.exportToAllFilesOfEntry(databaseContext, filePreferences, bibEntryWithValidPdfFileLink, List.of(olly2018), abbreviationRepository)); } @@ -152,13 +154,13 @@ public static Stream provideBibEntriesWithInvalidPdfFileLinks() { @ParameterizedTest @MethodSource("providePathsToValidPDFs") - void successfulExportToFileByPath(Path path) throws Exception { + void successfulExportToFileByPath(Path path) throws IOException, SaveException, ParserConfigurationException, TransformerException { assertTrue(exporter.exportToFileByPath(databaseContext, filePreferences, path, abbreviationRepository)); } @ParameterizedTest @MethodSource("providePathsToInvalidPDFs") - void unsuccessfulExportToFileByPath(Path path) throws Exception { + void unsuccessfulExportToFileByPath(Path path) throws IOException, SaveException, ParserConfigurationException, TransformerException { assertFalse(exporter.exportToFileByPath(databaseContext, filePreferences, path, abbreviationRepository)); } @@ -190,7 +192,7 @@ private static LinkedFile createDefaultLinkedFile(String fileName, Path tempDir) @ParameterizedTest @MethodSource("providePathToNewPDFs") - void roundtripExportImport(Path path) throws Exception { + void roundtripExportImport(Path path) throws IOException { BibEntry expected = new BibEntry(StandardEntryType.Misc) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -199,7 +201,7 @@ void roundtripExportImport(Path path) throws Exception { .withField(StandardField.DATE, "2020-10-14"); expected.setChanged(true); - List expectedEntries = Collections.singletonList(expected); + List expectedEntries = List.of(expected); exporter.export(databaseContext, path, expectedEntries); diff --git a/src/test/java/org/jabref/logic/exporter/EndnoteXmlExporterFilesTest.java b/jablib/src/test/java/org/jabref/logic/exporter/EndnoteXmlExporterFilesTest.java similarity index 90% rename from src/test/java/org/jabref/logic/exporter/EndnoteXmlExporterFilesTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/EndnoteXmlExporterFilesTest.java index e70945e89f3..bb2a1317688 100644 --- a/src/test/java/org/jabref/logic/exporter/EndnoteXmlExporterFilesTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/EndnoteXmlExporterFilesTest.java @@ -7,7 +7,9 @@ import java.util.List; import java.util.stream.Stream; -import org.jabref.logic.bibtex.BibEntryAssert; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.logic.importer.fileformat.BibtexImporter; import org.jabref.logic.importer.fileformat.EndnoteXmlImporter; @@ -15,6 +17,7 @@ import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.BibEntryPreferences; import org.jabref.model.util.DummyFileUpdateMonitor; +import org.jabref.support.BibEntryAssert; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.io.TempDir; @@ -39,7 +42,7 @@ class EndnoteXmlExporterFilesTest { private EndnoteXmlImporter endnoteXmlImporter; @BeforeEach - void setUp(@TempDir Path testFolder) throws Exception { + void setUp(@TempDir Path testFolder) { ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); when(importFormatPreferences.bibEntryPreferences()).thenReturn(mock(BibEntryPreferences.class)); when(importFormatPreferences.bibEntryPreferences().getKeywordSeparator()).thenReturn(','); @@ -65,7 +68,7 @@ static Stream fileNames() throws IOException, URISyntaxException { @ParameterizedTest @MethodSource("fileNames") - final void performExport(String filename) throws Exception { + final void performExport(String filename) throws URISyntaxException, IOException, TransformerException, SaveException, ParserConfigurationException { bibFileToExport = Path.of(EndnoteXmlExporterFilesTest.class.getResource(filename).toURI()); List entries = bibtexImporter.importDatabase(bibFileToExport).getDatabase().getEntries(); exporter.export(databaseContext, exportFile, entries); @@ -86,7 +89,7 @@ final void performExport(String filename) throws Exception { @ParameterizedTest @MethodSource("fileNames") - final void exportAsEndnoteAndThenImportAsEndnote(String filename) throws Exception { + final void exportAsEndnoteAndThenImportAsEndnote(String filename) throws IOException, TransformerException, URISyntaxException, SaveException, ParserConfigurationException { bibFileToExport = Path.of(EndnoteXmlExporterFilesTest.class.getResource(filename).toURI()); List entries = bibtexImporter.importDatabase(bibFileToExport).getDatabase().getEntries(); diff --git a/src/test/java/org/jabref/logic/exporter/EndnoteXmlExporterTest.java b/jablib/src/test/java/org/jabref/logic/exporter/EndnoteXmlExporterTest.java similarity index 84% rename from src/test/java/org/jabref/logic/exporter/EndnoteXmlExporterTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/EndnoteXmlExporterTest.java index d93a13b9fce..5e2976a4cb9 100644 --- a/src/test/java/org/jabref/logic/exporter/EndnoteXmlExporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/EndnoteXmlExporterTest.java @@ -1,8 +1,12 @@ package org.jabref.logic.exporter; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; +import java.util.List; + +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.model.database.BibDatabaseContext; @@ -28,7 +32,7 @@ class EndnoteXmlExporterTest { private BibEntry bookEntry; @BeforeEach - void setUp() throws Exception { + void setUp() { ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); when(importFormatPreferences.bibEntryPreferences()).thenReturn(mock(BibEntryPreferences.class)); when(importFormatPreferences.bibEntryPreferences().getKeywordSeparator()).thenReturn(','); @@ -48,10 +52,10 @@ void setUp() throws Exception { } @Test - void exportForEmptyEntryList(@TempDir Path tempDir) throws Exception { + void exportForEmptyEntryList(@TempDir Path tempDir) throws IOException, SaveException, ParserConfigurationException, TransformerException { Path file = tempDir.resolve("EmptyFile.xml"); - exporter.export(databaseContext, file, Collections.emptyList()); + exporter.export(databaseContext, file, List.of()); assertFalse(Files.exists(file)); } @@ -60,13 +64,13 @@ void exportForNullDBThrowsException(@TempDir Path tempDir) { Path file = tempDir.resolve("NullDB"); assertThrows(NullPointerException.class, () -> - exporter.export(null, file, Collections.singletonList(bookEntry))); + exporter.export(null, file, List.of(bookEntry))); } @Test void exportForNullExportPathThrowsException(@TempDir Path tempDir) { assertThrows(NullPointerException.class, () -> - exporter.export(databaseContext, null, Collections.singletonList(bookEntry))); + exporter.export(databaseContext, null, List.of(bookEntry))); } @Test diff --git a/src/test/java/org/jabref/logic/exporter/ExporterTest.java b/jablib/src/test/java/org/jabref/logic/exporter/ExporterTest.java similarity index 87% rename from src/test/java/org/jabref/logic/exporter/ExporterTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/ExporterTest.java index 206a07b96b2..28602d4cc84 100644 --- a/src/test/java/org/jabref/logic/exporter/ExporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/ExporterTest.java @@ -1,13 +1,16 @@ package org.jabref.logic.exporter; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.stream.Stream; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + import javafx.collections.FXCollections; import org.jabref.logic.preferences.CliPreferences; @@ -44,11 +47,11 @@ private static Stream exportFormats() { @ParameterizedTest @MethodSource("exportFormats") - void exportingEmptyDatabaseYieldsEmptyFile(Exporter exportFormat, String name, @TempDir Path testFolder) throws Exception { + void exportingEmptyDatabaseYieldsEmptyFile(Exporter exportFormat, String name, @TempDir Path testFolder) throws IOException, SaveException, ParserConfigurationException, TransformerException { Path tmpFile = testFolder.resolve("ARandomlyNamedFile"); Files.createFile(tmpFile); exportFormat.export(new BibDatabaseContext(), tmpFile, List.of()); - assertEquals(Collections.emptyList(), Files.readAllLines(tmpFile)); + assertEquals(List.of(), Files.readAllLines(tmpFile)); } @ParameterizedTest diff --git a/src/test/java/org/jabref/logic/exporter/GroupSerializerTest.java b/jablib/src/test/java/org/jabref/logic/exporter/GroupSerializerTest.java similarity index 81% rename from src/test/java/org/jabref/logic/exporter/GroupSerializerTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/GroupSerializerTest.java index 64346f80347..88d7eca19f8 100644 --- a/src/test/java/org/jabref/logic/exporter/GroupSerializerTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/GroupSerializerTest.java @@ -1,8 +1,8 @@ package org.jabref.logic.exporter; +import java.io.IOException; import java.nio.file.Path; import java.util.Arrays; -import java.util.Collections; import java.util.EnumSet; import java.util.List; @@ -40,7 +40,7 @@ class GroupSerializerTest { private GroupSerializer groupSerializer; @BeforeEach - void setUp() throws Exception { + void setUp() { groupSerializer = new GroupSerializer(); } @@ -48,14 +48,14 @@ void setUp() throws Exception { void serializeSingleAllEntriesGroup() { AllEntriesGroup group = new AllEntriesGroup(""); List serialization = groupSerializer.serializeTree(GroupTreeNode.fromGroup(group)); - assertEquals(Collections.singletonList("0 AllEntriesGroup:"), serialization); + assertEquals(List.of("0 AllEntriesGroup:"), serialization); } @Test void serializeSingleExplicitGroup() { ExplicitGroup group = new ExplicitGroup("myExplicitGroup", GroupHierarchyType.INDEPENDENT, ','); List serialization = groupSerializer.serializeTree(GroupTreeNode.fromGroup(group)); - assertEquals(Collections.singletonList("0 StaticGroup:myExplicitGroup;0;1;;;;"), serialization); + assertEquals(List.of("0 StaticGroup:myExplicitGroup;0;1;;;;"), serialization); } @Test @@ -66,7 +66,7 @@ void serializeSingleExplicitGroupWithIconAndDescription() { group.setColor(Color.ALICEBLUE); group.setDescription("test description"); List serialization = groupSerializer.serializeTree(GroupTreeNode.fromGroup(group)); - assertEquals(Collections.singletonList("0 StaticGroup:myExplicitGroup;0;1;0xf0f8ffff;test icon;test description;"), serialization); + assertEquals(List.of("0 StaticGroup:myExplicitGroup;0;1;0xf0f8ffff;test icon;test description;"), serialization); } @Test @@ -74,60 +74,60 @@ void serializeSingleExplicitGroupWithIconAndDescription() { void serializeSingleExplicitGroupWithEscapedSlash() { ExplicitGroup group = new ExplicitGroup("B{\\\"{o}}hmer", GroupHierarchyType.INDEPENDENT, ','); List serialization = groupSerializer.serializeTree(GroupTreeNode.fromGroup(group)); - assertEquals(Collections.singletonList("0 StaticGroup:B{\\\\\"{o}}hmer;0;1;;;;"), serialization); + assertEquals(List.of("0 StaticGroup:B{\\\\\"{o}}hmer;0;1;;;;"), serialization); } @Test void serializeSingleSimpleKeywordGroup() { WordKeywordGroup group = new WordKeywordGroup("name", GroupHierarchyType.INDEPENDENT, StandardField.KEYWORDS, "test", false, ',', false); List serialization = groupSerializer.serializeTree(GroupTreeNode.fromGroup(group)); - assertEquals(Collections.singletonList("0 KeywordGroup:name;0;keywords;test;0;0;1;;;;"), serialization); + assertEquals(List.of("0 KeywordGroup:name;0;keywords;test;0;0;1;;;;"), serialization); } @Test void serializeSingleRegexKeywordGroup() { KeywordGroup group = new RegexKeywordGroup("myExplicitGroup", GroupHierarchyType.REFINING, StandardField.AUTHOR, "asdf", false); List serialization = groupSerializer.serializeTree(GroupTreeNode.fromGroup(group)); - assertEquals(Collections.singletonList("0 KeywordGroup:myExplicitGroup;1;author;asdf;0;1;1;;;;"), serialization); + assertEquals(List.of("0 KeywordGroup:myExplicitGroup;1;author;asdf;0;1;1;;;;"), serialization); } @Test void serializeSingleSearchGroup() { SearchGroup group = new SearchGroup("myExplicitGroup", GroupHierarchyType.INDEPENDENT, "author=harrer", EnumSet.of(SearchFlags.CASE_SENSITIVE, SearchFlags.REGULAR_EXPRESSION)); List serialization = groupSerializer.serializeTree(GroupTreeNode.fromGroup(group)); - assertEquals(Collections.singletonList("0 SearchGroup:myExplicitGroup;0;author=harrer;1;1;1;;;;"), serialization); + assertEquals(List.of("0 SearchGroup:myExplicitGroup;0;author=harrer;1;1;1;;;;"), serialization); } @Test void serializeSingleSearchGroupWithRegex() { SearchGroup group = new SearchGroup("myExplicitGroup", GroupHierarchyType.INCLUDING, "author=\"harrer\"", EnumSet.of(SearchFlags.CASE_SENSITIVE)); List serialization = groupSerializer.serializeTree(GroupTreeNode.fromGroup(group)); - assertEquals(Collections.singletonList("0 SearchGroup:myExplicitGroup;2;author=\"harrer\";1;0;1;;;;"), serialization); + assertEquals(List.of("0 SearchGroup:myExplicitGroup;2;author=\"harrer\";1;0;1;;;;"), serialization); } @Test void serializeSingleAutomaticKeywordGroup() { AutomaticGroup group = new AutomaticKeywordGroup("myAutomaticGroup", GroupHierarchyType.INDEPENDENT, StandardField.KEYWORDS, ',', '>'); List serialization = groupSerializer.serializeTree(GroupTreeNode.fromGroup(group)); - assertEquals(Collections.singletonList("0 AutomaticKeywordGroup:myAutomaticGroup;0;keywords;,;>;1;;;;"), serialization); + assertEquals(List.of("0 AutomaticKeywordGroup:myAutomaticGroup;0;keywords;,;>;1;;;;"), serialization); } @Test void serializeSingleAutomaticPersonGroup() { AutomaticPersonsGroup group = new AutomaticPersonsGroup("myAutomaticGroup", GroupHierarchyType.INDEPENDENT, StandardField.AUTHOR); List serialization = groupSerializer.serializeTree(GroupTreeNode.fromGroup(group)); - assertEquals(Collections.singletonList("0 AutomaticPersonsGroup:myAutomaticGroup;0;author;1;;;;"), serialization); + assertEquals(List.of("0 AutomaticPersonsGroup:myAutomaticGroup;0;author;1;;;;"), serialization); } @Test - void serializeSingleTexGroup() throws Exception { + void serializeSingleTexGroup() throws IOException { TexGroup group = TexGroup.create("myTexGroup", GroupHierarchyType.INDEPENDENT, Path.of("path", "To", "File"), new DefaultAuxParser(new BibDatabase()), new MetaData()); List serialization = groupSerializer.serializeTree(GroupTreeNode.fromGroup(group)); - assertEquals(Collections.singletonList("0 TexGroup:myTexGroup;0;path/To/File;1;;;;"), serialization); + assertEquals(List.of("0 TexGroup:myTexGroup;0;path/To/File;1;;;;"), serialization); } @Test - void getTreeAsStringInSimpleTree() throws Exception { + void getTreeAsStringInSimpleTree() { GroupTreeNode root = GroupTreeNodeTest.getRoot(); GroupTreeNodeTest.getNodeInSimpleTree(root); @@ -141,7 +141,7 @@ void getTreeAsStringInSimpleTree() throws Exception { } @Test - void getTreeAsStringInComplexTree() throws Exception { + void getTreeAsStringInComplexTree() { GroupTreeNode root = GroupTreeNodeTest.getRoot(); GroupTreeNodeTest.getNodeInComplexTree(root); diff --git a/src/test/java/org/jabref/logic/exporter/HayagrivaYamlExporterTest.java b/jablib/src/test/java/org/jabref/logic/exporter/HayagrivaYamlExporterTest.java similarity index 84% rename from src/test/java/org/jabref/logic/exporter/HayagrivaYamlExporterTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/HayagrivaYamlExporterTest.java index 7244d96a326..e9cf4c9a5a4 100644 --- a/src/test/java/org/jabref/logic/exporter/HayagrivaYamlExporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/HayagrivaYamlExporterTest.java @@ -1,10 +1,13 @@ package org.jabref.logic.exporter; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; import java.util.List; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + import org.jabref.logic.layout.LayoutFormatterPreferences; import org.jabref.logic.util.StandardFileType; import org.jabref.model.database.BibDatabaseContext; @@ -42,15 +45,15 @@ static void setUp() { } @Test - final void exportForNoEntriesWritesNothing(@TempDir Path tempFile) throws Exception { + final void exportForNoEntriesWritesNothing(@TempDir Path tempFile) throws IOException, SaveException, ParserConfigurationException, TransformerException { Path file = tempFile.resolve("ThisIsARandomlyNamedFile"); Files.createFile(file); - hayagrivaYamlExporter.export(databaseContext, tempFile, Collections.emptyList()); - assertEquals(Collections.emptyList(), Files.readAllLines(file)); + hayagrivaYamlExporter.export(databaseContext, tempFile, List.of()); + assertEquals(List.of(), Files.readAllLines(file)); } @Test - final void exportsCorrectContent(@TempDir Path tempFile) throws Exception { + final void exportsCorrectContent(@TempDir Path tempFile) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -60,7 +63,7 @@ final void exportsCorrectContent(@TempDir Path tempFile) throws Exception { Path file = tempFile.resolve("RandomFileName"); Files.createFile(file); - hayagrivaYamlExporter.export(databaseContext, file, Collections.singletonList(entry)); + hayagrivaYamlExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "---", @@ -77,7 +80,7 @@ final void exportsCorrectContent(@TempDir Path tempFile) throws Exception { } @Test - final void exportsCorrectMultipleAuthors(@TempDir Path tempFile) throws Exception { + final void exportsCorrectMultipleAuthors(@TempDir Path tempFile) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author and Other One") @@ -87,7 +90,7 @@ final void exportsCorrectMultipleAuthors(@TempDir Path tempFile) throws Exceptio Path file = tempFile.resolve("RandomFileName"); Files.createFile(file); - hayagrivaYamlExporter.export(databaseContext, file, Collections.singletonList(entry)); + hayagrivaYamlExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "---", @@ -105,7 +108,7 @@ final void exportsCorrectMultipleAuthors(@TempDir Path tempFile) throws Exceptio } @Test - final void formatsContentCorrect(@TempDir Path tempFile) throws Exception { + final void formatsContentCorrect(@TempDir Path tempFile) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.Misc) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -115,7 +118,7 @@ final void formatsContentCorrect(@TempDir Path tempFile) throws Exception { Path file = tempFile.resolve("RandomFileName"); Files.createFile(file); - hayagrivaYamlExporter.export(databaseContext, file, Collections.singletonList(entry)); + hayagrivaYamlExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "---", @@ -132,7 +135,7 @@ final void formatsContentCorrect(@TempDir Path tempFile) throws Exception { } @Test - void passesModifiedCharset(@TempDir Path tempFile) throws Exception { + void passesModifiedCharset(@TempDir Path tempFile) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "谷崎 潤一郎") @@ -142,7 +145,7 @@ void passesModifiedCharset(@TempDir Path tempFile) throws Exception { Path file = tempFile.resolve("RandomFileName"); Files.createFile(file); - hayagrivaYamlExporter.export(databaseContext, file, Collections.singletonList(entry)); + hayagrivaYamlExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "---", @@ -159,7 +162,7 @@ void passesModifiedCharset(@TempDir Path tempFile) throws Exception { } @Test - void passesModifiedCharsetNull(@TempDir Path tempFile) throws Exception { + void passesModifiedCharsetNull(@TempDir Path tempFile) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "谷崎 潤一郎") @@ -169,7 +172,7 @@ void passesModifiedCharsetNull(@TempDir Path tempFile) throws Exception { Path file = tempFile.resolve("RandomFileName"); Files.createFile(file); - hayagrivaYamlExporter.export(databaseContext, file, Collections.singletonList(entry)); + hayagrivaYamlExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "---", @@ -185,7 +188,7 @@ void passesModifiedCharsetNull(@TempDir Path tempFile) throws Exception { } @Test - final void exportsCorrectParentField(@TempDir Path tempFile) throws Exception { + final void exportsCorrectParentField(@TempDir Path tempFile) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -196,7 +199,7 @@ final void exportsCorrectParentField(@TempDir Path tempFile) throws Exception { Path file = tempFile.resolve("RandomFileName"); Files.createFile(file); - hayagrivaYamlExporter.export(databaseContext, file, Collections.singletonList(entry)); + hayagrivaYamlExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "---", diff --git a/src/test/java/org/jabref/logic/exporter/HtmlExportFormatTest.java b/jablib/src/test/java/org/jabref/logic/exporter/HtmlExportFormatTest.java similarity index 87% rename from src/test/java/org/jabref/logic/exporter/HtmlExportFormatTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/HtmlExportFormatTest.java index 72f0c5ad84c..fc8a7a51ad7 100644 --- a/src/test/java/org/jabref/logic/exporter/HtmlExportFormatTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/HtmlExportFormatTest.java @@ -1,11 +1,15 @@ package org.jabref.logic.exporter; +import java.io.IOException; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + import org.jabref.logic.layout.LayoutFormatterPreferences; import org.jabref.logic.util.StandardFileType; import org.jabref.model.database.BibDatabaseContext; @@ -53,7 +57,7 @@ void tearDown() { } @Test - void emitWellFormedHtml(@TempDir Path testFolder) throws Exception { + void emitWellFormedHtml(@TempDir Path testFolder) throws IOException, SaveException, ParserConfigurationException, TransformerException { Path path = testFolder.resolve("ThisIsARandomlyNamedFile"); exportFormat.export(databaseContext, path, entries); List lines = Files.readAllLines(path); diff --git a/src/test/java/org/jabref/logic/exporter/MSBibExportFormatFilesTest.java b/jablib/src/test/java/org/jabref/logic/exporter/MSBibExportFormatFilesTest.java similarity index 98% rename from src/test/java/org/jabref/logic/exporter/MSBibExportFormatFilesTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/MSBibExportFormatFilesTest.java index 6a03d17cd3c..e239d80acd4 100644 --- a/src/test/java/org/jabref/logic/exporter/MSBibExportFormatFilesTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/MSBibExportFormatFilesTest.java @@ -49,7 +49,7 @@ static Stream fileNames() throws IOException, URISyntaxException { } @BeforeEach - void setUp(@TempDir Path testFolder) throws Exception { + void setUp(@TempDir Path testFolder) throws IOException { databaseContext = new BibDatabaseContext(); charset = StandardCharsets.UTF_8; exporter = new MSBibExporter(); diff --git a/src/test/java/org/jabref/logic/exporter/MarkdownTitleExporterTest.java b/jablib/src/test/java/org/jabref/logic/exporter/MarkdownTitleExporterTest.java similarity index 81% rename from src/test/java/org/jabref/logic/exporter/MarkdownTitleExporterTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/MarkdownTitleExporterTest.java index 19ae753ef15..149fae115bb 100644 --- a/src/test/java/org/jabref/logic/exporter/MarkdownTitleExporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/MarkdownTitleExporterTest.java @@ -1,10 +1,13 @@ package org.jabref.logic.exporter; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; import java.util.List; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + import org.jabref.logic.layout.LayoutFormatterPreferences; import org.jabref.logic.util.StandardFileType; import org.jabref.model.database.BibDatabaseContext; @@ -44,15 +47,15 @@ static void setUp() { } @Test - final void exportForNoEntriesWritesNothing(@TempDir Path tempDir) throws Exception { + final void exportForNoEntriesWritesNothing(@TempDir Path tempDir) throws IOException, SaveException, ParserConfigurationException, TransformerException { Path file = tempDir.resolve("ThisIsARandomlyNamedFile"); Files.createFile(file); - htmlWebsiteExporter.export(databaseContext, tempDir, Collections.emptyList()); - assertEquals(Collections.emptyList(), Files.readAllLines(file)); + htmlWebsiteExporter.export(databaseContext, tempDir, List.of()); + assertEquals(List.of(), Files.readAllLines(file)); } @Test - final void exportsCorrectContentArticle(@TempDir Path tempDir) throws Exception { + final void exportsCorrectContentArticle(@TempDir Path tempDir) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -63,7 +66,7 @@ final void exportsCorrectContentArticle(@TempDir Path tempDir) throws Exception Path file = tempDir.resolve("RandomFileName"); Files.createFile(file); - htmlWebsiteExporter.export(databaseContext, file, Collections.singletonList(entry)); + htmlWebsiteExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "* Test Title. Journal of this & that 2020"); @@ -72,7 +75,7 @@ final void exportsCorrectContentArticle(@TempDir Path tempDir) throws Exception } @Test - final void exportsCorrectContentInCollection(@TempDir Path tempDir) throws Exception { + final void exportsCorrectContentInCollection(@TempDir Path tempDir) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.InCollection) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -83,7 +86,7 @@ final void exportsCorrectContentInCollection(@TempDir Path tempDir) throws Excep Path file = tempDir.resolve("RandomFileName"); Files.createFile(file); - htmlWebsiteExporter.export(databaseContext, file, Collections.singletonList(entry)); + htmlWebsiteExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "* Test Title. Test book, PRESS 2020"); @@ -92,7 +95,7 @@ final void exportsCorrectContentInCollection(@TempDir Path tempDir) throws Excep } @Test - final void exportsCorrectContentBook(@TempDir Path tempDir) throws Exception { + final void exportsCorrectContentBook(@TempDir Path tempDir) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.Book) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -103,7 +106,7 @@ final void exportsCorrectContentBook(@TempDir Path tempDir) throws Exception { Path file = tempDir.resolve("RandomFileName"); Files.createFile(file); - htmlWebsiteExporter.export(databaseContext, file, Collections.singletonList(entry)); + htmlWebsiteExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "* Test Title. PRESS 2020"); @@ -112,7 +115,7 @@ final void exportsCorrectContentBook(@TempDir Path tempDir) throws Exception { } @Test - final void exportsCorrectContentInProceeedingsPublisher(@TempDir Path tempDir) throws Exception { + final void exportsCorrectContentInProceeedingsPublisher(@TempDir Path tempDir) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.InProceedings) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -124,7 +127,7 @@ final void exportsCorrectContentInProceeedingsPublisher(@TempDir Path tempDir) t Path file = tempDir.resolve("RandomFileName"); Files.createFile(file); - htmlWebsiteExporter.export(databaseContext, file, Collections.singletonList(entry)); + htmlWebsiteExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "* Test Title. ACM CONF'20"); @@ -133,7 +136,7 @@ final void exportsCorrectContentInProceeedingsPublisher(@TempDir Path tempDir) t } @Test - final void exportsCorrectContentInProceeedingsNoPublisher(@TempDir Path tempDir) throws Exception { + final void exportsCorrectContentInProceeedingsNoPublisher(@TempDir Path tempDir) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.InProceedings) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -144,7 +147,7 @@ final void exportsCorrectContentInProceeedingsNoPublisher(@TempDir Path tempDir) Path file = tempDir.resolve("RandomFileName"); Files.createFile(file); - htmlWebsiteExporter.export(databaseContext, file, Collections.singletonList(entry)); + htmlWebsiteExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "* Test Title. CONF'20"); @@ -153,7 +156,7 @@ final void exportsCorrectContentInProceeedingsNoPublisher(@TempDir Path tempDir) } @Test - final void exportsCorrectContentInProceeedingsNoSeries(@TempDir Path tempDir) throws Exception { + final void exportsCorrectContentInProceeedingsNoSeries(@TempDir Path tempDir) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.InProceedings) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -163,7 +166,7 @@ final void exportsCorrectContentInProceeedingsNoSeries(@TempDir Path tempDir) th Path file = tempDir.resolve("RandomFileName"); Files.createFile(file); - htmlWebsiteExporter.export(databaseContext, file, Collections.singletonList(entry)); + htmlWebsiteExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "* Test Title. Test Conference 2020"); @@ -172,7 +175,7 @@ final void exportsCorrectContentInProceeedingsNoSeries(@TempDir Path tempDir) th } @Test - final void exportsCorrectContentBracketsInTitle(@TempDir Path tempDir) throws Exception { + final void exportsCorrectContentBracketsInTitle(@TempDir Path tempDir) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -182,7 +185,7 @@ final void exportsCorrectContentBracketsInTitle(@TempDir Path tempDir) throws Ex Path file = tempDir.resolve("RandomFileName"); Files.createFile(file); - htmlWebsiteExporter.export(databaseContext, file, Collections.singletonList(entry)); + htmlWebsiteExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "* This is JabRef. Journal of this & that 2020"); diff --git a/src/test/java/org/jabref/logic/exporter/MetaDataSerializerTest.java b/jablib/src/test/java/org/jabref/logic/exporter/MetaDataSerializerTest.java similarity index 91% rename from src/test/java/org/jabref/logic/exporter/MetaDataSerializerTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/MetaDataSerializerTest.java index 2254e60dcc1..6cefaefd182 100644 --- a/src/test/java/org/jabref/logic/exporter/MetaDataSerializerTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/MetaDataSerializerTest.java @@ -1,10 +1,10 @@ package org.jabref.logic.exporter; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.Set; import java.util.TreeMap; import java.util.stream.Stream; @@ -49,18 +49,18 @@ void setUp() { newCustomType = new BibEntryType( CUSTOM_TYPE, List.of(new BibField(StandardField.AUTHOR, FieldPriority.IMPORTANT)), - Collections.emptySet()); + Set.of()); } @Test void serializeNewMetadataReturnsEmptyMap() { - assertEquals(Collections.emptyMap(), MetaDataSerializer.getSerializedStringMap(metaData, pattern)); + assertEquals(Map.of(), MetaDataSerializer.getSerializedStringMap(metaData, pattern)); } @Test void serializeSingleSaveAction() { FieldFormatterCleanups saveActions = new FieldFormatterCleanups(true, - Collections.singletonList(new FieldFormatterCleanup(StandardField.TITLE, new LowerCaseFormatter()))); + List.of(new FieldFormatterCleanup(StandardField.TITLE, new LowerCaseFormatter()))); metaData.setSaveActions(saveActions); Map expectedSerialization = new TreeMap<>(); @@ -88,19 +88,19 @@ void serializeSingleContentSelectors() { void parsingEmptyOrFieldsReturnsEmptyCollections() { String serialized = MetaDataSerializer.serializeCustomEntryTypes(newCustomType); Optional type = MetaDataParser.parseCustomEntryType(serialized); - assertEquals(Collections.emptySet(), type.get().getRequiredFields()); + assertEquals(Set.of(), type.get().getRequiredFields()); } @Test void parsingEmptyOptionalFieldsFieldsReturnsEmptyCollections() { newCustomType = new BibEntryType( CUSTOM_TYPE, - Collections.emptySet(), - Collections.singleton(new OrFields(StandardField.AUTHOR))); + Set.of(), + Set.of(new OrFields(StandardField.AUTHOR))); String serialized = MetaDataSerializer.serializeCustomEntryTypes(newCustomType); Optional type = MetaDataParser.parseCustomEntryType(serialized); - assertEquals(Collections.emptySet(), type.get().getOptionalFields()); + assertEquals(Set.of(), type.get().getOptionalFields()); } /** diff --git a/src/test/java/org/jabref/logic/exporter/ModsExportFormatFilesTest.java b/jablib/src/test/java/org/jabref/logic/exporter/ModsExportFormatFilesTest.java similarity index 90% rename from src/test/java/org/jabref/logic/exporter/ModsExportFormatFilesTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/ModsExportFormatFilesTest.java index 2fb783d02cd..402e5734b4f 100644 --- a/src/test/java/org/jabref/logic/exporter/ModsExportFormatFilesTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/ModsExportFormatFilesTest.java @@ -1,5 +1,7 @@ package org.jabref.logic.exporter; +import java.io.IOException; +import java.net.URISyntaxException; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -7,7 +9,6 @@ import java.util.List; import java.util.stream.Stream; -import org.jabref.logic.bibtex.BibEntryAssert; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.logic.importer.fileformat.BibtexImporter; import org.jabref.logic.importer.fileformat.ModsImporter; @@ -15,6 +16,7 @@ import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.BibEntryPreferences; import org.jabref.model.util.DummyFileUpdateMonitor; +import org.jabref.support.BibEntryAssert; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.io.TempDir; @@ -41,7 +43,7 @@ public class ModsExportFormatFilesTest { private ModsImporter modsImporter; private Path importFile; - public static Stream fileNames() throws Exception { + public static Stream fileNames() throws URISyntaxException, IOException { resourceDir = Path.of(MSBibExportFormatFilesTest.class.getResource("ModsExportFormatTestAllFields.bib").toURI()).getParent(); LOGGER.debug("Mods export resouce dir {}", resourceDir); @@ -52,7 +54,7 @@ public static Stream fileNames() throws Exception { } @BeforeEach - void setUp(@TempDir Path testFolder) throws Exception { + void setUp(@TempDir Path testFolder) throws IOException { ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); when(importFormatPreferences.bibEntryPreferences()).thenReturn(mock(BibEntryPreferences.class)); when(importFormatPreferences.bibEntryPreferences().getKeywordSeparator()).thenReturn(','); @@ -70,7 +72,7 @@ void setUp(@TempDir Path testFolder) throws Exception { @ParameterizedTest @MethodSource("fileNames") - final void performExport(String filename) throws Exception { + final void performExport(String filename) throws URISyntaxException, IOException, SaveException { importFile = Path.of(ModsExportFormatFilesTest.class.getResource(filename).toURI()); String xmlFileName = filename.replace(".bib", ".xml"); List entries = bibtexImporter.importDatabase(importFile).getDatabase().getEntries(); @@ -85,7 +87,7 @@ final void performExport(String filename) throws Exception { @ParameterizedTest @MethodSource("fileNames") - final void exportAsModsAndThenImportAsMods(String filename) throws Exception { + final void exportAsModsAndThenImportAsMods(String filename) throws URISyntaxException, IOException, SaveException { importFile = Path.of(ModsExportFormatFilesTest.class.getResource(filename).toURI()); List entries = bibtexImporter.importDatabase(importFile).getDatabase().getEntries(); @@ -95,7 +97,7 @@ final void exportAsModsAndThenImportAsMods(String filename) throws Exception { @ParameterizedTest @MethodSource("fileNames") - final void importAsModsAndExportAsMods(String filename) throws Exception { + final void importAsModsAndExportAsMods(String filename) throws IOException, URISyntaxException, SaveException { importFile = Path.of(ModsExportFormatFilesTest.class.getResource(filename).toURI()); String xmlFileName = filename.replace(".bib", ".xml"); Path xmlFile = Path.of(ModsExportFormatFilesTest.class.getResource(xmlFileName).toURI()); diff --git a/src/test/java/org/jabref/logic/exporter/ModsExportFormatTest.java b/jablib/src/test/java/org/jabref/logic/exporter/ModsExportFormatTest.java similarity index 79% rename from src/test/java/org/jabref/logic/exporter/ModsExportFormatTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/ModsExportFormatTest.java index c08f76582c4..f2efa487f87 100644 --- a/src/test/java/org/jabref/logic/exporter/ModsExportFormatTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/ModsExportFormatTest.java @@ -1,8 +1,10 @@ package org.jabref.logic.exporter; +import java.io.IOException; +import java.net.URISyntaxException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; +import java.util.List; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.logic.importer.fileformat.BibtexImporter; @@ -23,7 +25,7 @@ class ModsExportFormatTest { private BibDatabaseContext databaseContext; @BeforeEach - void setUp() throws Exception { + void setUp() throws URISyntaxException { databaseContext = new BibDatabaseContext(); modsExportFormat = new ModsExporter(); new BibtexImporter(mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS), new DummyFileUpdateMonitor()); @@ -31,10 +33,10 @@ void setUp() throws Exception { } @Test - final void exportForNoEntriesWritesNothing(@TempDir Path tempFile) throws Exception { + final void exportForNoEntriesWritesNothing(@TempDir Path tempFile) throws IOException, SaveException { Path file = tempFile.resolve("ThisIsARandomlyNamedFile"); Files.createFile(file); - modsExportFormat.export(databaseContext, tempFile, Collections.emptyList()); - assertEquals(Collections.emptyList(), Files.readAllLines(file)); + modsExportFormat.export(databaseContext, tempFile, List.of()); + assertEquals(List.of(), Files.readAllLines(file)); } } diff --git a/src/test/java/org/jabref/logic/exporter/MsBibExportFormatTest.java b/jablib/src/test/java/org/jabref/logic/exporter/MsBibExportFormatTest.java similarity index 82% rename from src/test/java/org/jabref/logic/exporter/MsBibExportFormatTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/MsBibExportFormatTest.java index 956779c8a28..3931a1b01f1 100644 --- a/src/test/java/org/jabref/logic/exporter/MsBibExportFormatTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/MsBibExportFormatTest.java @@ -3,7 +3,6 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import org.jabref.model.database.BibDatabaseContext; @@ -21,7 +20,7 @@ public class MsBibExportFormatTest { public MSBibExporter msBibExportFormat; @BeforeEach - void setUp() throws Exception { + void setUp() { databaseContext = new BibDatabaseContext(); msBibExportFormat = new MSBibExporter(); } @@ -30,8 +29,8 @@ void setUp() throws Exception { final void performExportWithNoEntry(@TempDir Path tempFile) throws IOException, SaveException { Path path = tempFile.resolve("ThisIsARandomlyNamedFile"); Files.createFile(path); - List entries = Collections.emptyList(); + List entries = List.of(); msBibExportFormat.export(databaseContext, path, entries); - assertEquals(Collections.emptyList(), Files.readAllLines(path)); + assertEquals(List.of(), Files.readAllLines(path)); } } diff --git a/src/test/java/org/jabref/logic/exporter/OpenOfficeDocumentCreatorTest.java b/jablib/src/test/java/org/jabref/logic/exporter/OpenOfficeDocumentCreatorTest.java similarity index 93% rename from src/test/java/org/jabref/logic/exporter/OpenOfficeDocumentCreatorTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/OpenOfficeDocumentCreatorTest.java index 3ec4af00069..4fbed74ce86 100644 --- a/src/test/java/org/jabref/logic/exporter/OpenOfficeDocumentCreatorTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/OpenOfficeDocumentCreatorTest.java @@ -1,6 +1,5 @@ package org.jabref.logic.exporter; -import java.io.FileInputStream; import java.io.IOException; import java.net.URISyntaxException; import java.nio.charset.Charset; @@ -8,11 +7,13 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardCopyOption; -import java.util.Collections; import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + import org.jabref.model.database.BibDatabaseContext; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; @@ -58,11 +59,11 @@ void setUp() throws URISyntaxException { entry.setField(StandardField.VOLUME, "34"); entry.setField(StandardField.YEAR, "2002"); - entries = Collections.singletonList(entry); + entries = List.of(entry); } @Test - void performExportForSingleEntry(@TempDir Path testFolder) throws Exception { + void performExportForSingleEntry(@TempDir Path testFolder) throws IOException, SaveException, ParserConfigurationException, TransformerException { Path zipPath = testFolder.resolve("OpenOfficeRandomNamedFile"); exporter.export(databaseContext, zipPath, entries); @@ -83,7 +84,7 @@ void performExportForSingleEntry(@TempDir Path testFolder) throws Exception { } private static void unzipContentXml(Path zipFile, Path unzipFolder) throws IOException { - try (ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFile.toFile()))) { + try (ZipInputStream zis = new ZipInputStream(Files.newInputStream(zipFile))) { ZipEntry zipEntry = zis.getNextEntry(); while (zipEntry != null) { diff --git a/src/test/java/org/jabref/logic/exporter/XmpExporterTest.java b/jablib/src/test/java/org/jabref/logic/exporter/XmpExporterTest.java similarity index 91% rename from src/test/java/org/jabref/logic/exporter/XmpExporterTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/XmpExporterTest.java index 64eae6945a7..4ebddab3509 100644 --- a/src/test/java/org/jabref/logic/exporter/XmpExporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/XmpExporterTest.java @@ -1,10 +1,14 @@ package org.jabref.logic.exporter; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; -import java.util.Collections; import java.util.List; +import java.util.Set; + +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; import javafx.collections.FXCollections; @@ -33,14 +37,14 @@ void setUp() { } @Test - void exportSingleEntry(@TempDir Path testFolder) throws Exception { + void exportSingleEntry(@TempDir Path testFolder) throws IOException, SaveException, ParserConfigurationException, TransformerException { Path file = testFolder.resolve("ThisIsARandomlyNamedFile"); Files.createFile(file); BibEntry entry = new BibEntry(); entry.setField(StandardField.AUTHOR, "Alan Turing"); - exporter.export(databaseContext, file, Collections.singletonList(entry)); + exporter.export(databaseContext, file, List.of(entry)); String actual = String.join("\n", Files.readAllLines(file)); // we are using \n to join, so we need it in the expected string as well, \r\n would fail String expected = """ @@ -63,7 +67,7 @@ void exportSingleEntry(@TempDir Path testFolder) throws Exception { } @Test - void writeMultipleEntriesInASingleFile(@TempDir Path testFolder) throws Exception { + void writeMultipleEntriesInASingleFile(@TempDir Path testFolder) throws IOException, SaveException, ParserConfigurationException, TransformerException { Path file = testFolder.resolve("ThisIsARandomlyNamedFile"); Files.createFile(file); @@ -117,7 +121,7 @@ void writeMultipleEntriesInASingleFile(@TempDir Path testFolder) throws Exceptio } @Test - void writeMultipleEntriesInDifferentFiles(@TempDir Path testFolder) throws Exception { + void writeMultipleEntriesInDifferentFiles(@TempDir Path testFolder) throws IOException, SaveException, ParserConfigurationException, TransformerException { // set path to the one where the exporter produces several files Path file = testFolder.resolve(XmpExporter.XMP_SPLIT_DIRECTORY_INDICATOR); Files.createFile(file); @@ -132,7 +136,7 @@ void writeMultipleEntriesInDifferentFiles(@TempDir Path testFolder) throws Excep // Nothing written in given file List lines = Files.readAllLines(file); - assertEquals(Collections.emptyList(), lines); + assertEquals(List.of(), lines); // turing contains the turing entry only Path fileTuring = Path.of(file.getParent().toString(), entryTuring.getId() + "_null.xmp"); @@ -187,8 +191,8 @@ void writeMultipleEntriesInDifferentFiles(@TempDir Path testFolder) throws Excep } @Test - void exportSingleEntryWithPrivacyFilter(@TempDir Path testFolder) throws Exception { - when(xmpPreferences.getXmpPrivacyFilter()).thenReturn(FXCollections.observableSet(Collections.singleton(StandardField.AUTHOR))); + void exportSingleEntryWithPrivacyFilter(@TempDir Path testFolder) throws IOException, SaveException, ParserConfigurationException, TransformerException { + when(xmpPreferences.getXmpPrivacyFilter()).thenReturn(FXCollections.observableSet(Set.of(StandardField.AUTHOR))); when(xmpPreferences.shouldUseXmpPrivacyFilter()).thenReturn(true); Path file = testFolder.resolve("ThisIsARandomlyNamedFile"); @@ -197,7 +201,7 @@ void exportSingleEntryWithPrivacyFilter(@TempDir Path testFolder) throws Excepti BibEntry entry = new BibEntry() .withField(StandardField.AUTHOR, "Alan Turing"); - exporter.export(databaseContext, file, Collections.singletonList(entry)); + exporter.export(databaseContext, file, List.of(entry)); String actual = String.join("\n", Files.readAllLines(file)); String expected = """ diff --git a/src/test/java/org/jabref/logic/exporter/XmpPdfExporterTest.java b/jablib/src/test/java/org/jabref/logic/exporter/XmpPdfExporterTest.java similarity index 92% rename from src/test/java/org/jabref/logic/exporter/XmpPdfExporterTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/XmpPdfExporterTest.java index 0e1978716fc..20b5293912a 100644 --- a/src/test/java/org/jabref/logic/exporter/XmpPdfExporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/XmpPdfExporterTest.java @@ -2,10 +2,13 @@ import java.io.IOException; import java.nio.file.Path; -import java.util.Collections; import java.util.List; +import java.util.Set; import java.util.stream.Stream; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + import javafx.beans.property.SimpleObjectProperty; import javafx.collections.FXCollections; @@ -105,7 +108,7 @@ void setUp() throws IOException { when(filePreferences.getUserAndHost()).thenReturn(tempDir.toAbsolutePath().toString()); when(filePreferences.shouldStoreFilesRelativeToBibFile()).thenReturn(false); - xmpPreferences = new XmpPreferences(false, Collections.emptySet(), new SimpleObjectProperty<>(',')); + xmpPreferences = new XmpPreferences(false, Set.of(), new SimpleObjectProperty<>(',')); exporter = new XmpPdfExporter(xmpPreferences); ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); @@ -134,13 +137,13 @@ void reset() throws IOException { @ParameterizedTest @MethodSource("provideBibEntriesWithValidPdfFileLinks") - void successfulExportToAllFilesOfEntry(BibEntry bibEntryWithValidPdfFileLink) throws Exception { + void successfulExportToAllFilesOfEntry(BibEntry bibEntryWithValidPdfFileLink) throws IOException, SaveException, ParserConfigurationException, TransformerException { assertTrue(exporter.exportToAllFilesOfEntry(databaseContext, filePreferences, bibEntryWithValidPdfFileLink, List.of(OLLY_2018), abbreviationRepository)); } @ParameterizedTest @MethodSource("provideBibEntriesWithInvalidPdfFileLinks") - void unsuccessfulExportToAllFilesOfEntry(BibEntry bibEntryWithValidPdfFileLink) throws Exception { + void unsuccessfulExportToAllFilesOfEntry(BibEntry bibEntryWithValidPdfFileLink) throws IOException, SaveException, ParserConfigurationException, TransformerException { assertFalse(exporter.exportToAllFilesOfEntry(databaseContext, filePreferences, bibEntryWithValidPdfFileLink, List.of(OLLY_2018), abbreviationRepository)); } @@ -154,18 +157,18 @@ public static Stream provideBibEntriesWithInvalidPdfFileLinks() { @ParameterizedTest @MethodSource("providePathsToValidPDFs") - void successfulExportToFileByPath(Path path) throws Exception { + void successfulExportToFileByPath(Path path) throws IOException, SaveException, ParserConfigurationException, TransformerException { assertTrue(exporter.exportToFileByPath(databaseContext, filePreferences, path, abbreviationRepository)); } @ParameterizedTest @MethodSource("providePathsToInvalidPDFs") - void unsuccessfulExportToFileByPath(Path path) throws Exception { + void unsuccessfulExportToFileByPath(Path path) throws IOException, SaveException, ParserConfigurationException, TransformerException { assertFalse(exporter.exportToFileByPath(databaseContext, filePreferences, path, abbreviationRepository)); } @Test - void roundtripExportImport() throws Exception { + void roundtripExportImport() throws IOException, TransformerException { Path path = tempDir.resolve("original.pdf").toAbsolutePath(); try (PDDocument document = new PDDocument()) { PDPage page = new PDPage(); diff --git a/src/test/java/org/jabref/logic/exporter/YamlExporterTest.java b/jablib/src/test/java/org/jabref/logic/exporter/YamlExporterTest.java similarity index 83% rename from src/test/java/org/jabref/logic/exporter/YamlExporterTest.java rename to jablib/src/test/java/org/jabref/logic/exporter/YamlExporterTest.java index 88de5983f99..0ab80c9b70e 100644 --- a/src/test/java/org/jabref/logic/exporter/YamlExporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/exporter/YamlExporterTest.java @@ -1,10 +1,13 @@ package org.jabref.logic.exporter; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; import java.util.List; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + import org.jabref.logic.layout.LayoutFormatterPreferences; import org.jabref.logic.util.StandardFileType; import org.jabref.model.database.BibDatabaseContext; @@ -42,15 +45,15 @@ static void setUp() { } @Test - final void exportForNoEntriesWritesNothing(@TempDir Path tempFile) throws Exception { + final void exportForNoEntriesWritesNothing(@TempDir Path tempFile) throws IOException, SaveException, ParserConfigurationException, TransformerException { Path file = tempFile.resolve("ThisIsARandomlyNamedFile"); Files.createFile(file); - yamlExporter.export(databaseContext, tempFile, Collections.emptyList()); - assertEquals(Collections.emptyList(), Files.readAllLines(file)); + yamlExporter.export(databaseContext, tempFile, List.of()); + assertEquals(List.of(), Files.readAllLines(file)); } @Test - final void exportsCorrectContent(@TempDir Path tempFile) throws Exception { + final void exportsCorrectContent(@TempDir Path tempFile) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -60,7 +63,7 @@ final void exportsCorrectContent(@TempDir Path tempFile) throws Exception { Path file = tempFile.resolve("RandomFileName"); Files.createFile(file); - yamlExporter.export(databaseContext, file, Collections.singletonList(entry)); + yamlExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "---", @@ -78,7 +81,7 @@ final void exportsCorrectContent(@TempDir Path tempFile) throws Exception { } @Test - final void formatsContentCorrect(@TempDir Path tempFile) throws Exception { + final void formatsContentCorrect(@TempDir Path tempFile) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.Misc) .withCitationKey("test") .withField(StandardField.AUTHOR, "Test Author") @@ -88,7 +91,7 @@ final void formatsContentCorrect(@TempDir Path tempFile) throws Exception { Path file = tempFile.resolve("RandomFileName"); Files.createFile(file); - yamlExporter.export(databaseContext, file, Collections.singletonList(entry)); + yamlExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "---", @@ -106,7 +109,7 @@ final void formatsContentCorrect(@TempDir Path tempFile) throws Exception { } @Test - void passesModifiedCharset(@TempDir Path tempFile) throws Exception { + void passesModifiedCharset(@TempDir Path tempFile) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "谷崎 潤一郎") @@ -116,7 +119,7 @@ void passesModifiedCharset(@TempDir Path tempFile) throws Exception { Path file = tempFile.resolve("RandomFileName"); Files.createFile(file); - yamlExporter.export(databaseContext, file, Collections.singletonList(entry)); + yamlExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "---", @@ -134,7 +137,7 @@ void passesModifiedCharset(@TempDir Path tempFile) throws Exception { } @Test - void passesModifiedCharsetNull(@TempDir Path tempFile) throws Exception { + void passesModifiedCharsetNull(@TempDir Path tempFile) throws IOException, SaveException, ParserConfigurationException, TransformerException { BibEntry entry = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "谷崎 潤一郎") @@ -144,7 +147,7 @@ void passesModifiedCharsetNull(@TempDir Path tempFile) throws Exception { Path file = tempFile.resolve("RandomFileName"); Files.createFile(file); - yamlExporter.export(databaseContext, file, Collections.singletonList(entry)); + yamlExporter.export(databaseContext, file, List.of(entry)); List expected = List.of( "---", diff --git a/src/test/java/org/jabref/logic/externalfiles/LinkedFileHandlerTest.java b/jablib/src/test/java/org/jabref/logic/externalfiles/LinkedFileHandlerTest.java similarity index 95% rename from src/test/java/org/jabref/logic/externalfiles/LinkedFileHandlerTest.java rename to jablib/src/test/java/org/jabref/logic/externalfiles/LinkedFileHandlerTest.java index acab53e8acd..b860593fb12 100644 --- a/src/test/java/org/jabref/logic/externalfiles/LinkedFileHandlerTest.java +++ b/jablib/src/test/java/org/jabref/logic/externalfiles/LinkedFileHandlerTest.java @@ -1,10 +1,11 @@ package org.jabref.logic.externalfiles; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import org.jabref.gui.preferences.GuiPreferences; import org.jabref.logic.FilePreferences; +import org.jabref.logic.preferences.CliPreferences; import org.jabref.logic.xmp.XmpPreferences; import org.jabref.model.database.BibDatabaseContext; import org.jabref.model.entry.BibEntry; @@ -24,7 +25,7 @@ class LinkedFileHandlerTest { private BibEntry entry; private BibDatabaseContext databaseContext; private final FilePreferences filePreferences = mock(FilePreferences.class); - private final GuiPreferences preferences = mock(GuiPreferences.class); + private final CliPreferences preferences = mock(CliPreferences.class); @BeforeEach void setUp(@TempDir Path tempFolder) { @@ -46,7 +47,7 @@ void setUp(@TempDir Path tempFolder) { "newName.pdf, testFile, newName.pdf", "newName..pdf, test.pdf, newName." }) - void renameFile(String expectedFileName, String originalFileName, String newFileName) throws Exception { + void renameFile(String expectedFileName, String originalFileName, String newFileName) throws IOException { final Path tempFile = tempFolder.resolve(originalFileName); Files.createFile(tempFile); diff --git a/src/test/java/org/jabref/logic/formatter/FormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/FormatterTest.java similarity index 94% rename from src/test/java/org/jabref/logic/formatter/FormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/FormatterTest.java index d0d516941f1..d551426beda 100644 --- a/src/test/java/org/jabref/logic/formatter/FormatterTest.java +++ b/jablib/src/test/java/org/jabref/logic/formatter/FormatterTest.java @@ -1,6 +1,6 @@ package org.jabref.logic.formatter; -import java.util.Collections; +import java.util.List; import java.util.Map; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -29,8 +29,8 @@ class FormatterTest { @BeforeAll static void setUp() { protectedTermsLoader = new ProtectedTermsLoader( - new ProtectedTermsPreferences(ProtectedTermsLoader.getInternalLists(), Collections.emptyList(), - Collections.emptyList(), Collections.emptyList())); + new ProtectedTermsPreferences(ProtectedTermsLoader.getInternalLists(), List.of(), + List.of(), List.of())); } /** @@ -40,14 +40,14 @@ static void setUp() { @Test void allFormatterKeysAreUnique() { // idea for uniqueness checking by https://stackoverflow.com/a/44032568/873282 - assertEquals(Collections.emptyList(), + assertEquals(List.of(), getFormatters().collect(Collectors.groupingBy( Formatter::getKey, Collectors.counting())) .entrySet().stream() .filter(e -> e.getValue() > 1) .map(Map.Entry::getKey) - .collect(Collectors.toList())); + .toList()); } @ParameterizedTest diff --git a/src/test/java/org/jabref/logic/formatter/IdentityFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/IdentityFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/IdentityFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/IdentityFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/AddBracesFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/AddBracesFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/AddBracesFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/AddBracesFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/CleanupUrlFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/CleanupUrlFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/CleanupUrlFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/CleanupUrlFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/ClearFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/ClearFormatterTest.java similarity index 87% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/ClearFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/ClearFormatterTest.java index a83f67d5a19..70c5232c7b4 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/ClearFormatterTest.java +++ b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/ClearFormatterTest.java @@ -21,7 +21,7 @@ void setUp() { * Check whether the clear formatter really returns the empty string for the empty string */ @Test - void formatReturnsEmptyForEmptyString() throws Exception { + void formatReturnsEmptyForEmptyString() { assertEquals("", formatter.format("")); } @@ -29,7 +29,7 @@ void formatReturnsEmptyForEmptyString() throws Exception { * Check whether the clear formatter really returns the empty string for some string */ @Test - void formatReturnsEmptyForSomeString() throws Exception { + void formatReturnsEmptyForSomeString() { assertEquals("", formatter.format("test")); } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/EscapeAmpersandsFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/EscapeAmpersandsFormatterTest.java similarity index 84% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/EscapeAmpersandsFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/EscapeAmpersandsFormatterTest.java index 0f5258511f7..d89f194db0f 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/EscapeAmpersandsFormatterTest.java +++ b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/EscapeAmpersandsFormatterTest.java @@ -15,12 +15,12 @@ void setUp() { } @Test - void formatReturnsSameTextIfNoAmpersandsPresent() throws Exception { + void formatReturnsSameTextIfNoAmpersandsPresent() { assertEquals("Lorem ipsum", formatter.format("Lorem ipsum")); } @Test - void formatEscapesAmpersandsIfPresent() throws Exception { + void formatEscapesAmpersandsIfPresent() { assertEquals("Lorem\\&ipsum", formatter.format("Lorem&ipsum")); } @@ -30,12 +30,12 @@ void formatExample() { } @Test - void formatReturnsSameTextInNewUserDefinedLatexCommandIfNoAmpersandsPresent() throws Exception { + void formatReturnsSameTextInNewUserDefinedLatexCommandIfNoAmpersandsPresent() { assertEquals("\\newcommand[1]{Lorem ipsum}", formatter.format("\\newcommand[1]{Lorem ipsum}")); } @Test - void formatReturnsSameTextInLatexCommandIfOneAmpersandPresent() throws Exception { + void formatReturnsSameTextInLatexCommandIfOneAmpersandPresent() { assertEquals("\\textbf{Lorem\\&ipsum}", formatter.format("\\textbf{Lorem\\&ipsum}")); } } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/EscapeDollarSignFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/EscapeDollarSignFormatterTest.java similarity index 94% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/EscapeDollarSignFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/EscapeDollarSignFormatterTest.java index 55b4d543cc9..4f3e5212a15 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/EscapeDollarSignFormatterTest.java +++ b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/EscapeDollarSignFormatterTest.java @@ -29,7 +29,7 @@ private static Stream correctlyFormats() { @ParameterizedTest @MethodSource - void correctlyFormats(String expected, String input) throws Exception { + void correctlyFormats(String expected, String input) { assertEquals(expected, formatter.format(input)); } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/EscapeUnderscoresFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/EscapeUnderscoresFormatterTest.java similarity index 83% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/EscapeUnderscoresFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/EscapeUnderscoresFormatterTest.java index 2c756e7eebf..3ec701823b2 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/EscapeUnderscoresFormatterTest.java +++ b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/EscapeUnderscoresFormatterTest.java @@ -15,12 +15,12 @@ void setUp() { } @Test - void formatReturnsSameTextIfNoUnderscoresPresent() throws Exception { + void formatReturnsSameTextIfNoUnderscoresPresent() { assertEquals("Lorem ipsum", formatter.format("Lorem ipsum")); } @Test - void formatEscapesUnderscoresIfPresent() throws Exception { + void formatEscapesUnderscoresIfPresent() { assertEquals("Lorem\\_ipsum", formatter.format("Lorem_ipsum")); } diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToLatexFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToLatexFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToLatexFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToLatexFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/LatexCleanupFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/LatexCleanupFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/LatexCleanupFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/LatexCleanupFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeDateFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeDateFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeDateFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeDateFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeEnDashesFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeEnDashesFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeEnDashesFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeEnDashesFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeMonthFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeMonthFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeMonthFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeMonthFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeNamesFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeNamesFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeNamesFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeNamesFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizePagesFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizePagesFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizePagesFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizePagesFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeUnicodeFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeUnicodeFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeUnicodeFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeUnicodeFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeWhitespaceFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeWhitespaceFormatterTest.java similarity index 94% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeWhitespaceFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeWhitespaceFormatterTest.java index 346cf6c6295..543d1c34fb9 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeWhitespaceFormatterTest.java +++ b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/NormalizeWhitespaceFormatterTest.java @@ -1,6 +1,6 @@ package org.jabref.logic.formatter.bibtexfields; -import java.util.Collections; +import java.util.List; import org.jabref.logic.bibtex.FieldPreferences; import org.jabref.model.entry.field.StandardField; @@ -19,8 +19,8 @@ class NormalizeWhitespaceFormatterTest { void setUp() { parser = new NormalizeWhitespaceFormatter(new FieldPreferences( false, - Collections.emptyList(), - Collections.emptyList())); + List.of(), + List.of())); } @Test diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/OrdinalsToSuperscriptFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/OrdinalsToSuperscriptFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/OrdinalsToSuperscriptFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/OrdinalsToSuperscriptFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/RegexFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/RegexFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/RegexFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/RegexFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveDigitsFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveDigitsFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveDigitsFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveDigitsFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveEnclosingBracesFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveEnclosingBracesFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveEnclosingBracesFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveEnclosingBracesFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveHyphenatedNewlinesFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveHyphenatedNewlinesFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveHyphenatedNewlinesFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveHyphenatedNewlinesFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveNewlinesFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveNewlinesFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveNewlinesFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveNewlinesFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveRedundantSpacesFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveRedundantSpacesFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveRedundantSpacesFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveRedundantSpacesFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveWordEnclosingAndOuterEnclosingBracesFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveWordEnclosingAndOuterEnclosingBracesFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveWordEnclosingAndOuterEnclosingBracesFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/RemoveWordEnclosingAndOuterEnclosingBracesFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/ReplaceTabsBySpaceFormaterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/ReplaceTabsBySpaceFormaterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/ReplaceTabsBySpaceFormaterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/ReplaceTabsBySpaceFormaterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/ReplaceWithEscapedDoubleQuotesTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/ReplaceWithEscapedDoubleQuotesTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/ReplaceWithEscapedDoubleQuotesTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/ReplaceWithEscapedDoubleQuotesTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/ShortenDOIFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/ShortenDOIFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/ShortenDOIFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/ShortenDOIFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/TrimWhitespaceFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/TrimWhitespaceFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/TrimWhitespaceFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/TrimWhitespaceFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/UnicodeConverterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/UnicodeConverterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/UnicodeConverterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/UnicodeConverterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/UnicodeToLatexFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/UnicodeToLatexFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/UnicodeToLatexFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/UnicodeToLatexFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/UnitsToLatexFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/UnitsToLatexFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/bibtexfields/UnitsToLatexFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/bibtexfields/UnitsToLatexFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/casechanger/CapitalizeFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/casechanger/CapitalizeFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/casechanger/CapitalizeFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/casechanger/CapitalizeFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/casechanger/LowerCaseFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/casechanger/LowerCaseFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/casechanger/LowerCaseFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/casechanger/LowerCaseFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/casechanger/ProtectTermsFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/casechanger/ProtectTermsFormatterTest.java similarity index 92% rename from src/test/java/org/jabref/logic/formatter/casechanger/ProtectTermsFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/casechanger/ProtectTermsFormatterTest.java index 086edaaf542..9848f44e7a0 100644 --- a/src/test/java/org/jabref/logic/formatter/casechanger/ProtectTermsFormatterTest.java +++ b/jablib/src/test/java/org/jabref/logic/formatter/casechanger/ProtectTermsFormatterTest.java @@ -1,6 +1,6 @@ package org.jabref.logic.formatter.casechanger; -import java.util.Collections; +import java.util.List; import org.jabref.logic.protectedterms.ProtectedTermsLoader; import org.jabref.logic.protectedterms.ProtectedTermsPreferences; @@ -21,7 +21,7 @@ class ProtectTermsFormatterTest { void setUp() { formatter = new ProtectTermsFormatter( new ProtectedTermsLoader(new ProtectedTermsPreferences(ProtectedTermsLoader.getInternalLists(), - Collections.emptyList(), Collections.emptyList(), Collections.emptyList()))); + List.of(), List.of(), List.of()))); } @Test diff --git a/src/test/java/org/jabref/logic/formatter/casechanger/SentenceCaseFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/casechanger/SentenceCaseFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/casechanger/SentenceCaseFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/casechanger/SentenceCaseFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/casechanger/TitleCaseFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/casechanger/TitleCaseFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/casechanger/TitleCaseFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/casechanger/TitleCaseFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/casechanger/UnprotectTermsFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/casechanger/UnprotectTermsFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/casechanger/UnprotectTermsFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/casechanger/UnprotectTermsFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/casechanger/UpperCaseFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/casechanger/UpperCaseFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/casechanger/UpperCaseFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/casechanger/UpperCaseFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/minifier/MinifyNameListFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/minifier/MinifyNameListFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/minifier/MinifyNameListFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/minifier/MinifyNameListFormatterTest.java diff --git a/src/test/java/org/jabref/logic/formatter/minifier/TruncateFormatterTest.java b/jablib/src/test/java/org/jabref/logic/formatter/minifier/TruncateFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/formatter/minifier/TruncateFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/formatter/minifier/TruncateFormatterTest.java diff --git a/src/test/java/org/jabref/logic/git/GitHandlerTest.java b/jablib/src/test/java/org/jabref/logic/git/GitHandlerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/git/GitHandlerTest.java rename to jablib/src/test/java/org/jabref/logic/git/GitHandlerTest.java diff --git a/src/test/java/org/jabref/logic/git/SlrGitHandlerTest.java b/jablib/src/test/java/org/jabref/logic/git/SlrGitHandlerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/git/SlrGitHandlerTest.java rename to jablib/src/test/java/org/jabref/logic/git/SlrGitHandlerTest.java diff --git a/src/test/java/org/jabref/logic/help/HelpFileTest.java b/jablib/src/test/java/org/jabref/logic/help/HelpFileTest.java similarity index 100% rename from src/test/java/org/jabref/logic/help/HelpFileTest.java rename to jablib/src/test/java/org/jabref/logic/help/HelpFileTest.java diff --git a/src/test/java/org/jabref/logic/importer/AuthorListParserTest.java b/jablib/src/test/java/org/jabref/logic/importer/AuthorListParserTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/AuthorListParserTest.java rename to jablib/src/test/java/org/jabref/logic/importer/AuthorListParserTest.java diff --git a/src/test/java/org/jabref/logic/importer/BibDatabaseFilesTest.java b/jablib/src/test/java/org/jabref/logic/importer/BibDatabaseFilesTest.java similarity index 87% rename from src/test/java/org/jabref/logic/importer/BibDatabaseFilesTest.java rename to jablib/src/test/java/org/jabref/logic/importer/BibDatabaseFilesTest.java index fe4a73946ba..cd2113c7ba1 100644 --- a/src/test/java/org/jabref/logic/importer/BibDatabaseFilesTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/BibDatabaseFilesTest.java @@ -1,9 +1,11 @@ package org.jabref.logic.importer; -import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; import org.jabref.logic.importer.fileformat.BibtexParser; import org.jabref.model.database.BibDatabase; @@ -26,7 +28,7 @@ void setUp() { @Test void resolveStrings() throws IOException { - try (FileInputStream stream = new FileInputStream("src/test/resources/org/jabref/util/twente.bib"); + try (InputStream stream = Files.newInputStream(Path.of("src/test/resources/org/jabref/util/twente.bib")); InputStreamReader fr = new InputStreamReader(stream, StandardCharsets.UTF_8)) { ParserResult result = new BibtexParser(importFormatPreferences).parse(fr); diff --git a/src/test/java/org/jabref/logic/importer/DatabaseFileLookupTest.java b/jablib/src/test/java/org/jabref/logic/importer/DatabaseFileLookupTest.java similarity index 95% rename from src/test/java/org/jabref/logic/importer/DatabaseFileLookupTest.java rename to jablib/src/test/java/org/jabref/logic/importer/DatabaseFileLookupTest.java index e2ed83fc2a0..155a22b7908 100644 --- a/src/test/java/org/jabref/logic/importer/DatabaseFileLookupTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/DatabaseFileLookupTest.java @@ -1,5 +1,6 @@ package org.jabref.logic.importer; +import java.io.IOException; import java.util.Collection; import org.jabref.logic.importer.fileformat.BibtexImporter; @@ -24,7 +25,7 @@ class DatabaseFileLookupTest { private BibEntry entry2; @BeforeEach - void setUp() throws Exception { + void setUp() throws IOException { ParserResult result = new BibtexImporter(mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS), new DummyFileUpdateMonitor()) .importDatabase(ImportDataTest.UNLINKED_FILES_TEST_BIB); database = result.getDatabase(); diff --git a/src/test/java/org/jabref/logic/importer/FulltextFetchersTest.java b/jablib/src/test/java/org/jabref/logic/importer/FulltextFetchersTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/FulltextFetchersTest.java rename to jablib/src/test/java/org/jabref/logic/importer/FulltextFetchersTest.java diff --git a/src/test/java/org/jabref/logic/importer/ImportDataTest.java b/jablib/src/test/java/org/jabref/logic/importer/ImportDataTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/ImportDataTest.java rename to jablib/src/test/java/org/jabref/logic/importer/ImportDataTest.java diff --git a/src/test/java/org/jabref/logic/importer/ImportFormatReaderIntegrationTest.java b/jablib/src/test/java/org/jabref/logic/importer/ImportFormatReaderIntegrationTest.java similarity index 92% rename from src/test/java/org/jabref/logic/importer/ImportFormatReaderIntegrationTest.java rename to jablib/src/test/java/org/jabref/logic/importer/ImportFormatReaderIntegrationTest.java index e9548dc9667..f6660e94c83 100644 --- a/src/test/java/org/jabref/logic/importer/ImportFormatReaderIntegrationTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/ImportFormatReaderIntegrationTest.java @@ -1,5 +1,7 @@ package org.jabref.logic.importer; +import java.io.IOException; +import java.net.URISyntaxException; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; @@ -37,7 +39,7 @@ void setUp() { @ParameterizedTest @MethodSource("importFormats") - void importUnknownFormat(String resource, String format, int count) throws Exception { + void importUnknownFormat(String resource, String format, int count) throws ImportException, URISyntaxException { Path file = Path.of(ImportFormatReaderIntegrationTest.class.getResource(resource).toURI()); ImportFormatReader.UnknownFormatImport unknownFormat = reader.importUnknownFormat(file, new DummyFileUpdateMonitor()); assertEquals(count, unknownFormat.parserResult().getDatabase().getEntryCount()); @@ -45,14 +47,14 @@ void importUnknownFormat(String resource, String format, int count) throws Excep @ParameterizedTest @MethodSource("importFormats") - void importFormatFromFile(String resource, String format, int count) throws Exception { + void importFormatFromFile(String resource, String format, int count) throws ImportException, URISyntaxException { Path file = Path.of(ImportFormatReaderIntegrationTest.class.getResource(resource).toURI()); assertEquals(count, reader.importFromFile(format, file).getDatabase().getEntries().size()); } @ParameterizedTest @MethodSource("importFormats") - void importUnknownFormatFromString(String resource, String format, int count) throws Exception { + void importUnknownFormatFromString(String resource, String format, int count) throws URISyntaxException, IOException, ImportException { Path file = Path.of(ImportFormatReaderIntegrationTest.class.getResource(resource).toURI()); String data = Files.readString(file); assertEquals(count, reader.importUnknownFormat(data).parserResult().getDatabase().getEntries().size()); diff --git a/src/test/java/org/jabref/logic/importer/ImportFormatReaderParameterlessTest.java b/jablib/src/test/java/org/jabref/logic/importer/ImportFormatReaderParameterlessTest.java similarity index 96% rename from src/test/java/org/jabref/logic/importer/ImportFormatReaderParameterlessTest.java rename to jablib/src/test/java/org/jabref/logic/importer/ImportFormatReaderParameterlessTest.java index 39f3fcc2f2e..2fb494a9af3 100644 --- a/src/test/java/org/jabref/logic/importer/ImportFormatReaderParameterlessTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/ImportFormatReaderParameterlessTest.java @@ -1,5 +1,6 @@ package org.jabref.logic.importer; +import java.net.URISyntaxException; import java.nio.file.Path; import javafx.collections.FXCollections; @@ -30,7 +31,7 @@ void setUp() { } @Test - void importUnknownFormatThrowsExceptionIfNoMatchingImporterWasFound() throws Exception { + void importUnknownFormatThrowsExceptionIfNoMatchingImporterWasFound() throws URISyntaxException { Path file = Path.of(ImportFormatReaderParameterlessTest.class.getResource("fileformat/emptyFile.xml").toURI()); assertThrows(ImportException.class, () -> reader.importUnknownFormat(file, fileMonitor)); } diff --git a/src/test/java/org/jabref/logic/importer/ImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/ImporterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/ImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/ImporterTest.java diff --git a/src/test/java/org/jabref/logic/importer/OpenDatabaseTest.java b/jablib/src/test/java/org/jabref/logic/importer/OpenDatabaseTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/OpenDatabaseTest.java rename to jablib/src/test/java/org/jabref/logic/importer/OpenDatabaseTest.java diff --git a/src/test/java/org/jabref/logic/importer/ParserResultTest.java b/jablib/src/test/java/org/jabref/logic/importer/ParserResultTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/ParserResultTest.java rename to jablib/src/test/java/org/jabref/logic/importer/ParserResultTest.java diff --git a/src/test/java/org/jabref/logic/importer/QueryParserTest.java b/jablib/src/test/java/org/jabref/logic/importer/QueryParserTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/QueryParserTest.java rename to jablib/src/test/java/org/jabref/logic/importer/QueryParserTest.java diff --git a/src/test/java/org/jabref/logic/importer/WebFetchersTest.java b/jablib/src/test/java/org/jabref/logic/importer/WebFetchersTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/WebFetchersTest.java rename to jablib/src/test/java/org/jabref/logic/importer/WebFetchersTest.java diff --git a/src/test/java/org/jabref/logic/importer/fetcher/ACMPortalFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/ACMPortalFetcherTest.java similarity index 95% rename from src/test/java/org/jabref/logic/importer/fetcher/ACMPortalFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/ACMPortalFetcherTest.java index 8a579cf17e6..7876ed5fd52 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/ACMPortalFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/ACMPortalFetcherTest.java @@ -34,7 +34,7 @@ void setUp() { } @Test - void searchByQueryFindsEntry() throws Exception { + void searchByQueryFindsEntry() throws FetcherException { BibEntry searchEntry = new BibEntry(StandardEntryType.Conference) .withField(StandardField.AUTHOR, "Olsson, Tobias and Ericsson, Morgan and Wingkvist, Anna") .withField(StandardField.YEAR, "2017") @@ -62,7 +62,7 @@ void searchByQueryFindsEntry() throws Exception { } @Test - void getURLForQuery() throws FetcherException, MalformedURLException, URISyntaxException, QueryNodeParseException { + void getURLForQuery() throws MalformedURLException, URISyntaxException, QueryNodeParseException { String testQuery = "test query url"; SyntaxParser parser = new StandardSyntaxParser(); URL url = fetcher.getURLForQuery(parser.parse(testQuery, NO_EXPLICIT_FIELD)); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/ACSTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/ACSTest.java similarity index 83% rename from src/test/java/org/jabref/logic/importer/fetcher/ACSTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/ACSTest.java index e3d230759bb..61ac47f9227 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/ACSTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/ACSTest.java @@ -1,7 +1,9 @@ package org.jabref.logic.importer.fetcher; +import java.io.IOException; import java.util.Optional; +import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.FulltextFetcher; import org.jabref.logic.util.URLUtil; import org.jabref.model.entry.BibEntry; @@ -19,7 +21,7 @@ class ACSTest { @Test @DisabledOnCIServer("CI server is unreliable") - void findByDOI() throws Exception { + void findByDOI() throws IOException, FetcherException { // DOI randomly chosen from https://pubs.acs.org/toc/acscii/0/0 BibEntry entry = new BibEntry().withField(StandardField.DOI, "10.1021/acscentsci.4c00971"); assertEquals( @@ -30,13 +32,13 @@ void findByDOI() throws Exception { @Test @DisabledOnCIServer("CI server is unreliable") - void notFoundByDOI() throws Exception { + void notFoundByDOI() throws FetcherException, IOException { BibEntry entry = new BibEntry().withField(StandardField.DOI, "10.1021/bk-2006-WWW.ch014"); assertEquals(Optional.empty(), fetcher.findFullText(entry)); } @Test - void entityWithoutDoi() throws Exception { + void entityWithoutDoi() throws FetcherException, IOException { assertEquals(Optional.empty(), fetcher.findFullText(new BibEntry())); } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/AbstractIsbnFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/AbstractIsbnFetcherTest.java similarity index 95% rename from src/test/java/org/jabref/logic/importer/fetcher/AbstractIsbnFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/AbstractIsbnFetcherTest.java index 72ec4e01f18..446bf8182b5 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/AbstractIsbnFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/AbstractIsbnFetcherTest.java @@ -19,7 +19,7 @@ public abstract class AbstractIsbnFetcherTest { public abstract void testName(); - public abstract void authorsAreCorrectlyFormatted() throws Exception; + public abstract void authorsAreCorrectlyFormatted() throws FetcherException; public abstract void searchByIdSuccessfulWithShortISBN() throws FetcherException; diff --git a/src/test/java/org/jabref/logic/importer/fetcher/ApsFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/ApsFetcherTest.java similarity index 84% rename from src/test/java/org/jabref/logic/importer/fetcher/ApsFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/ApsFetcherTest.java index 33d48b36583..2a5035eec75 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/ApsFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/ApsFetcherTest.java @@ -1,5 +1,6 @@ package org.jabref.logic.importer.fetcher; +import java.io.IOException; import java.util.Optional; import org.jabref.logic.util.URLUtil; @@ -23,25 +24,25 @@ void setUp() { } @Test - void findFullTextFromDoi() throws Exception { + void findFullTextFromDoi() throws IOException { BibEntry entry = new BibEntry().withField(StandardField.DOI, "10.1103/PhysRevLett.116.061102"); assertEquals(Optional.of(URLUtil.create("https://journals.aps.org/prl/pdf/10.1103/PhysRevLett.116.061102")), finder.findFullText(entry)); } @Test - void findFullTextFromLowercaseDoi() throws Exception { + void findFullTextFromLowercaseDoi() throws IOException { BibEntry entry = new BibEntry().withField(StandardField.DOI, "10.1103/physrevlett.124.029002"); assertEquals(Optional.of(URLUtil.create("https://journals.aps.org/prl/pdf/10.1103/PhysRevLett.124.029002")), finder.findFullText(entry)); } @Test - void notFindFullTextForUnauthorized() throws Exception { + void notFindFullTextForUnauthorized() throws IOException { BibEntry entry = new BibEntry().withField(StandardField.DOI, "10.1103/PhysRevLett.89.127401"); assertEquals(Optional.empty(), finder.findFullText(entry)); } @Test - void notFindFullTextForUnknownEntry() throws Exception { + void notFindFullTextForUnknownEntry() throws IOException { BibEntry entry = new BibEntry().withField(StandardField.DOI, "10.1016/j.aasri.2014.0559.002"); assertEquals(Optional.empty(), finder.findFullText(entry)); } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/ArXivFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/ArXivFetcherTest.java similarity index 97% rename from src/test/java/org/jabref/logic/importer/fetcher/ArXivFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/ArXivFetcherTest.java index 6552de6c279..1eadb0a0b66 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/ArXivFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/ArXivFetcherTest.java @@ -99,7 +99,7 @@ void eachSetUp() { // StandardField.JOURNALTITLE // INFO NOT APPLICABLE TO THIS ENTRY // ArXiv-issue DOI fields .withField(new UnknownField("copyright"), "arXiv.org perpetual, non-exclusive license") - .withField((InternalField.KEY_FIELD), "https://doi.org/10.48550/arxiv.1811.10364") + .withField(InternalField.KEY_FIELD, "https://doi.org/10.48550/arxiv.1811.10364") .withField(StandardField.YEAR, "2018") .withField(StandardField.KEYWORDS, "Information Retrieval (cs.IR), Artificial Intelligence (cs.AI), Digital Libraries (cs.DL), Machine Learning (cs.LG), FOS: Computer and information sciences") .withField(StandardField.AUTHOR, "Beel, Joeran and Collins, Andrew and Aizawa, Akiko") @@ -298,19 +298,19 @@ void findFullTextTrustLevel() { } @Test - void searchEntryByPartOfTitle() throws Exception { + void searchEntryByPartOfTitle() throws FetcherException { assertEquals(List.of(mainResultPaper), fetcher.performSearch("title:\"the architecture of mr. dLib's\"")); } @Test - void searchEntryByPartOfTitleWithAcuteAccent() throws Exception { + void searchEntryByPartOfTitleWithAcuteAccent() throws FetcherException { assertEquals(List.of(sliceTheoremPaper), fetcher.performSearch("title:\"slice theorem for Fréchet\"")); } @Test - void searchEntryByOldId() throws Exception { + void searchEntryByOldId() throws FetcherException { BibEntry expected = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "{H1 Collaboration}") .withField(StandardField.TITLE, "Multi-Electron Production at High Transverse Momenta in ep Collisions at HERA") @@ -337,74 +337,74 @@ void searchEntryByOldId() throws Exception { } @Test - void searchEntryByIdWith4DigitsAndVersion() throws Exception { + void searchEntryByIdWith4DigitsAndVersion() throws FetcherException { assertEquals(Optional.of(sliceTheoremPaper), fetcher.performSearchById("1405.2249v1")); } @Test - void searchEntryByIdWith4Digits() throws Exception { + void searchEntryByIdWith4Digits() throws FetcherException { assertEquals(Optional.of(sliceTheoremPaper), fetcher.performSearchById("1405.2249")); } @Test - void searchEntryByIdWith4DigitsAndPrefix() throws Exception { + void searchEntryByIdWith4DigitsAndPrefix() throws FetcherException { assertEquals(Optional.of(sliceTheoremPaper), fetcher.performSearchById("arXiv:1405.2249")); } @Test - void searchEntryByIdWith4DigitsAndPrefixAndNotTrimmed() throws Exception { + void searchEntryByIdWith4DigitsAndPrefixAndNotTrimmed() throws FetcherException { assertEquals(Optional.of(sliceTheoremPaper), fetcher.performSearchById("arXiv : 1405. 2249")); } @Test - void searchEntryByIdWith5Digits() throws Exception { + void searchEntryByIdWith5Digits() throws FetcherException { assertEquals(Optional.of( "An Optimal Convergence Theorem for Mean Curvature Flow of Arbitrary Codimension in Hyperbolic Spaces"), fetcher.performSearchById("1503.06747").flatMap(entry -> entry.getField(StandardField.TITLE))); } @Test - void searchWithMalformedIdReturnsEmpty() throws Exception { + void searchWithMalformedIdReturnsEmpty() throws FetcherException { assertEquals(Optional.empty(), fetcher.performSearchById("123412345")); } @Test - void searchIdentifierForSlicePaper() throws Exception { + void searchIdentifierForSlicePaper() throws FetcherException { sliceTheoremPaper.clearField(StandardField.EPRINT); assertEquals(ArXivIdentifier.parse("1405.2249"), fetcher.findIdentifier(sliceTheoremPaper)); } @Test - void searchEmptyId() throws Exception { + void searchEmptyId() throws FetcherException { assertEquals(Optional.empty(), fetcher.performSearchById("")); } @Test - void searchWithHttpUrl() throws Exception { + void searchWithHttpUrl() throws FetcherException { assertEquals(Optional.of(sliceTheoremPaper), fetcher.performSearchById("http://arxiv.org/abs/1405.2249")); } @Test - void searchWithHttpsUrl() throws Exception { + void searchWithHttpsUrl() throws FetcherException { assertEquals(Optional.of(sliceTheoremPaper), fetcher.performSearchById("https://arxiv.org/abs/1405.2249")); } @Test - void searchWithHttpsUrlNotTrimmed() throws Exception { + void searchWithHttpsUrlNotTrimmed() throws FetcherException { assertEquals(Optional.of(sliceTheoremPaper), fetcher.performSearchById("https : // arxiv . org / abs / 1405 . 2249 ")); } @Disabled("Is not supported by the current API") @Test @Override - public void supportsYearSearch() throws Exception { + public void supportsYearSearch() { } @Disabled("Is not supported by the current API") @Test @Override - public void supportsYearRangeSearch() throws Exception { + public void supportsYearRangeSearch() { } /** @@ -412,7 +412,7 @@ public void supportsYearRangeSearch() throws Exception { * Only documents that contain exactly this sequence are returned. */ @Test - void supportsPhraseSearch() throws Exception { + void supportsPhraseSearch() throws FetcherException { List resultWithPhraseSearch = fetcher.performSearch("title:\"Taxonomy of Distributed\""); List resultWithOutPhraseSearch = fetcher.performSearch("title:Taxonomy AND title:of AND title:Distributed"); // Phrase search result has to be subset of the default search result @@ -424,7 +424,7 @@ void supportsPhraseSearch() throws Exception { * Only documents that contain exactly this sequence are returned. */ @Test - void supportsPhraseSearchAndMatchesExact() throws Exception { + void supportsPhraseSearchAndMatchesExact() throws FetcherException { BibEntry expected = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Rafrastara, Fauzi Adi and Deyu, Qi") .withField(StandardField.TITLE, "A Survey and Taxonomy of Distributed Data Mining Research Studies: A Systematic Literature Review") @@ -448,7 +448,7 @@ void supportsPhraseSearchAndMatchesExact() throws Exception { } @Test - void supportsBooleanANDSearch() throws Exception { + void supportsBooleanANDSearch() throws FetcherException { // Example of a robust result, with information from both ArXiv-assigned and user-assigned DOIs BibEntry expected = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Büscher, Tobias and Diez, Angel L. and Gompper, Gerhard and Elgeti, Jens") @@ -577,7 +577,7 @@ void retrievePartialResultWhenCannotGetInformationFromArXivAssignedDOI() throws } @Test - void abstractIsCleanedUp() throws Exception { + void abstractIsCleanedUp() throws FetcherException { Optional entry = fetcher.performSearchById("2407.02238"); String escaped = "{One of the primary areas of interest in High Performance Computing is the improvement of performance of parallel workloads. Nowadays, compilable source code-based optimization tasks that employ deep learning often exploit LLVM Intermediate Representations (IRs) for extracting features from source code. Most such works target specific tasks, or are designed with a pre-defined set of heuristics. So far, pre-trained models are rare in this domain, but the possibilities have been widely discussed. Especially approaches mimicking large-language models (LLMs) have been proposed. But these have prohibitively large training costs. In this paper, we propose MIREncoder, a M}ulti-modal IR-based Auto-Encoder that can be pre-trained to generate a learned embedding space to be used for downstream tasks by machine learning-based approaches. A multi-modal approach enables us to better extract features from compilable programs. It allows us to better model code syntax, semantics and structure. For code-based performance optimizations, these features are very important while making optimization decisions. A pre-trained model/embedding implicitly enables the usage of transfer learning, and helps move away from task-specific trained models. Additionally, a pre-trained model used for downstream performance optimization should itself have reduced overhead, and be easily usable. These considerations have led us to propose a modeling approach that i) understands code semantics and structure, ii) enables use of transfer learning, and iii) is small and simple enough to be easily re-purposed or reused even with low resource availability. Our evaluations will show that our proposed approach can outperform the state of the art while reducing overhead."; assertEquals(Optional.of(escaped), entry.get().getField(StandardField.ABSTRACT)); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/AstrophysicsDataSystemTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/AstrophysicsDataSystemTest.java similarity index 95% rename from src/test/java/org/jabref/logic/importer/fetcher/AstrophysicsDataSystemTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/AstrophysicsDataSystemTest.java index b18f514b68c..8d71a94ae08 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/AstrophysicsDataSystemTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/AstrophysicsDataSystemTest.java @@ -5,6 +5,7 @@ import javafx.collections.FXCollections; +import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.logic.importer.ImporterPreferences; import org.jabref.logic.importer.PagedSearchBasedFetcher; @@ -65,7 +66,7 @@ public class AstrophysicsDataSystemTest implements PagedSearchFetcherTest { .withField(StandardField.ABSTRACT, "The Clementine mission to the Moon returned global imaging data collected by the ultraviolet visible (UVVIS) camera. This data set is now in a final state of calibration, and a five-band multispectral digital image model (DIM) of the lunar surface will soon be available to the science community. We have used observations of the lunar sample-return sites and stations extracted from the final DIM in conjunction with compositional information for returned lunar soils to revise our previously published algorithms for the spectral determination of the FeO and TiO$_{2}$ content of the lunar surface. The algorithms successfully normalize the effects of space weathering so that composition may be determined without regard to a surface's state of maturity. These algorithms permit anyone with access to the standard archived DIM to construct high spatial resolution maps of FeO and TiO$_{2}$ abundance. Such maps will be of great utility in a variety of lunar geologic studies."); @BeforeEach - void setUp() throws Exception { + void setUp() { ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); ImporterPreferences importerPreferences = mock(ImporterPreferences.class); when(importerPreferences.getApiKeys()).thenReturn(FXCollections.emptyObservableSet()); @@ -138,14 +139,14 @@ void getName() { } @Test - void searchByQueryFindsEntry() throws Exception { + void searchByQueryFindsEntry() throws FetcherException { List fetchedEntries = fetcher.performSearch("Diez slice theorem Lie"); assertFalse(fetchedEntries.isEmpty()); assertTrue(fetchedEntries.contains(diezSliceTheoremEntry)); } @Test - void searchByEntryFindsEntry() throws Exception { + void searchByEntryFindsEntry() throws FetcherException { BibEntry searchEntry = new BibEntry() .withField(StandardField.TITLE, "slice theorem") .withField(StandardField.AUTHOR, "Diez"); @@ -158,56 +159,56 @@ void searchByEntryFindsEntry() throws Exception { } @Test - void performSearchByFamaeyMcGaughEntry() throws Exception { + void performSearchByFamaeyMcGaughEntry() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById("10.12942/lrr-2012-10"); fetchedEntry.ifPresent(entry -> entry.clearField(StandardField.ABSTRACT)); // Remove abstract due to copyright assertEquals(Optional.of(famaeyMcGaughEntry), fetchedEntry); } @Test - void performSearchByIdEmptyDOI() throws Exception { + void performSearchByIdEmptyDOI() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById(""); assertEquals(Optional.empty(), fetchedEntry); } @Test - void performSearchByIdInvalidDoi() throws Exception { + void performSearchByIdInvalidDoi() throws FetcherException { assertEquals(Optional.empty(), fetcher.performSearchById("this.doi.will.fail")); } @Test - void performSearchBySunWelchEntry() throws Exception { + void performSearchBySunWelchEntry() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById("10.1038/nmat3160"); fetchedEntry.ifPresent(entry -> entry.clearField(StandardField.ABSTRACT)); // Remove abstract due to copyright assertEquals(Optional.of(sunWelchEntry), fetchedEntry); } @Test - void performSearchByXiongSunEntry() throws Exception { + void performSearchByXiongSunEntry() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById("10.1109/TGRS.2006.890567"); assertEquals(Optional.of(xiongSunEntry), fetchedEntry); } @Test - void performSearchByIngersollPollardEntry() throws Exception { + void performSearchByIngersollPollardEntry() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById("10.1016/0019-1035(82)90169-5"); assertEquals(Optional.of(ingersollPollardEntry), fetchedEntry); } @Test - void performSearchByLuceyPaulEntry() throws Exception { + void performSearchByLuceyPaulEntry() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById("2000JGR...10520297L"); assertEquals(Optional.of(luceyPaulEntry), fetchedEntry); } @Test - void performSearchByQueryPaged_searchLimitsSize() throws Exception { + void performSearchByQueryPaged_searchLimitsSize() throws FetcherException { Page page = fetcher.performSearchPaged("author:\"A\"", 0); assertEquals(fetcher.getPageSize(), page.getSize(), "fetcher return wrong page size"); } @Test - void performSearchByQueryPaged_invalidAuthorsReturnEmptyPages() throws Exception { + void performSearchByQueryPaged_invalidAuthorsReturnEmptyPages() throws FetcherException { Page page = fetcher.performSearchPaged("author:\"ThisAuthorWillNotBeFound\"", 0); Page page5 = fetcher.performSearchPaged("author:\"ThisAuthorWillNotBeFound\"", 5); assertEquals(0, page.getSize(), "fetcher doesnt return empty pages for invalid author"); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/BiodiversityLibraryTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/BiodiversityLibraryTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/fetcher/BiodiversityLibraryTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/BiodiversityLibraryTest.java diff --git a/src/test/java/org/jabref/logic/importer/fetcher/BvbFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/BvbFetcherTest.java similarity index 90% rename from src/test/java/org/jabref/logic/importer/fetcher/BvbFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/BvbFetcherTest.java index e1d08456fd4..0940e1311a1 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/BvbFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/BvbFetcherTest.java @@ -1,7 +1,8 @@ package org.jabref.logic.importer.fetcher; +import java.net.MalformedURLException; +import java.net.URISyntaxException; import java.net.URL; -import java.util.Collections; import java.util.List; import org.jabref.logic.importer.FetcherException; @@ -12,6 +13,7 @@ import org.jabref.model.entry.types.StandardEntryType; import org.jabref.testutils.category.FetcherTest; +import org.apache.lucene.queryparser.flexible.core.QueryNodeParseException; import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; import org.junit.jupiter.api.Test; @@ -50,7 +52,7 @@ class BvbFetcherTest { .withField(StandardField.PUBLISHER, "{Addison-Wesley}"); @Test - void performTest() throws Exception { + void performTest() throws FetcherException { String searchquery = "effective java author:bloch"; List result = fetcher.performSearch(searchquery); assertFalse(result.isEmpty()); @@ -62,7 +64,7 @@ void performTest() throws Exception { } @Test - void simpleSearchQueryURLCorrect() throws Exception { + void simpleSearchQueryURLCorrect() throws MalformedURLException, URISyntaxException, QueryNodeParseException { String query = "java jdk"; QueryNode luceneQuery = new StandardSyntaxParser().parse(query, NO_EXPLICIT_FIELD); URL url = fetcher.getURLForQuery(luceneQuery); @@ -70,7 +72,7 @@ void simpleSearchQueryURLCorrect() throws Exception { } @Test - void complexSearchQueryURLCorrect() throws Exception { + void complexSearchQueryURLCorrect() throws QueryNodeParseException, MalformedURLException, URISyntaxException { String query = "title:jdk"; QueryNode luceneQuery = new StandardSyntaxParser().parse(query, NO_EXPLICIT_FIELD); URL url = fetcher.getURLForQuery(luceneQuery); @@ -86,6 +88,6 @@ void performSearchMatchingMultipleEntries() throws FetcherException { @Test void performSearchEmpty() throws FetcherException { List searchResult = fetcher.performSearch(""); - assertEquals(Collections.emptyList(), searchResult); + assertEquals(List.of(), searchResult); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/CiteSeerTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/CiteSeerTest.java similarity index 90% rename from src/test/java/org/jabref/logic/importer/fetcher/CiteSeerTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/CiteSeerTest.java index 22b929ab63e..3e18df3bdc7 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/CiteSeerTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/CiteSeerTest.java @@ -2,7 +2,6 @@ import java.io.IOException; import java.net.URL; -import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Optional; @@ -30,12 +29,12 @@ class CiteSeerTest { private CiteSeer fetcher = new CiteSeer(); @BeforeAll - static void ensureCiteSeerIsAvailable() throws Exception { + static void ensureCiteSeerIsAvailable() throws FetcherException { assumeFalse(List.of().equals(new CiteSeer().performSearch("title:\"Rigorous Derivation from Landau-de Gennes Theory to Ericksen-leslie Theory\" AND pageSize:1"))); } @Test - void searchByQueryFindsEntryRigorousDerivation() throws Exception { + void searchByQueryFindsEntryRigorousDerivation() throws FetcherException { String title = "RIGOROUS DERIVATION FROM LANDAU-DE GENNES THEORY TO ERICKSEN-LESLIE THEORY"; BibEntry expected = new BibEntry(StandardEntryType.Misc) .withField(StandardField.DOI, "68b3fde1aa6354a34061f8811e2050e1b512af26") @@ -46,11 +45,11 @@ void searchByQueryFindsEntryRigorousDerivation() throws Exception { .withField(StandardField.URL, "http://arxiv.org/pdf/1307.0986.pdf"); List fetchedEntries = fetcher.performSearch("title:\"Rigorous Derivation from Landau-de Gennes Theory to Ericksen-leslie Theory\" AND pageSize:1"); - assertEquals(Collections.singletonList(expected), fetchedEntries); + assertEquals(List.of(expected), fetchedEntries); } @Test - void searchByQueryFindsEntryCopingTheoryAndResearch() throws Exception { + void searchByQueryFindsEntryCopingTheoryAndResearch() throws FetcherException { BibEntry expected = new BibEntry(StandardEntryType.Misc) .withField(StandardField.DOI, "c16e0888b17cb2c689e5dfa4e2be4fdffb23869e") .withField(StandardField.AUTHOR, "Lazarus, Richard S.") @@ -61,7 +60,7 @@ void searchByQueryFindsEntryCopingTheoryAndResearch() throws Exception { .withField(StandardField.URL, "http://intl.psychosomaticmedicine.org/content/55/3/234.full.pdf"); List fetchedEntries = fetcher.performSearch("title:\"Coping Theory and Research: Past Present and Future\" AND pageSize:1"); - assertEquals(Collections.singletonList(expected), fetchedEntries); + assertEquals(List.of(expected), fetchedEntries); } /* @@ -89,8 +88,8 @@ void searchWithSortingByYearAndYearRange() throws FetcherException { while (fetchedEntriesIter.hasNext()) { BibEntry laterEntry = fetchedEntriesIter.next(); if (recentEntry.hasField(StandardField.YEAR) && laterEntry.hasField(StandardField.YEAR)) { - Integer recentYear = Integer.parseInt(recentEntry.getField(StandardField.YEAR).orElse("0")); - Integer laterYear = Integer.parseInt(laterEntry.getField(StandardField.YEAR).orElse("0")); + int recentYear = Integer.parseInt(recentEntry.getField(StandardField.YEAR).orElse("0")); + int laterYear = Integer.parseInt(laterEntry.getField(StandardField.YEAR).orElse("0")); assertFalse(recentYear < laterYear); } recentEntry = laterEntry; diff --git a/src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesFetcherTest.java similarity index 97% rename from src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesFetcherTest.java index 39359444fae..37e80316379 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesFetcherTest.java @@ -3,7 +3,6 @@ import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URL; -import java.util.Collections; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -46,7 +45,7 @@ void getNameReturnsCorrectName() { } @Test - void getUrlForQueryReturnsCorrectUrl() throws MalformedURLException, URISyntaxException, FetcherException, QueryNodeParseException { + void getUrlForQueryReturnsCorrectUrl() throws MalformedURLException, URISyntaxException, QueryNodeParseException { String query = "java jdk"; URL url = fetcher.getURLForQuery(new StandardSyntaxParser().parse(query, AbstractQueryTransformer.NO_EXPLICIT_FIELD)); assertEquals("http://liinwww.ira.uka.de/bibliography/rss?query=java+jdk&sort=score", url.toString()); @@ -109,6 +108,6 @@ void performSearchReturnsMatchingMultipleEntries() throws FetcherException { @Test void performSearchReturnsEmptyListForEmptySearch() throws FetcherException { List searchResult = fetcher.performSearch(""); - assertEquals(Collections.emptyList(), searchResult); + assertEquals(List.of(), searchResult); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesParserTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesParserTest.java similarity index 83% rename from src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesParserTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesParserTest.java index af33cdfca8d..9614fb6ea8d 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesParserTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/CollectionOfComputerScienceBibliographiesParserTest.java @@ -1,13 +1,14 @@ package org.jabref.logic.importer.fetcher; +import java.io.IOException; import java.io.InputStream; import java.util.Arrays; -import java.util.Collections; import java.util.List; -import org.jabref.logic.bibtex.BibEntryAssert; import org.jabref.logic.importer.ImportFormatPreferences; +import org.jabref.logic.importer.ParseException; import org.jabref.model.entry.BibEntry; +import org.jabref.support.BibEntryAssert; import org.jabref.testutils.category.FetcherTest; import org.junit.jupiter.api.Disabled; @@ -24,22 +25,22 @@ class CollectionOfComputerScienceBibliographiesParserTest { @Test - void parseEntriesReturnsEmptyListIfXmlHasNoResults() throws Exception { - parseXmlAndCheckResults("collection_of_computer_science_bibliographies_empty_result.xml", Collections.emptyList()); + void parseEntriesReturnsEmptyListIfXmlHasNoResults() throws ParseException, IOException { + parseXmlAndCheckResults("collection_of_computer_science_bibliographies_empty_result.xml", List.of()); } @Disabled("Parse/fetcher remote side does not return anything valid for the link") @Test - void parseEntriesReturnsOneBibEntryInListIfXmlHasSingleResult() throws Exception { - parseXmlAndCheckResults("collection_of_computer_science_bibliographies_single_result.xml", Collections.singletonList("collection_of_computer_science_bibliographies_single_result.bib")); + void parseEntriesReturnsOneBibEntryInListIfXmlHasSingleResult() throws ParseException, IOException { + parseXmlAndCheckResults("collection_of_computer_science_bibliographies_single_result.xml", List.of("collection_of_computer_science_bibliographies_single_result.bib")); } @Test - void parseEntriesReturnsMultipleBibEntriesInListIfXmlHasMultipleResults() throws Exception { + void parseEntriesReturnsMultipleBibEntriesInListIfXmlHasMultipleResults() throws ParseException, IOException { parseXmlAndCheckResults("collection_of_computer_science_bibliographies_multiple_results.xml", Arrays.asList("collection_of_computer_science_bibliographies_multiple_results_first_result.bib", "collection_of_computer_science_bibliographies_multiple_results_second_result.bib")); } - private void parseXmlAndCheckResults(String xmlName, List resourceNames) throws Exception { + private void parseXmlAndCheckResults(String xmlName, List resourceNames) throws ParseException, IOException { ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); when(importFormatPreferences.bibEntryPreferences().getKeywordSeparator()).thenReturn(','); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/CompositeIdFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/CompositeIdFetcherTest.java similarity index 99% rename from src/test/java/org/jabref/logic/importer/fetcher/CompositeIdFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/CompositeIdFetcherTest.java index 02eb4c2f14c..660cea31fbe 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/CompositeIdFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/CompositeIdFetcherTest.java @@ -109,7 +109,7 @@ public static Stream performSearchByIdReturnsCorrectEntryForIdentifie } @BeforeEach - void setUp() throws Exception { + void setUp() { ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); // Needed for ArXiv Fetcher keyword processing when(importFormatPreferences.bibEntryPreferences().getKeywordSeparator()).thenReturn(','); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcherTest.java similarity index 96% rename from src/test/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcherTest.java index cab7679bf56..b9b8b4c1190 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/CompositeSearchBasedFetcherTest.java @@ -1,7 +1,6 @@ package org.jabref.logic.importer.fetcher; import java.util.ArrayList; -import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -49,29 +48,29 @@ void createCompositeFetcherWithNullSet() { } @Test - void performSearchWithoutFetchers() throws Exception { + void performSearchWithoutFetchers() throws FetcherException { Set empty = new HashSet<>(); CompositeSearchBasedFetcher fetcher = new CompositeSearchBasedFetcher(empty, importerPreferences, Integer.MAX_VALUE); List result = fetcher.performSearch("quantum"); - assertEquals(result, Collections.emptyList()); + assertEquals(result, List.of()); } @ParameterizedTest(name = "Perform Search on empty query.") @MethodSource("performSearchParameters") - void performSearchOnEmptyQuery(Set fetchers) throws Exception { + void performSearchOnEmptyQuery(Set fetchers) throws FetcherException { CompositeSearchBasedFetcher compositeFetcher = new CompositeSearchBasedFetcher(fetchers, importerPreferences, Integer.MAX_VALUE); List queryResult = compositeFetcher.performSearch(""); - assertEquals(queryResult, Collections.emptyList()); + assertEquals(queryResult, List.of()); } @ParameterizedTest(name = "Perform search on query \"quantum\". Using the CompositeFetcher of the following " + "Fetchers: {arguments}") @MethodSource("performSearchParameters") - void performSearchOnNonEmptyQuery(Set fetchers) throws Exception { + void performSearchOnNonEmptyQuery(Set fetchers) throws FetcherException { CompositeSearchBasedFetcher compositeFetcher = new CompositeSearchBasedFetcher(fetchers, importerPreferences, Integer.MAX_VALUE); FieldPreferences fieldPreferences = mock(FieldPreferences.class); when(fieldPreferences.getNonWrappableFields()).thenReturn(FXCollections.observableArrayList()); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/CrossRefTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/CrossRefTest.java similarity index 86% rename from src/test/java/org/jabref/logic/importer/fetcher/CrossRefTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/CrossRefTest.java index 2c9b61014ec..eaf45193c39 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/CrossRefTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/CrossRefTest.java @@ -1,6 +1,6 @@ package org.jabref.logic.importer.fetcher; -import java.util.Collections; +import java.util.List; import java.util.Locale; import java.util.Optional; @@ -24,7 +24,7 @@ class CrossRefTest { private BibEntry barrosEntry; @BeforeEach - void setUp() throws Exception { + void setUp() { fetcher = new CrossRef(); barrosEntry = new BibEntry(); @@ -38,7 +38,7 @@ void setUp() throws Exception { } @Test - void findExactData() throws Exception { + void findExactData() throws FetcherException { BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "Service Interaction Patterns"); entry.setField(StandardField.AUTHOR, "Barros, Alistair and Dumas, Marlon and Arthur H.M. ter Hofstede"); @@ -47,7 +47,7 @@ void findExactData() throws Exception { } @Test - void findMissingAuthor() throws Exception { + void findMissingAuthor() throws FetcherException { BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "Towards Application Portability in Platform as a Service"); entry.setField(StandardField.AUTHOR, "Stefan Kolb"); @@ -55,14 +55,14 @@ void findMissingAuthor() throws Exception { } @Test - void findTitleOnly() throws Exception { + void findTitleOnly() throws FetcherException { BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "Towards Application Portability in Platform as a Service"); assertEquals("10.1109/sose.2014.26", fetcher.findIdentifier(entry).get().asString().toLowerCase(Locale.ENGLISH)); } @Test - void notFindIncompleteTitle() throws Exception { + void notFindIncompleteTitle() throws FetcherException { BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "Towards Application Portability"); entry.setField(StandardField.AUTHOR, "Stefan Kolb and Guido Wirtz"); @@ -70,7 +70,7 @@ void notFindIncompleteTitle() throws Exception { } @Test - void acceptTitleUnderThreshold() throws Exception { + void acceptTitleUnderThreshold() throws FetcherException { BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "Towards Application Portability in Platform as a Service----"); entry.setField(StandardField.AUTHOR, "Stefan Kolb and Guido Wirtz"); @@ -78,7 +78,7 @@ void acceptTitleUnderThreshold() throws Exception { } @Test - void notAcceptTitleOverThreshold() throws Exception { + void notAcceptTitleOverThreshold() throws FetcherException { BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "Towards Application Portability in Platform as a Service-----"); entry.setField(StandardField.AUTHOR, "Stefan Kolb and Guido Wirtz"); @@ -86,7 +86,7 @@ void notAcceptTitleOverThreshold() throws Exception { } @Test - void findWrongAuthor() throws Exception { + void findWrongAuthor() throws FetcherException { BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "Towards Application Portability in Platform as a Service"); entry.setField(StandardField.AUTHOR, "Stefan Kolb and Simon Harrer"); @@ -94,7 +94,7 @@ void findWrongAuthor() throws Exception { } @Test - void findWithSubtitle() throws Exception { + void findWithSubtitle() throws FetcherException { BibEntry entry = new BibEntry(); // CrossRef entry will only include { "title": "A break in the clouds", "subtitle": "towards a cloud definition" } entry.setField(StandardField.TITLE, "A break in the clouds: towards a cloud definition"); @@ -102,17 +102,17 @@ void findWithSubtitle() throws Exception { } @Test - void findByDOI() throws Exception { + void findByDOI() throws FetcherException { assertEquals(Optional.of(barrosEntry), fetcher.performSearchById("10.1007/11538394_20")); } @Test - void findByAuthors() throws Exception { + void findByAuthors() throws FetcherException { assertEquals(Optional.of(barrosEntry), fetcher.performSearch("\"Barros, Alistair\" AND \"Dumas, Marlon\" AND \"Arthur H.M. ter Hofstede\"").stream().findFirst()); } @Test - void findByEntry() throws Exception { + void findByEntry() throws FetcherException { BibEntry entry = new BibEntry(); entry.setField(StandardField.TITLE, "Service Interaction Patterns"); entry.setField(StandardField.AUTHOR, "Barros, Alistair and Dumas, Marlon and Arthur H.M. ter Hofstede"); @@ -121,7 +121,7 @@ void findByEntry() throws Exception { } @Test - void performSearchByIdFindsPaperWithoutTitle() throws Exception { + void performSearchByIdFindsPaperWithoutTitle() throws FetcherException { BibEntry entry = new BibEntry(StandardEntryType.Article); entry.setField(StandardField.AUTHOR, "Dominik Wujastyk"); entry.setField(StandardField.DOI, "10.1023/a:1003473214310"); @@ -137,20 +137,20 @@ void performSearchByIdFindsPaperWithoutTitle() throws Exception { } @Test - void performSearchByEmptyId() throws Exception { + void performSearchByEmptyId() throws FetcherException { assertEquals(Optional.empty(), fetcher.performSearchById("")); } @Test - void performSearchByEmptyQuery() throws Exception { - assertEquals(Collections.emptyList(), fetcher.performSearch("")); + void performSearchByEmptyQuery() throws FetcherException { + assertEquals(List.of(), fetcher.performSearch("")); } /** * reveal fetching error on crossref performSearchById */ @Test - void performSearchValidReturnNothingDOI() throws FetcherException { + void performSearchValidReturnNothingDOI() { assertThrows(FetcherClientException.class, () -> fetcher.performSearchById("10.1392/BC1.0")); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/DBLPFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/DBLPFetcherTest.java similarity index 91% rename from src/test/java/org/jabref/logic/importer/fetcher/DBLPFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/DBLPFetcherTest.java index 6c17f38ae7e..fb7cad7d931 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/DBLPFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/DBLPFetcherTest.java @@ -1,6 +1,5 @@ package org.jabref.logic.importer.fetcher; -import java.util.Collections; import java.util.List; import org.jabref.logic.importer.FetcherException; @@ -54,7 +53,7 @@ void findSingleEntry() throws FetcherException { String query = "Process Engine Benchmarking with Betsy in the Context of \"{ISO/IEC}\" Quality Standards"; List result = dblpFetcher.performSearch(query); - assertEquals(Collections.singletonList(entry), result); + assertEquals(List.of(entry), result); } @Test @@ -62,11 +61,11 @@ void findSingleEntryUsingComplexOperators() throws FetcherException { String query = "geiger harrer betsy$ softw.trends"; // -wirtz Negative operators do no longer work, see issue https://github.com/JabRef/jabref/issues/2890 List result = dblpFetcher.performSearch(query); - assertEquals(Collections.singletonList(entry), result); + assertEquals(List.of(entry), result); } @Test - void findNothing() throws Exception { - assertEquals(Collections.emptyList(), dblpFetcher.performSearch("")); + void findNothing() throws FetcherException { + assertEquals(List.of(), dblpFetcher.performSearch("")); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/DOABFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/DOABFetcherTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/fetcher/DOABFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/DOABFetcherTest.java diff --git a/src/test/java/org/jabref/logic/importer/fetcher/DOAJFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/DOAJFetcherTest.java similarity index 92% rename from src/test/java/org/jabref/logic/importer/fetcher/DOAJFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/DOAJFetcherTest.java index 5ab645ee468..0c92eb57e9d 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/DOAJFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/DOAJFetcherTest.java @@ -1,9 +1,10 @@ package org.jabref.logic.importer.fetcher; -import java.util.Collections; +import java.net.URISyntaxException; import java.util.List; import java.util.Optional; +import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; @@ -33,7 +34,7 @@ void setUp() { } @Test - void searchByQueryFindsEntry() throws Exception { + void searchByQueryFindsEntry() throws FetcherException { BibEntry expected = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Nísea de A. Corrêa and Maria P. Foss and Paula R. B. Diniz") .withField(StandardField.DOI, "10.11606/issn.2176-7262.v49i6p533-548") @@ -50,7 +51,7 @@ void searchByQueryFindsEntry() throws Exception { .withField(StandardField.ABSTRACT, "Objective: Based on Magnetic Resonance Imaging (MRI), verify the structural and functional changes related to memory deficits in non-demented elderly individuals in comparison with young adults. Methodology: Proceeded a systematic review based on Preferred Reporting Items for Systematic Review and Meta-Analysis (PRISMA) fluxogram. The search was done on PubMed, Scopus and EBSCO databases using JabRef 2.10, and Web of Science. It was included in the analysis quasi-experimental, cross-sectional, cohort and case-control studies published between 2005 and 2014 in national and international indexed periodicals that had as sample: non-demented individuals older than 60 years old, who were submitted to MRI investigation of their for any brain structural and functional changes associated with memory deficits, identified in neuropsychologicals tests. Results: About the imaging technique, we reviewed studies that used structural MRIs (two articles), functional MRIs (six articles), both techniques (four articles). In the 12 studies, 38 distinct neuropsychological tests were used, an average of five different tests for each study (variation of 1-12). The most used tests were WAIS Digit Span Backwards (seven articles), Trail Making Test A and B (four articles) and Wechsler Memory Scale (four articles). Conclusion: The review showed that in normal aging the parahippocampal white substance, the hippocampus volume and entorhinal cortex slightly shrink, causing verbal memory reduction, possibly due to fiber demyelination; reduced connections between temporal and frontal lobes contributing to an impairement of episodic, working memory and verbal fluency; reduction suppression of irrelevant information, affecting the register of information; changes on frontal and parietal areas, compromising recognition memory; modifications in activity and connectivity of the default mode network; reorganization of cognitive functions and also a slower response, probably due to reduction of pre-frontal cortex activation"); List fetchedEntries = fetcher.performSearch("JabRef MRI"); - assertEquals(Collections.singletonList(expected), fetchedEntries); + assertEquals(List.of(expected), fetchedEntries); } @Test @@ -68,33 +69,33 @@ void bibJSONConverter() { } @Test - void searchByEmptyQuery() throws Exception { - assertEquals(Collections.emptyList(), fetcher.performSearch("")); + void searchByEmptyQuery() throws FetcherException { + assertEquals(List.of(), fetcher.performSearch("")); } @Test - void appendSingleWord() throws Exception { + void appendSingleWord() throws URISyntaxException { URIBuilder builder = new URIBuilder("http://example.com/test"); DOAJFetcher.addPath(builder, "/example"); assertEquals("http://example.com/test/example", builder.build().toASCIIString()); } @Test - void appendSingleWordWithSlash() throws Exception { + void appendSingleWordWithSlash() throws URISyntaxException { URIBuilder builder = new URIBuilder("http://example.com/test"); DOAJFetcher.addPath(builder, "/example"); assertEquals("http://example.com/test/example", builder.build().toASCIIString()); } @Test - void appendSlash() throws Exception { + void appendSlash() throws URISyntaxException { URIBuilder builder = new URIBuilder("http://example.com/test"); DOAJFetcher.addPath(builder, "/"); assertEquals("http://example.com/test", builder.build().toASCIIString()); } @Test - void appendTwoWords() throws Exception { + void appendTwoWords() throws URISyntaxException { URIBuilder builder = new URIBuilder("http://example.com/test"); DOAJFetcher.addPath(builder, "example two"); assertEquals("http://example.com/test/example%20two", builder.build().toASCIIString()); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/DiVATest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/DiVATest.java similarity index 94% rename from src/test/java/org/jabref/logic/importer/fetcher/DiVATest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/DiVATest.java index 165a7bacb3f..c67f70f5dc0 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/DiVATest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/DiVATest.java @@ -2,6 +2,7 @@ import java.util.Optional; +import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; @@ -33,7 +34,7 @@ void getName() { } @Test - void performSearchById() throws Exception { + void performSearchById() throws FetcherException { BibEntry entry = new BibEntry(); entry.setType(StandardEntryType.Article); entry.setCitationKey("Gustafsson260746"); @@ -63,7 +64,7 @@ void invalidIdentifier() { } @Test - void emptyId() throws Exception { + void emptyId() throws FetcherException { assertEquals(Optional.empty(), fetcher.performSearchById("")); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/DoiFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/DoiFetcherTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/fetcher/DoiFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/DoiFetcherTest.java diff --git a/src/test/java/org/jabref/logic/importer/fetcher/DoiResolutionTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/DoiResolutionTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/fetcher/DoiResolutionTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/DoiResolutionTest.java diff --git a/src/test/java/org/jabref/logic/importer/fetcher/FulltextFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/FulltextFetcherTest.java similarity index 91% rename from src/test/java/org/jabref/logic/importer/fetcher/FulltextFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/FulltextFetcherTest.java index 7ac8d4e0216..6acafb61181 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/FulltextFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/FulltextFetcherTest.java @@ -1,8 +1,10 @@ package org.jabref.logic.importer.fetcher; +import java.io.IOException; import java.util.Optional; import java.util.Set; +import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.FulltextFetcher; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.logic.importer.ImporterPreferences; @@ -31,7 +33,7 @@ void findFullTextRejectsNullParameter(FulltextFetcher fetcher) { @ParameterizedTest @MethodSource("fetcherProvider") - void findFullTextWithEmptyEntryFindsNothing(FulltextFetcher fetcher) throws Exception { + void findFullTextWithEmptyEntryFindsNothing(FulltextFetcher fetcher) throws FetcherException, IOException { assertEquals(Optional.empty(), fetcher.findFullText(new BibEntry())); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/GoogleScholarTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/GoogleScholarTest.java similarity index 95% rename from src/test/java/org/jabref/logic/importer/fetcher/GoogleScholarTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/GoogleScholarTest.java index 2c33a317d02..03134c26f3a 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/GoogleScholarTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/GoogleScholarTest.java @@ -1,7 +1,6 @@ package org.jabref.logic.importer.fetcher; import java.io.IOException; -import java.util.Collections; import java.util.List; import java.util.Optional; @@ -38,7 +37,7 @@ void setUp() { } @Test - void linkFound() throws Exception { + void linkFound() throws IOException, FetcherException { entry.setField(StandardField.TITLE, "Towards Application Portability in Platform as a Service"); assertEquals( @@ -66,7 +65,7 @@ void findSingleEntry() throws FetcherException { List foundEntries = finder.performSearch("Detecting Interoperability and Correctness Issues in BPMN 2.0 Process Models"); - assertEquals(Collections.singletonList(entry), foundEntries); + assertEquals(List.of(entry), foundEntries); } @Test diff --git a/src/test/java/org/jabref/logic/importer/fetcher/GvkFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/GvkFetcherTest.java similarity index 89% rename from src/test/java/org/jabref/logic/importer/fetcher/GvkFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/GvkFetcherTest.java index ee173944c7e..254b7a6d890 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/GvkFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/GvkFetcherTest.java @@ -1,7 +1,8 @@ package org.jabref.logic.importer.fetcher; +import java.net.MalformedURLException; +import java.net.URISyntaxException; import java.net.URL; -import java.util.Collections; import java.util.List; import org.jabref.logic.importer.FetcherException; @@ -13,6 +14,7 @@ import org.jabref.model.entry.types.StandardEntryType; import org.jabref.testutils.category.FetcherTest; +import org.apache.lucene.queryparser.flexible.core.QueryNodeParseException; import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; import org.junit.jupiter.api.BeforeEach; @@ -66,7 +68,7 @@ void getName() { } @Test - void simpleSearchQueryURLCorrect() throws Exception { + void simpleSearchQueryURLCorrect() throws QueryNodeParseException, MalformedURLException, URISyntaxException { String query = "java jdk"; QueryNode luceneQuery = new StandardSyntaxParser().parse(query, AbstractQueryTransformer.NO_EXPLICIT_FIELD); URL url = fetcher.getURLForQuery(luceneQuery); @@ -74,7 +76,7 @@ void simpleSearchQueryURLCorrect() throws Exception { } @Test - void complexSearchQueryURLCorrect() throws Exception { + void complexSearchQueryURLCorrect() throws QueryNodeParseException, MalformedURLException, URISyntaxException { String query = "kon:java tit:jdk"; QueryNode luceneQuery = new StandardSyntaxParser().parse(query, AbstractQueryTransformer.NO_EXPLICIT_FIELD); URL url = fetcher.getURLForQuery(luceneQuery); @@ -91,18 +93,18 @@ void performSearchMatchingMultipleEntries() throws FetcherException { @Test void performSearch591166003() throws FetcherException { List searchResult = fetcher.performSearch("ppn:591166003"); - assertEquals(Collections.singletonList(bibEntryPPN591166003), searchResult); + assertEquals(List.of(bibEntryPPN591166003), searchResult); } @Test void performSearch66391437X() throws FetcherException { List searchResult = fetcher.performSearch("ppn:66391437X"); - assertEquals(Collections.singletonList(bibEntryPPN66391437X), searchResult); + assertEquals(List.of(bibEntryPPN66391437X), searchResult); } @Test void performSearchEmpty() throws FetcherException { List searchResult = fetcher.performSearch(""); - assertEquals(Collections.emptyList(), searchResult); + assertEquals(List.of(), searchResult); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/IEEETest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/IEEETest.java similarity index 89% rename from src/test/java/org/jabref/logic/importer/fetcher/IEEETest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/IEEETest.java index 4d12cac558b..cdc246fd26f 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/IEEETest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/IEEETest.java @@ -1,11 +1,12 @@ package org.jabref.logic.importer.fetcher; -import java.util.Collections; +import java.net.MalformedURLException; import java.util.List; import java.util.Optional; import javafx.collections.FXCollections; +import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.logic.importer.ImporterPreferences; import org.jabref.logic.importer.PagedSearchBasedFetcher; @@ -54,7 +55,7 @@ class IEEETest implements SearchBasedFetcherCapabilityTest, PagedSearchFetcherTe private IEEE fetcher; @BeforeAll - static void ensureIeeeIsAvailable() throws Exception { + static void ensureIeeeIsAvailable() throws FetcherException { importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); when(importFormatPreferences.bibEntryPreferences().getKeywordSeparator()).thenReturn(','); @@ -73,7 +74,7 @@ void setUp() { @Test @Disabled("IEEE seems to block us") - void findByDOI() throws Exception { + void findByDOI() throws MalformedURLException, FetcherException { BibEntry entry = new BibEntry().withField(StandardField.DOI, "10.1109/ACCESS.2016.2535486"); assertEquals(Optional.of(URLUtil.create("https://ieeexplore.ieee.org/ielx7/6287639/7419931/07421926.pdf?tp=&arnumber=7421926&isnumber=7419931&ref=")), fetcher.findFullText(entry)); @@ -81,7 +82,7 @@ void findByDOI() throws Exception { @Test @Disabled("IEEE seems to block us") - void findByDocumentUrl() throws Exception { + void findByDocumentUrl() throws MalformedURLException, FetcherException { BibEntry entry = new BibEntry().withField(StandardField.URL, "https://ieeexplore.ieee.org/document/7421926/"); assertEquals(Optional.of(URLUtil.create("https://ieeexplore.ieee.org/ielx7/6287639/7419931/07421926.pdf?tp=&arnumber=7421926&isnumber=7419931&ref=")), fetcher.findFullText(entry)); @@ -89,7 +90,7 @@ void findByDocumentUrl() throws Exception { @Test @Disabled("IEEE seems to block us") - void findByURL() throws Exception { + void findByURL() throws MalformedURLException, FetcherException { BibEntry entry = new BibEntry().withField(StandardField.URL, "https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7421926&ref="); assertEquals(Optional.of(URLUtil.create("https://ieeexplore.ieee.org/ielx7/6287639/7419931/07421926.pdf?tp=&arnumber=7421926&isnumber=7419931&ref=")), fetcher.findFullText(entry)); @@ -97,7 +98,7 @@ void findByURL() throws Exception { @Test @Disabled("IEEE blocks us - works in browser") - void findByOldURL() throws Exception { + void findByOldURL() throws MalformedURLException, FetcherException { BibEntry entry = new BibEntry().withField(StandardField.URL, "https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=7421926"); assertEquals(Optional.of(URLUtil.create("https://ieeexplore.ieee.org/ielx7/6287639/7419931/07421926.pdf?tp=&arnumber=7421926&isnumber=7419931&ref=")), fetcher.findFullText(entry)); @@ -105,7 +106,7 @@ void findByOldURL() throws Exception { @Test @Disabled("IEEE seems to block us") - void findByDOIButNotURL() throws Exception { + void findByDOIButNotURL() throws MalformedURLException, FetcherException { BibEntry entry = new BibEntry() .withField(StandardField.DOI, "10.1109/ACCESS.2016.2535486") .withField(StandardField.URL, "http://dx.doi.org/10.1109/ACCESS.2016.2535486"); @@ -114,19 +115,19 @@ void findByDOIButNotURL() throws Exception { } @Test - void notFoundByURL() throws Exception { + void notFoundByURL() throws FetcherException { BibEntry entry = new BibEntry().withField(StandardField.URL, "http://dx.doi.org/10.1109/ACCESS.2016.2535486"); assertEquals(Optional.empty(), fetcher.findFullText(entry)); } @Test - void notFoundByDOI() throws Exception { + void notFoundByDOI() throws FetcherException { BibEntry entry = new BibEntry().withField(StandardField.DOI, "10.1021/bk-2006-WWW.ch014"); assertEquals(Optional.empty(), fetcher.findFullText(entry)); } @Test - void searchResultHasNoKeywordTerms() throws Exception { + void searchResultHasNoKeywordTerms() throws FetcherException { BibEntry expected = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Shatakshi Sharma and Bhim Singh and Sukumar Mishra") .withField(StandardField.DATE, "April 2020") @@ -145,23 +146,23 @@ void searchResultHasNoKeywordTerms() throws Exception { List fetchedEntries = fetcher.performSearch("article_number:8801912"); // Abstract should not be included in JabRef tests (copyrighted) fetchedEntries.forEach(entry -> entry.clearField(StandardField.ABSTRACT)); - assertEquals(Collections.singletonList(expected), fetchedEntries); + assertEquals(List.of(expected), fetchedEntries); } @Test - void searchByPlainQueryFindsEntry() throws Exception { + void searchByPlainQueryFindsEntry() throws FetcherException { List fetchedEntries = fetcher.performSearch("Overcoming Open Source Project Entry Barriers with a Portal for Newcomers"); // Abstract should not be included in JabRef tests fetchedEntries.forEach(entry -> entry.clearField(StandardField.ABSTRACT)); - assertEquals(Collections.singletonList(IGOR_NEWCOMERS), fetchedEntries); + assertEquals(List.of(IGOR_NEWCOMERS), fetchedEntries); } @Test - void searchByQuotedQueryFindsEntry() throws Exception { + void searchByQuotedQueryFindsEntry() throws FetcherException { List fetchedEntries = fetcher.performSearch("\"Overcoming Open Source Project Entry Barriers with a Portal for Newcomers\""); // Abstract should not be included in JabRef tests fetchedEntries.forEach(entry -> entry.clearField(StandardField.ABSTRACT)); - assertEquals(Collections.singletonList(IGOR_NEWCOMERS), fetchedEntries); + assertEquals(List.of(IGOR_NEWCOMERS), fetchedEntries); } @Override diff --git a/src/test/java/org/jabref/logic/importer/fetcher/INSPIREFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/INSPIREFetcherTest.java similarity index 89% rename from src/test/java/org/jabref/logic/importer/fetcher/INSPIREFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/INSPIREFetcherTest.java index dfb4608e1ea..e2b45530c3d 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/INSPIREFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/INSPIREFetcherTest.java @@ -1,8 +1,8 @@ package org.jabref.logic.importer.fetcher; -import java.util.Collections; import java.util.List; +import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; @@ -29,7 +29,7 @@ void setUp() { } @Test - void searchByQueryFindsEntry() throws Exception { + void searchByQueryFindsEntry() throws FetcherException { BibEntry master = new BibEntry(StandardEntryType.MastersThesis) .withCitationKey("Diez:2013fdp") .withField(StandardField.AUTHOR, "Diez, Tobias") @@ -40,11 +40,11 @@ void searchByQueryFindsEntry() throws Exception { .withField(StandardField.ARCHIVEPREFIX, "arXiv") .withField(StandardField.PRIMARYCLASS, "math-ph"); List fetchedEntries = fetcher.performSearch("Fréchet group actions field"); - assertEquals(Collections.singletonList(master), fetchedEntries); + assertEquals(List.of(master), fetchedEntries); } @Test - void searchByIdentifierFindsEntry() throws Exception { + void searchByIdentifierFindsEntry() throws FetcherException { BibEntry article = new BibEntry(StandardEntryType.Article) .withCitationKey("Melnikov:1998pr") .withField(StandardField.AUTHOR, "Melnikov, Kirill and Yelkhovsky, Alexander") @@ -58,11 +58,11 @@ void searchByIdentifierFindsEntry() throws Exception { .withField(StandardField.ARCHIVEPREFIX, "arXiv") .withField(new UnknownField("reportnumber"), "BUDKER-INP-1998-7, TTP-98-10"); List fetchedEntries = fetcher.performSearch("\"hep-ph/9802379\""); - assertEquals(Collections.singletonList(article), fetchedEntries); + assertEquals(List.of(article), fetchedEntries); } @Test - void searchByExistingEntry() throws Exception { + void searchByExistingEntry() throws FetcherException { BibEntry article = new BibEntry(StandardEntryType.Article) .withCitationKey("Melnikov:1998pr") .withField(StandardField.AUTHOR, "Melnikov, Kirill and Yelkhovsky, Alexander") @@ -76,6 +76,6 @@ void searchByExistingEntry() throws Exception { .withField(StandardField.ARCHIVEPREFIX, "arXiv") .withField(new UnknownField("reportnumber"), "BUDKER-INP-1998-7, TTP-98-10"); List fetchedEntries = fetcher.performSearch(article); - assertEquals(Collections.singletonList(article), fetchedEntries); + assertEquals(List.of(article), fetchedEntries); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/ISIDOREFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/ISIDOREFetcherTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/fetcher/ISIDOREFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/ISIDOREFetcherTest.java diff --git a/src/test/java/org/jabref/logic/importer/fetcher/IacrEprintFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/IacrEprintFetcherTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/fetcher/IacrEprintFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/IacrEprintFetcherTest.java diff --git a/src/test/java/org/jabref/logic/importer/fetcher/IssnFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/IssnFetcherTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/fetcher/IssnFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/IssnFetcherTest.java diff --git a/src/test/java/org/jabref/logic/importer/fetcher/JstorFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/JstorFetcherTest.java similarity index 93% rename from src/test/java/org/jabref/logic/importer/fetcher/JstorFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/JstorFetcherTest.java index 340f07f187a..bd737ac4e45 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/JstorFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/JstorFetcherTest.java @@ -1,12 +1,13 @@ package org.jabref.logic.importer.fetcher; +import java.io.IOException; import java.net.URL; import java.time.LocalDate; import java.time.format.DateTimeFormatter; -import java.util.Collections; import java.util.List; import java.util.Optional; +import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.logic.importer.SearchBasedFetcher; import org.jabref.logic.util.URLUtil; @@ -58,13 +59,13 @@ public class JstorFetcherTest implements SearchBasedFetcherCapabilityTest { .withField(StandardField.YEAR, "2006"); @Test - void searchByTitle() throws Exception { + void searchByTitle() throws FetcherException { List entries = fetcher.performSearch("title: \"Test Anxiety Analysis of Chinese College Students in Computer-based Spoken English Test\""); - assertEquals(Collections.singletonList(bibEntry), entries); + assertEquals(List.of(bibEntry), entries); } @Test - void searchById() throws Exception { + void searchById() throws FetcherException { Optional actual = fetcher.performSearchById("90002164"); // The URL date is always the current date in the US. No need to properly check it. actual.ifPresent(entry -> entry.clearField(StandardField.URLDATE)); @@ -72,13 +73,13 @@ void searchById() throws Exception { } @Test - void searchByUrlUsingId() throws Exception { + void searchByUrlUsingId() throws FetcherException { doiEntry.setField(StandardField.URLDATE, LocalDate.now().format(DateTimeFormatter.ISO_DATE)); assertEquals(Optional.of(doiEntry), fetcher.performSearchById("https://www.jstor.org/stable/10.1086/501484?seq=1")); } @Test - void fetchPDF() throws Exception { + void fetchPDF() throws FetcherException, IOException { Optional url = fetcher.findFullText(bibEntry); assertEquals(Optional.of(URLUtil.create("https://www.jstor.org/stable/pdf/90002164.pdf")), url); } @@ -101,16 +102,16 @@ public String getTestJournal() { @Disabled("jstor does not support search only based on year") @Override - public void supportsYearRangeSearch() throws Exception { + public void supportsYearRangeSearch() { } @Disabled("jstor does not provide articles with journals") @Override - public void supportsJournalSearch() throws Exception { + public void supportsJournalSearch() { } @Disabled("jstor does not support search only based on year") @Override - public void supportsYearSearch() throws Exception { + public void supportsYearSearch() { } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/LOBIDFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/LOBIDFetcherTest.java similarity index 95% rename from src/test/java/org/jabref/logic/importer/fetcher/LOBIDFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/LOBIDFetcherTest.java index 9b5de6f84f0..f5837be9c1c 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/LOBIDFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/LOBIDFetcherTest.java @@ -1,8 +1,8 @@ package org.jabref.logic.importer.fetcher; -import java.util.Collections; import java.util.List; +import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.ImporterPreferences; import org.jabref.logic.importer.PagedSearchBasedFetcher; import org.jabref.logic.importer.SearchBasedFetcher; @@ -36,7 +36,7 @@ public String queryForUniqueResultsPerPage() { } @Test - void searchByQueryFindsEntry() throws Exception { + void searchByQueryFindsEntry() throws FetcherException { BibEntry firstArticle = new BibEntry(StandardEntryType.Book) .withField(StandardField.AUTHOR, "Nichols, Cathrine and Blume, Eugen and DruckVerlag Kettler GmbH") .withField(StandardField.PUBLISHER, "Verlag Kettler") @@ -83,8 +83,8 @@ void searchByQueryFindsEntry() throws Exception { } @Test - void searchByEmptyQueryFindsNothing() throws Exception { - assertEquals(Collections.emptyList(), fetcher.performSearch("")); + void searchByEmptyQueryFindsNothing() throws FetcherException { + assertEquals(List.of(), fetcher.performSearch("")); } @Test diff --git a/src/test/java/org/jabref/logic/importer/fetcher/LibraryOfCongressTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/LibraryOfCongressTest.java similarity index 93% rename from src/test/java/org/jabref/logic/importer/fetcher/LibraryOfCongressTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/LibraryOfCongressTest.java index e0e3055e00d..aac5ff75d85 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/LibraryOfCongressTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/LibraryOfCongressTest.java @@ -3,6 +3,7 @@ import java.util.Optional; import org.jabref.logic.importer.FetcherClientException; +import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.BibEntryPreferences; @@ -33,7 +34,7 @@ void setUp() { } @Test - void performSearchById() throws Exception { + void performSearchById() throws FetcherException { BibEntry expected = new BibEntry() .withField(StandardField.ADDRESS, "mau, Burlington, MA") .withField(StandardField.AUTHOR, "West, Matthew") @@ -53,7 +54,7 @@ void performSearchById() throws Exception { } @Test - void performSearchByEmptyId() throws Exception { + void performSearchByEmptyId() throws FetcherException { assertEquals(Optional.empty(), fetcher.performSearchById("")); } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/MathSciNetTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/MathSciNetTest.java similarity index 93% rename from src/test/java/org/jabref/logic/importer/fetcher/MathSciNetTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/MathSciNetTest.java index 264986c3c50..1d7ffb513b2 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/MathSciNetTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/MathSciNetTest.java @@ -1,5 +1,6 @@ package org.jabref.logic.importer.fetcher; +import java.io.IOException; import java.io.InputStream; import java.util.List; @@ -7,7 +8,9 @@ import org.jabref.logic.bibtex.FieldPreferences; import org.jabref.logic.cleanup.NormalizeWhitespacesCleanup; +import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.ImportFormatPreferences; +import org.jabref.logic.importer.ParseException; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; import org.jabref.model.entry.types.StandardEntryType; @@ -30,7 +33,7 @@ class MathSciNetTest { private NormalizeWhitespacesCleanup normalizeWhitespacesCleanup; @BeforeEach - void setUp() throws Exception { + void setUp() { ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); when(importFormatPreferences.bibEntryPreferences().getKeywordSeparator()).thenReturn(','); fetcher = new MathSciNet(importFormatPreferences); @@ -54,7 +57,7 @@ void setUp() throws Exception { } @Test - void searchByEntryFindsEntry() throws Exception { + void searchByEntryFindsEntry() throws FetcherException { BibEntry searchEntry = new BibEntry() .withField(StandardField.TITLE, "existence") .withField(StandardField.AUTHOR, "Ratiu") @@ -69,7 +72,7 @@ void searchByEntryFindsEntry() throws Exception { @Test @DisabledOnCIServer("CI server has no subscription to MathSciNet and thus gets 401 response. One single call goes through, but subsequent calls fail.") - void searchByIdInEntryFindsEntry() throws Exception { + void searchByIdInEntryFindsEntry() throws FetcherException { BibEntry searchEntry = new BibEntry() .withField(StandardField.MR_NUMBER, "3537908"); @@ -82,7 +85,7 @@ void searchByIdInEntryFindsEntry() throws Exception { @Test @DisabledOnCIServer("CI server has no subscription to MathSciNet and thus gets 401 response. One single call goes through, but subsequent calls fail.") - void searchByQueryFindsEntry() throws Exception { + void searchByQueryFindsEntry() throws FetcherException { List fetchedEntries = fetcher.performSearch("Existence and uniqueness theorems Two-Dimensional Ericksen Leslie System"); assertFalse(fetchedEntries.isEmpty()); BibEntry secondEntry = fetchedEntries.get(1); @@ -91,7 +94,7 @@ void searchByQueryFindsEntry() throws Exception { } @Test - void getParser() throws Exception { + void getParser() throws IOException, ParseException { String fileName = "mathscinet.json"; try (InputStream is = MathSciNetTest.class.getResourceAsStream(fileName)) { List entries = fetcher.getParser().parseEntries(is); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/MedlineFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/MedlineFetcherTest.java similarity index 95% rename from src/test/java/org/jabref/logic/importer/fetcher/MedlineFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/MedlineFetcherTest.java index 8e7fdcf425d..ee4d0d7979a 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/MedlineFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/MedlineFetcherTest.java @@ -1,10 +1,10 @@ package org.jabref.logic.importer.fetcher; -import java.util.Collections; import java.util.List; import java.util.Optional; import org.jabref.logic.importer.FetcherClientException; +import org.jabref.logic.importer.FetcherException; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; import org.jabref.model.entry.field.UnknownField; @@ -132,7 +132,7 @@ void getName() { } @Test - void searchByIDWijedasa() throws Exception { + void searchByIDWijedasa() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById("27670948"); assertTrue(fetchedEntry.isPresent()); @@ -141,7 +141,7 @@ void searchByIDWijedasa() throws Exception { } @Test - void searchByIDEndharti() throws Exception { + void searchByIDEndharti() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById("27670445"); assertTrue(fetchedEntry.isPresent()); @@ -150,7 +150,7 @@ void searchByIDEndharti() throws Exception { } @Test - void searchByIDIchikawa() throws Exception { + void searchByIDIchikawa() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById("26197440"); assertTrue(fetchedEntry.isPresent()); @@ -159,7 +159,7 @@ void searchByIDIchikawa() throws Exception { } @Test - void searchByIDSari() throws Exception { + void searchByIDSari() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById("26867355"); assertTrue(fetchedEntry.isPresent()); @@ -168,39 +168,39 @@ void searchByIDSari() throws Exception { } @Test - void multipleEntries() throws Exception { + void multipleEntries() throws FetcherException { List entryList = fetcher.performSearch("java"); entryList.forEach(entry -> entry.clearField(StandardField.ABSTRACT)); // Remove abstract due to copyright); assertEquals(50, entryList.size()); } @Test - void withLuceneQueryAuthorDate() throws Exception { + void withLuceneQueryAuthorDate() throws FetcherException { List entryList = fetcher.performSearch("author:vigmond AND year:2021"); entryList.forEach(entry -> entry.clearField(StandardField.ABSTRACT)); // Remove abstract due to copyright); assertEquals(18, entryList.size()); } @Test - void withLuceneQueryAuthorDateRange() throws Exception { + void withLuceneQueryAuthorDateRange() throws FetcherException { List entryList = fetcher.performSearch("author:vigmond AND year-range:2020-2021"); entryList.forEach(entry -> entry.clearField(StandardField.ABSTRACT)); // Remove abstract due to copyright); assertEquals(28, entryList.size()); } @Test - void invalidSearchTerm() throws Exception { + void invalidSearchTerm() { assertThrows(FetcherClientException.class, () -> fetcher.performSearchById("this.is.a.invalid.search.term.for.the.medline.fetcher")); } @Test - void emptyEntryList() throws Exception { + void emptyEntryList() throws FetcherException { List entryList = fetcher.performSearch("java is fantastic and awesome "); - assertEquals(Collections.emptyList(), entryList); + assertEquals(List.of(), entryList); } @Test - void emptyInput() throws Exception { - assertEquals(Collections.emptyList(), fetcher.performSearch("")); + void emptyInput() throws FetcherException { + assertEquals(List.of(), fetcher.performSearch("")); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/MedraTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/MedraTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/fetcher/MedraTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/MedraTest.java diff --git a/src/test/java/org/jabref/logic/importer/fetcher/MrDLibFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/MrDLibFetcherTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/fetcher/MrDLibFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/MrDLibFetcherTest.java diff --git a/src/test/java/org/jabref/logic/importer/fetcher/OpenAccessDoiTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/OpenAccessDoiTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/fetcher/OpenAccessDoiTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/OpenAccessDoiTest.java diff --git a/src/test/java/org/jabref/logic/importer/fetcher/PagedSearchFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/PagedSearchFetcherTest.java similarity index 95% rename from src/test/java/org/jabref/logic/importer/fetcher/PagedSearchFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/PagedSearchFetcherTest.java index dad5618923c..a9412c6dd16 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/PagedSearchFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/PagedSearchFetcherTest.java @@ -1,5 +1,6 @@ package org.jabref.logic.importer.fetcher; +import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.PagedSearchBasedFetcher; import org.jabref.model.entry.BibEntry; import org.jabref.model.paging.Page; @@ -22,7 +23,7 @@ default String queryForUniqueResultsPerPage() { * Ensure that different page return different entries */ @Test - default void pageSearchReturnsUniqueResultsPerPage() throws Exception { + default void pageSearchReturnsUniqueResultsPerPage() throws FetcherException { String query = queryForUniqueResultsPerPage(); Page firstPage = getPagedFetcher().performSearchPaged(query, 0); Page secondPage = getPagedFetcher().performSearchPaged(query, 1); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/PicaXmlParserTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/PicaXmlParserTest.java similarity index 78% rename from src/test/java/org/jabref/logic/importer/fetcher/PicaXmlParserTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/PicaXmlParserTest.java index ef59c20cf9c..077ca99bd4a 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/PicaXmlParserTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/PicaXmlParserTest.java @@ -1,15 +1,16 @@ package org.jabref.logic.importer.fetcher; +import java.io.IOException; import java.io.InputStream; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Optional; -import org.jabref.logic.bibtex.BibEntryAssert; +import org.jabref.logic.importer.ParseException; import org.jabref.logic.importer.fileformat.PicaXmlParser; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; +import org.jabref.support.BibEntryAssert; import org.jabref.testutils.category.FetcherTest; import org.junit.jupiter.api.Test; @@ -20,7 +21,7 @@ @FetcherTest class PicaXmlParserTest { - private void doTest(String xmlName, int expectedSize, List resourceNames) throws Exception { + private void doTest(String xmlName, int expectedSize, List resourceNames) throws ParseException, IOException { try (InputStream is = PicaXmlParserTest.class.getResourceAsStream(xmlName)) { PicaXmlParser parser = new PicaXmlParser(); List entries = parser.parseEntries(is); @@ -35,22 +36,22 @@ private void doTest(String xmlName, int expectedSize, List resourceNames } @Test - void emptyResult() throws Exception { - doTest("gvk_empty_result_because_of_bad_query.xml", 0, Collections.emptyList()); + void emptyResult() throws ParseException, IOException { + doTest("gvk_empty_result_because_of_bad_query.xml", 0, List.of()); } @Test - void resultFor797485368() throws Exception { - doTest("gvk_result_for_797485368.xml", 1, Collections.singletonList("gvk_result_for_797485368.bib")); + void resultFor797485368() throws ParseException, IOException { + doTest("gvk_result_for_797485368.xml", 1, List.of("gvk_result_for_797485368.bib")); } @Test - void gMP() throws Exception { + void gMP() throws ParseException, IOException { doTest("gvk_gmp.xml", 2, Arrays.asList("gvk_gmp.1.bib", "gvk_gmp.2.bib")); } @Test - void subTitleTest() throws Exception { + void subTitleTest() throws IOException, ParseException { try (InputStream is = PicaXmlParserTest.class.getResourceAsStream("gvk_artificial_subtitle_test.xml")) { PicaXmlParser parser = new PicaXmlParser(); List entries = parser.parseEntries(is); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/ResearchGateTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/ResearchGateTest.java similarity index 96% rename from src/test/java/org/jabref/logic/importer/fetcher/ResearchGateTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/ResearchGateTest.java index 265dd46ea61..98189897a22 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/ResearchGateTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/ResearchGateTest.java @@ -14,6 +14,7 @@ import org.jabref.support.DisabledOnCIServer; import org.jabref.testutils.category.FetcherTest; +import org.apache.lucene.queryparser.flexible.core.QueryNodeParseException; import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; import org.junit.jupiter.api.BeforeEach; @@ -56,7 +57,7 @@ void fullTextNotFoundByDOI() throws IOException, FetcherException { } @Test - void getDocumentByTitle() throws Exception { + void getDocumentByTitle() throws FetcherException, IOException { Optional source = fetcher.getURLByString(entry.getTitle().get()); assertTrue(source.isPresent() && source.get().startsWith(URL_PAGE)); } @@ -73,7 +74,7 @@ void trustLevel() { } @Test - void performSearchWithString() throws Exception { + void performSearchWithString() throws FetcherException { BibEntry master = new BibEntry(StandardEntryType.PhdThesis) .withCitationKey("phdthesis") .withField(StandardField.AUTHOR, "Diez, Tobias") @@ -85,7 +86,7 @@ void performSearchWithString() throws Exception { } @Test - void performSearchWithLuceneQuery() throws Exception { + void performSearchWithLuceneQuery() throws QueryNodeParseException, FetcherException { BibEntry master = new BibEntry(StandardEntryType.Article) .withCitationKey("article") .withField(StandardField.TITLE, "Wine Microbiology and Predictive Microbiology: " + diff --git a/src/test/java/org/jabref/logic/importer/fetcher/RfcFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/RfcFetcherTest.java similarity index 96% rename from src/test/java/org/jabref/logic/importer/fetcher/RfcFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/RfcFetcherTest.java index e89e028129d..f0ab1b438cf 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/RfcFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/RfcFetcherTest.java @@ -3,6 +3,7 @@ import java.util.Optional; import org.jabref.logic.importer.FetcherClientException; +import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.InternalField; @@ -44,7 +45,7 @@ void getNameReturnsEqualIdName() { } @Test - void performSearchByIdFindsEntryWithDraftIdentifier() throws Exception { + void performSearchByIdFindsEntryWithDraftIdentifier() throws FetcherException { BibEntry bibDraftEntry = new BibEntry(StandardEntryType.TechReport) .withField(InternalField.KEY_FIELD, "fielding-http-spec-01") .withField(StandardField.AUTHOR, "Henrik Nielsen and Roy T. Fielding and Tim Berners-Lee") @@ -67,12 +68,12 @@ void performSearchByIdFindsEntryWithDraftIdentifier() throws Exception { @ParameterizedTest @CsvSource({"rfc1945", "RFC1945", "1945"}) - void performSearchByIdFindsEntry(String identifier) throws Exception { + void performSearchByIdFindsEntry(String identifier) throws FetcherException { assertEquals(Optional.of(bibEntry), fetcher.performSearchById(identifier)); } @Test - void performSearchByIdFindsNothingWithoutIdentifier() throws Exception { + void performSearchByIdFindsNothingWithoutIdentifier() throws FetcherException { assertEquals(Optional.empty(), fetcher.performSearchById("")); } @@ -83,7 +84,7 @@ void performSearchByIdFindsNothingWithoutIdentifier() throws Exception { "RFC9999", // invalid identifier "banana"}) - void performSearchByIdFindsNothingWithValidDraftIdentifier(String identifier) throws Exception { + void performSearchByIdFindsNothingWithValidDraftIdentifier(String identifier) { assertThrows(FetcherClientException.class, () -> fetcher.performSearchById(identifier)); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/ScholarArchiveFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/ScholarArchiveFetcherTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/fetcher/ScholarArchiveFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/ScholarArchiveFetcherTest.java diff --git a/src/test/java/org/jabref/logic/importer/fetcher/ScienceDirectTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/ScienceDirectTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/fetcher/ScienceDirectTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/ScienceDirectTest.java diff --git a/src/test/java/org/jabref/logic/importer/fetcher/SearchBasedFetcherCapabilityTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/SearchBasedFetcherCapabilityTest.java similarity index 92% rename from src/test/java/org/jabref/logic/importer/fetcher/SearchBasedFetcherCapabilityTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/SearchBasedFetcherCapabilityTest.java index 5de34281403..ebcb6946721 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/SearchBasedFetcherCapabilityTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/SearchBasedFetcherCapabilityTest.java @@ -1,6 +1,5 @@ package org.jabref.logic.importer.fetcher; -import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.StringJoiner; @@ -9,6 +8,7 @@ import javafx.collections.FXCollections; import org.jabref.logic.bibtex.FieldPreferences; +import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.ImportCleanup; import org.jabref.logic.importer.SearchBasedFetcher; import org.jabref.model.database.BibDatabaseMode; @@ -35,7 +35,7 @@ interface SearchBasedFetcherCapabilityTest { * Test whether the library API supports author field search. */ @Test - default void supportsAuthorSearch() throws Exception { + default void supportsAuthorSearch() throws FetcherException { StringJoiner queryBuilder = new StringJoiner("\" AND author:\"", "author:\"", "\""); getTestAuthors().forEach(queryBuilder::add); @@ -57,7 +57,7 @@ default void supportsAuthorSearch() throws Exception { * Test whether the library API supports year field search. */ @Test - default void supportsYearSearch() throws Exception { + default void supportsYearSearch() throws FetcherException { List result = getFetcher().performSearch("year:" + getTestYear()); FieldPreferences fieldPreferences = mock(FieldPreferences.class); when(fieldPreferences.getNonWrappableFields()).thenReturn(FXCollections.observableArrayList()); @@ -69,14 +69,14 @@ default void supportsYearSearch() throws Exception { .distinct() .collect(Collectors.toList()); - assertEquals(Collections.singletonList(getTestYear().toString()), differentYearsInResult); + assertEquals(List.of(getTestYear().toString()), differentYearsInResult); } /** * Test whether the library API supports year range search. */ @Test - default void supportsYearRangeSearch() throws Exception { + default void supportsYearRangeSearch() throws FetcherException { List yearsInYearRange = List.of("2018", "2019", "2020"); List result = getFetcher().performSearch("year-range:2018-2020"); @@ -88,7 +88,7 @@ default void supportsYearRangeSearch() throws Exception { .filter(Optional::isPresent) .map(Optional::get) .distinct() - .collect(Collectors.toList()); + .toList(); assertFalse(result.isEmpty()); assertTrue(yearsInYearRange.containsAll(differentYearsInResult)); } @@ -100,7 +100,7 @@ default void supportsYearRangeSearch() throws Exception { * is related to a failed read by the Bibtex Parser (title is formatted in a weird way) */ @Test - default void supportsJournalSearch() throws Exception { + default void supportsJournalSearch() throws FetcherException { List result = getFetcher().performSearch("journal:\"" + getTestJournal() + "\""); FieldPreferences fieldPreferences = mock(FieldPreferences.class); when(fieldPreferences.getNonWrappableFields()).thenReturn(FXCollections.observableArrayList()); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/SemanticScholarTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/SemanticScholarTest.java similarity index 89% rename from src/test/java/org/jabref/logic/importer/fetcher/SemanticScholarTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/SemanticScholarTest.java index f9f9a75a594..42f9b518956 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/SemanticScholarTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/SemanticScholarTest.java @@ -5,7 +5,6 @@ import java.net.URI; import java.net.URISyntaxException; import java.net.URL; -import java.util.Collections; import java.util.List; import java.util.Optional; @@ -61,7 +60,7 @@ void getDocument() throws IOException, FetcherException { @Test @Disabled("Returns a DOI instead of the required link") @DisabledOnCIServer("CI server is unreliable") - void fullTextFindByDOI() throws Exception { + void fullTextFindByDOI() throws URISyntaxException, FetcherException, IOException { BibEntry entry = new BibEntry().withField(StandardField.DOI, "10.1038/nrn3241"); assertEquals( Optional.of(new URI("https://europepmc.org/articles/pmc4907333?pdf=render").toURL()), @@ -72,7 +71,7 @@ void fullTextFindByDOI() throws Exception { @Test @DisabledOnCIServer("CI server is unreliable") @Disabled("Sometimes, does not find any thing") - void fullTextFindByDOIAlternate() throws Exception { + void fullTextFindByDOIAlternate() throws FetcherException, IOException, URISyntaxException { assertEquals( Optional.of(new URI("https://pdfs.semanticscholar.org/7f6e/61c254bc2df38a784c1228f56c13317caded.pdf").toURL()), fetcher.findFullText(new BibEntry() @@ -96,7 +95,7 @@ void fullTextNotFoundByDOI() throws IOException, FetcherException { @Test @DisabledOnCIServer("CI server is unreliable") - void fullTextFindByArXiv() throws Exception { + void fullTextFindByArXiv() throws URISyntaxException, IOException, FetcherException { BibEntry entry = new BibEntry().withField(StandardField.EPRINT, "1407.3561") .withField(StandardField.ARCHIVEPREFIX, "arXiv"); assertEquals( @@ -121,7 +120,7 @@ public PagedSearchBasedFetcher getPagedFetcher() { } @Test - void getURLForQueryWithLucene() throws QueryNodeParseException, MalformedURLException, FetcherException, URISyntaxException { + void getURLForQueryWithLucene() throws QueryNodeParseException, MalformedURLException, URISyntaxException { String query = "Software engineering"; SyntaxParser parser = new StandardSyntaxParser(); URL url = fetcher.getURLForQuery(parser.parse(query, "default"), 0); @@ -130,7 +129,7 @@ void getURLForQueryWithLucene() throws QueryNodeParseException, MalformedURLExce @Test @Disabled("We seem to be blocked") - void searchByQueryFindsEntry() throws Exception { + void searchByQueryFindsEntry() throws FetcherException { BibEntry master = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Tobias Diez") .withField(StandardField.TITLE, "Slice theorem for Fréchet group actions and covariant symplectic field theory") @@ -141,35 +140,35 @@ void searchByQueryFindsEntry() throws Exception { List fetchedEntries = fetcher.performSearch("Slice theorem for Fréchet group actions and covariant symplectic"); // Abstract should not be included in JabRef tests fetchedEntries.forEach(entry -> entry.clearField(StandardField.ABSTRACT)); - assertEquals(Collections.singletonList(master), fetchedEntries); + assertEquals(List.of(master), fetchedEntries); } @Test @Disabled("We seem to be blocked") - void searchByPlainQueryFindsEntry() throws Exception { + void searchByPlainQueryFindsEntry() throws FetcherException { List fetchedEntries = fetcher.performSearch("Overcoming Open Source Project Entry Barriers with a Portal for Newcomers"); // Abstract should not be included in JabRef tests fetchedEntries.forEach(entry -> entry.clearField(StandardField.ABSTRACT)); - assertEquals(Collections.singletonList(IGOR_NEWCOMERS), fetchedEntries); + assertEquals(List.of(IGOR_NEWCOMERS), fetchedEntries); } @Test @Disabled("We seem to be blocked") - void searchByQuotedQueryFindsEntry() throws Exception { + void searchByQuotedQueryFindsEntry() throws FetcherException { List fetchedEntries = fetcher.performSearch("\"Overcoming Open Source Project Entry Barriers with a Portal for Newcomers\""); // Abstract should not be included in JabRef tests fetchedEntries.forEach(entry -> entry.clearField(StandardField.ABSTRACT)); - assertEquals(Collections.singletonList(IGOR_NEWCOMERS), fetchedEntries); + assertEquals(List.of(IGOR_NEWCOMERS), fetchedEntries); } @Test - void performSearchByEmptyQuery() throws Exception { - assertEquals(Collections.emptyList(), fetcher.performSearch("")); + void performSearchByEmptyQuery() throws FetcherException { + assertEquals(List.of(), fetcher.performSearch("")); } @Test @Disabled("We seem to be blocked") - void findByEntry() throws Exception { + void findByEntry() throws FetcherException { BibEntry barrosEntry = new BibEntry(StandardEntryType.Article) .withField(StandardField.TITLE, "Formalising BPMN Service Interaction Patterns") .withField(StandardField.AUTHOR, "Chiara Muzi and Luise Pufahl and Lorenzo Rossi and M. Weske and F. Tiezzi") @@ -188,7 +187,7 @@ void findByEntry() throws Exception { @Test @Override @DisabledOnCIServer("Unstable on CI") - public void pageSearchReturnsUniqueResultsPerPage() throws Exception { + public void pageSearchReturnsUniqueResultsPerPage() { // Implementation is done in the interface } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/SpringerFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/SpringerFetcherTest.java similarity index 98% rename from src/test/java/org/jabref/logic/importer/fetcher/SpringerFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/SpringerFetcherTest.java index 5eeef6071ab..73aab93767f 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/SpringerFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/SpringerFetcherTest.java @@ -1,11 +1,11 @@ package org.jabref.logic.importer.fetcher; -import java.util.Collections; import java.util.List; import java.util.Optional; import javafx.collections.FXCollections; +import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.ImporterPreferences; import org.jabref.logic.importer.PagedSearchBasedFetcher; import org.jabref.logic.importer.SearchBasedFetcher; @@ -41,7 +41,7 @@ void setUp() { } @Test - void searchByQueryFindsEntry() throws Exception { + void searchByQueryFindsEntry() throws FetcherException { BibEntry articleTagThatIssue = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Santos, Fabio and Vargovich, Joseph and Trinkenreich, Bianca and Santos, Italo and Penney, Jacob and Britto, Ricardo and Pimentel, João Felipe and Wiese, Igor and Steinmacher, Igor and Sarma, Anita and Gerosa, Marco A.") @@ -154,8 +154,8 @@ void springerJSONToBibtex() { } @Test - void searchByEmptyQueryFindsNothing() throws Exception { - assertEquals(Collections.emptyList(), fetcher.performSearch("")); + void searchByEmptyQueryFindsNothing() throws FetcherException { + assertEquals(List.of(), fetcher.performSearch("")); } @Test @@ -184,7 +184,7 @@ public void supportsJournalSearch() { @Test @Disabled("401 as of 2024-08-18") - void supportsPhraseSearch() throws Exception { + void supportsPhraseSearch() throws FetcherException { // Normal search should match due to Redmiles, Elissa M., phrase search on the other hand should not find it. BibEntry expected = new BibEntry(StandardEntryType.InCollection) .withField(StandardField.AUTHOR, "Booth, Kayla M. and Dosono, Bryan and Redmiles, Elissa M. and Morales, Miraida and Depew, Michael and Farzan, Rosta and Herman, Everett and Trahan, Keith and Tananis, Cindy") @@ -205,12 +205,12 @@ void supportsPhraseSearch() throws Exception { // Phrase search should be a subset of the normal search result. assertTrue(result.containsAll(resultPhrase)); result.removeAll(resultPhrase); - assertEquals(Collections.singletonList(expected), result); + assertEquals(List.of(expected), result); } @Test @Disabled("401 as of 2024-08-18") - void supportsBooleanANDSearch() throws Exception { + void supportsBooleanANDSearch() throws FetcherException { List resultJustByAuthor = fetcher.performSearch("author:\"Redmiles, David\""); List result = fetcher.performSearch("author:\"Redmiles, David\" AND journal:\"Computer Supported Cooperative Work\""); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/SpringerLinkTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/SpringerLinkTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/fetcher/SpringerLinkTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/SpringerLinkTest.java diff --git a/src/test/java/org/jabref/logic/importer/fetcher/TitleFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/TitleFetcherTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/fetcher/TitleFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/TitleFetcherTest.java diff --git a/src/test/java/org/jabref/logic/importer/fetcher/ZbMATHTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/ZbMATHTest.java similarity index 83% rename from src/test/java/org/jabref/logic/importer/fetcher/ZbMATHTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/ZbMATHTest.java index 9128ed477e8..ae1b93f5cce 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/ZbMATHTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/ZbMATHTest.java @@ -1,9 +1,9 @@ package org.jabref.logic.importer.fetcher; -import java.util.Collections; import java.util.List; import java.util.Optional; +import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; @@ -25,7 +25,7 @@ class ZbMATHTest { private BibEntry donaldsonEntry; @BeforeEach - void setUp() throws Exception { + void setUp() { ImportFormatPreferences importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS); when(importFormatPreferences.bibEntryPreferences().getKeywordSeparator()).thenReturn(','); @@ -49,43 +49,43 @@ void setUp() throws Exception { } @Test - void searchByQueryFindsEntry() throws Exception { + void searchByQueryFindsEntry() throws FetcherException { List fetchedEntries = fetcher.performSearch("an:0507.57010"); - assertEquals(Collections.singletonList(donaldsonEntry), fetchedEntries); + assertEquals(List.of(donaldsonEntry), fetchedEntries); } @Test - void searchByIdFindsEntry() throws Exception { + void searchByIdFindsEntry() throws FetcherException { Optional fetchedEntry = fetcher.performSearchById("0507.57010"); assertEquals(Optional.of(donaldsonEntry), fetchedEntry); } @Test - void searchByEntryFindsEntry() throws Exception { + void searchByEntryFindsEntry() throws FetcherException { BibEntry searchEntry = new BibEntry(); searchEntry.setField(StandardField.TITLE, "An application of gauge theory to four dimensional topology"); searchEntry.setField(StandardField.AUTHOR, "S. K. {Donaldson}"); List fetchedEntries = fetcher.performSearch(searchEntry); - assertEquals(Collections.singletonList(donaldsonEntry), fetchedEntries); + assertEquals(List.of(donaldsonEntry), fetchedEntries); } @Test - void searchByNoneEntryFindsNothing() throws Exception { + void searchByNoneEntryFindsNothing() throws FetcherException { BibEntry searchEntry = new BibEntry(); searchEntry.setField(StandardField.TITLE, "t"); searchEntry.setField(StandardField.AUTHOR, "a"); List fetchedEntries = fetcher.performSearch(searchEntry); - assertEquals(Collections.emptyList(), fetchedEntries); + assertEquals(List.of(), fetchedEntries); } @Test - void searchByIdInEntryFindsEntry() throws Exception { + void searchByIdInEntryFindsEntry() throws FetcherException { BibEntry searchEntry = new BibEntry(); searchEntry.setField(StandardField.ZBL_NUMBER, "0507.57010"); List fetchedEntries = fetcher.performSearch(searchEntry); - assertEquals(Collections.singletonList(donaldsonEntry), fetchedEntries); + assertEquals(List.of(donaldsonEntry), fetchedEntries); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/DoiToBibtexConverterComIsbnFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/DoiToBibtexConverterComIsbnFetcherTest.java similarity index 96% rename from src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/DoiToBibtexConverterComIsbnFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/DoiToBibtexConverterComIsbnFetcherTest.java index 0034c3360c3..e3b9df8cb31 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/DoiToBibtexConverterComIsbnFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/DoiToBibtexConverterComIsbnFetcherTest.java @@ -59,7 +59,7 @@ public void searchByIdSuccessfulWithLongISBN() { @Test @Override - public void authorsAreCorrectlyFormatted() throws Exception { + public void authorsAreCorrectlyFormatted() throws FetcherException { BibEntry bibEntry = new BibEntry(StandardEntryType.Book) .withField(StandardField.TITLE, "Repository") .withField(StandardField.ISBN, "9783110702125") @@ -83,7 +83,7 @@ void searchByIdFailedWithLongISBN() { } @Test - void searchByIdFailedWithShortISBN() throws FetcherException { + void searchByIdFailedWithShortISBN() { assertThrows(FetcherClientException.class, () -> fetcher.performSearchById("0321356683")); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/EbookDeIsbnFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/EbookDeIsbnFetcherTest.java similarity index 96% rename from src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/EbookDeIsbnFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/EbookDeIsbnFetcherTest.java index 985602bcdec..b229d557600 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/EbookDeIsbnFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/EbookDeIsbnFetcherTest.java @@ -63,7 +63,7 @@ public void searchByIdSuccessfulWithLongISBN() throws FetcherException { @Test @Override - public void authorsAreCorrectlyFormatted() throws Exception { + public void authorsAreCorrectlyFormatted() throws FetcherException { BibEntry bibEntry = new BibEntry(StandardEntryType.Book) .withCitationKey("9783662585856") .withField(StandardField.TITLE, "Fundamentals of Business Process Management") @@ -85,7 +85,7 @@ public void authorsAreCorrectlyFormatted() throws Exception { * not available on ebook.de. */ @Test - void searchForValidButNotFoundISBN() throws Exception { + void searchForValidButNotFoundISBN() { assertThrows(FetcherClientException.class, () -> fetcher.performSearchById("3728128155")); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/GVKIsbnFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/GVKIsbnFetcherTest.java similarity index 96% rename from src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/GVKIsbnFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/GVKIsbnFetcherTest.java index b1b5f08fb1a..a56b62436c1 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/GVKIsbnFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/GVKIsbnFetcherTest.java @@ -71,7 +71,7 @@ public void searchByIdSuccessfulWithLongISBN() throws FetcherException { @Test @Override - public void authorsAreCorrectlyFormatted() throws Exception { + public void authorsAreCorrectlyFormatted() throws FetcherException { BibEntry bibEntry = new BibEntry(StandardEntryType.Book) .withField(StandardField.TITLE, "Repository") .withField(StandardField.SUBTITLE, "Eine Einführung") @@ -96,14 +96,14 @@ public void authorsAreCorrectlyFormatted() throws Exception { * Checks whether the given ISBN is NOT available at any ISBN fetcher */ @Test - void isbnNeitherAvailableOnEbookDeNorOrViaOpenLibrary() throws Exception { + void isbnNeitherAvailableOnEbookDeNorOrViaOpenLibrary() throws FetcherException { // In this test, the ISBN needs to be a valid (syntax+checksum) ISBN number // However, the ISBN number must not be assigned to a real book assertEquals(Optional.empty(), fetcher.performSearchById("9785646216541")); } @Test - void eResourceIsbnIsReturnedAsBoook() throws Exception { + void eResourceIsbnIsReturnedAsBoook() throws FetcherException { assertEquals(Optional.of(StandardEntryType.Book), fetcher.performSearchById("978-0-8229-4557-4").map(BibEntry::getType)); } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/IsbnFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/IsbnFetcherTest.java similarity index 97% rename from src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/IsbnFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/IsbnFetcherTest.java index df4df8c8253..8e235ffcba3 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/IsbnFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/IsbnFetcherTest.java @@ -1,6 +1,5 @@ package org.jabref.logic.importer.fetcher.isbntobibtex; -import java.util.Collections; import java.util.List; import java.util.Optional; @@ -87,7 +86,7 @@ void searchByEntryWithISBNSuccessful() throws FetcherException { BibEntry input = new BibEntry().withField(StandardField.ISBN, "0134685997"); List fetchedEntry = fetcher.performSearch(input); - assertEquals(Collections.singletonList(bibEntry), fetchedEntry); + assertEquals(List.of(bibEntry), fetchedEntry); } /** diff --git a/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/OpenLibraryIsbnFetcherTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/OpenLibraryIsbnFetcherTest.java similarity index 95% rename from src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/OpenLibraryIsbnFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/OpenLibraryIsbnFetcherTest.java index f88b2ad91db..982e38e0d5d 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/OpenLibraryIsbnFetcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/isbntobibtex/OpenLibraryIsbnFetcherTest.java @@ -55,7 +55,7 @@ public void searchByIdSuccessfulWithLongISBN() throws FetcherException { @Test @Override - public void authorsAreCorrectlyFormatted() throws Exception { + public void authorsAreCorrectlyFormatted() throws FetcherException { BibEntry bibEntry = new BibEntry(StandardEntryType.Book) .withField(StandardField.TITLE, "Repository Eine Einführung") .withField(StandardField.SUBTITLE, "Eine Einführung") @@ -71,7 +71,7 @@ public void authorsAreCorrectlyFormatted() throws Exception { * Checks whether the given ISBN is NOT available at any ISBN fetcher */ @Test - void isbnNeitherAvailableOnEbookDeNorOrViaOpenLibrary() throws Exception { + void isbnNeitherAvailableOnEbookDeNorOrViaOpenLibrary() { // In this test, the ISBN needs to be a valid (syntax+checksum) ISBN number // However, the ISBN number must not be assigned to a real book assertThrows(FetcherClientException.class, () -> fetcher.performSearchById("9785646216541")); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/ArXivQueryTransformerTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/ArXivQueryTransformerTest.java similarity index 90% rename from src/test/java/org/jabref/logic/importer/fetcher/transformers/ArXivQueryTransformerTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/ArXivQueryTransformerTest.java index 26c5f283972..04487f81d3a 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/ArXivQueryTransformerTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/ArXivQueryTransformerTest.java @@ -2,6 +2,7 @@ import java.util.Optional; +import org.apache.lucene.queryparser.flexible.core.QueryNodeParseException; import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; import org.junit.jupiter.api.Test; @@ -37,7 +38,7 @@ public String getTitlePrefix() { @Override @Test - public void convertYearField() throws Exception { + public void convertYearField() throws QueryNodeParseException { ArXivQueryTransformer transformer = getTransformer(); String queryString = "year:2018"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/CiteSeerQueryTransformerTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/CiteSeerQueryTransformerTest.java similarity index 92% rename from src/test/java/org/jabref/logic/importer/fetcher/transformers/CiteSeerQueryTransformerTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/CiteSeerQueryTransformerTest.java index dacf6d25f9d..27143e76001 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/CiteSeerQueryTransformerTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/CiteSeerQueryTransformerTest.java @@ -6,7 +6,6 @@ import java.util.Optional; import java.util.stream.Stream; -import org.jabref.logic.importer.FetcherException; import org.jabref.model.strings.StringUtil; import kong.unirest.core.json.JSONObject; @@ -29,7 +28,7 @@ protected CiteSeerQueryTransformer getTransformer() { @Override @Test - public void convertYearField() throws Exception { + public void convertYearField() throws QueryNodeParseException { String queryString = "year:2023"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); CiteSeerQueryTransformer transformer = getTransformer(); @@ -43,7 +42,7 @@ public void convertYearField() throws Exception { @Override @Test - public void convertYearRangeField() throws Exception { + public void convertYearRangeField() throws QueryNodeParseException { String queryString = "year-range:2019-2023"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); CiteSeerQueryTransformer transformer = getTransformer(); @@ -56,7 +55,7 @@ public void convertYearRangeField() throws Exception { } @Test - void convertPageField() throws Exception { + void convertPageField() throws QueryNodeParseException { String queryString = "page:2"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); CiteSeerQueryTransformer transformer = getTransformer(); @@ -67,7 +66,7 @@ void convertPageField() throws Exception { } @Test - void convertPageSizeField() throws Exception { + void convertPageSizeField() throws QueryNodeParseException { String queryString = "pageSize:20"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); CiteSeerQueryTransformer transformer = getTransformer(); @@ -78,7 +77,7 @@ void convertPageSizeField() throws Exception { } @Test - void convertSortByField() throws Exception { + void convertSortByField() throws QueryNodeParseException { String queryString = "sortBy:relevance"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); CiteSeerQueryTransformer transformer = getTransformer(); @@ -89,7 +88,7 @@ void convertSortByField() throws Exception { } @Test - void convertMultipleAuthors() throws Exception { + void convertMultipleAuthors() throws QueryNodeParseException { String queryString = "author:\"Wang Wei\" author:\"Zhang Pingwen\" author:\"Zhang Zhifei\""; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); CiteSeerQueryTransformer transformer = getTransformer(); @@ -100,7 +99,7 @@ void convertMultipleAuthors() throws Exception { assertEquals(authorsExpected, authorsActual); } - private static Stream getJSONWithYearVariations() throws FetcherException { + private static Stream getJSONWithYearVariations() { String baseString = "title:Ericksen-Leslie page:1 pageSize:20 must_have_pdf:false sortBy:relevance"; List withYearAndYearRange = List.of( StringUtil.join(new String[]{baseString, "year:2020"}, " ", 0, 2), @@ -116,7 +115,7 @@ private static Stream getJSONWithYearVariations() throws FetcherExcep List actualJSONObjects = new ArrayList<>(); withYearAndYearRange.forEach(requestStr -> { - QueryNode luceneQuery = null; + QueryNode luceneQuery; try { luceneQuery = new StandardSyntaxParser().parse(requestStr, AbstractQueryTransformer.NO_EXPLICIT_FIELD); } catch (QueryNodeParseException e) { @@ -136,7 +135,7 @@ private static Stream getJSONWithYearVariations() throws FetcherExcep @ParameterizedTest @MethodSource("getJSONWithYearVariations") - void compareJSONRequestsWithYearVariations(JSONObject expected, Integer yearStart, Integer yearEnd, JSONObject actual) throws Exception { + void compareJSONRequestsWithYearVariations(JSONObject expected, Integer yearStart, Integer yearEnd, JSONObject actual) { expected.put("yearStart", yearStart); expected.put("yearEnd", yearEnd); assertEquals(expected, actual); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/CollectionOfComputerScienceBibliographiesQueryTransformerTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/CollectionOfComputerScienceBibliographiesQueryTransformerTest.java similarity index 88% rename from src/test/java/org/jabref/logic/importer/fetcher/transformers/CollectionOfComputerScienceBibliographiesQueryTransformerTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/CollectionOfComputerScienceBibliographiesQueryTransformerTest.java index 93f421bdc54..69187f412be 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/CollectionOfComputerScienceBibliographiesQueryTransformerTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/CollectionOfComputerScienceBibliographiesQueryTransformerTest.java @@ -2,6 +2,7 @@ import java.util.Optional; +import org.apache.lucene.queryparser.flexible.core.QueryNodeParseException; import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; import org.junit.jupiter.api.Test; @@ -37,7 +38,7 @@ public String getTitlePrefix() { @Override @Test - public void convertYearField() throws Exception { + public void convertYearField() throws QueryNodeParseException { String queryString = "year:2018"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional query = getTransformer().transformLuceneQuery(luceneQuery); @@ -46,7 +47,7 @@ public void convertYearField() throws Exception { @Override @Test - public void convertYearRangeField() throws Exception { + public void convertYearRangeField() throws QueryNodeParseException { String queryString = "year-range:2018-2021"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional query = getTransformer().transformLuceneQuery(luceneQuery); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/DBLPQueryTransformerTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/DBLPQueryTransformerTest.java similarity index 89% rename from src/test/java/org/jabref/logic/importer/fetcher/transformers/DBLPQueryTransformerTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/DBLPQueryTransformerTest.java index 8851f075daf..c4826af85e8 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/DBLPQueryTransformerTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/DBLPQueryTransformerTest.java @@ -2,6 +2,7 @@ import java.util.Optional; +import org.apache.lucene.queryparser.flexible.core.QueryNodeParseException; import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; import org.junit.jupiter.api.Test; @@ -37,7 +38,7 @@ public String getTitlePrefix() { @Override @Test - public void convertYearField() throws Exception { + public void convertYearField() throws QueryNodeParseException { String queryString = "year:2015"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); DBLPQueryTransformer transformer = getTransformer(); @@ -49,7 +50,7 @@ public void convertYearField() throws Exception { @Override @Test - public void convertYearRangeField() throws Exception { + public void convertYearRangeField() throws QueryNodeParseException { String queryString = "year-range:2012-2015"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); DBLPQueryTransformer transformer = getTransformer(); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/DefaultQueryTransformerTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/DefaultQueryTransformerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/fetcher/transformers/DefaultQueryTransformerTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/DefaultQueryTransformerTest.java diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/GVKQueryTransformerTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/GVKQueryTransformerTest.java similarity index 88% rename from src/test/java/org/jabref/logic/importer/fetcher/transformers/GVKQueryTransformerTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/GVKQueryTransformerTest.java index 4ffdc684466..fba68a3daab 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/GVKQueryTransformerTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/GVKQueryTransformerTest.java @@ -2,6 +2,7 @@ import java.util.Optional; +import org.apache.lucene.queryparser.flexible.core.QueryNodeParseException; import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; import org.junit.jupiter.api.Disabled; @@ -38,7 +39,7 @@ public String getTitlePrefix() { @Override @Test - public void convertYearField() throws Exception { + public void convertYearField() throws QueryNodeParseException { String queryString = "year:2018"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional query = getTransformer().transformLuceneQuery(luceneQuery); @@ -50,6 +51,6 @@ public void convertYearField() throws Exception { @Disabled("Not supported by GVK") @Override @Test - public void convertYearRangeField() throws Exception { + public void convertYearRangeField() { } } diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/IEEEQueryTransformerTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/IEEEQueryTransformerTest.java similarity index 91% rename from src/test/java/org/jabref/logic/importer/fetcher/transformers/IEEEQueryTransformerTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/IEEEQueryTransformerTest.java index 3044c5cf784..1ad8b2e1fb5 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/IEEEQueryTransformerTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/IEEEQueryTransformerTest.java @@ -3,6 +3,7 @@ import java.util.Optional; import java.util.stream.Stream; +import org.apache.lucene.queryparser.flexible.core.QueryNodeParseException; import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; import org.junit.jupiter.api.Test; @@ -41,7 +42,7 @@ public String getTitlePrefix() { @Override @Test - public void convertJournalFieldPrefix() throws Exception { + public void convertJournalFieldPrefix() throws QueryNodeParseException { IEEEQueryTransformer transformer = getTransformer(); String queryString = "journal:Nature"; @@ -53,7 +54,7 @@ public void convertJournalFieldPrefix() throws Exception { @Override @Test - public void convertYearField() throws Exception { + public void convertYearField() throws QueryNodeParseException { // IEEE does not support year range // Thus, a generic test does not work @@ -69,7 +70,7 @@ public void convertYearField() throws Exception { @Override @Test - public void convertYearRangeField() throws Exception { + public void convertYearRangeField() throws QueryNodeParseException { IEEEQueryTransformer transformer = getTransformer(); String queryString = "year-range:2018-2021"; @@ -90,7 +91,7 @@ private static Stream getTitleTestData() { @ParameterizedTest @MethodSource("getTitleTestData") - void stopWordRemoval(String expected, String queryString) throws Exception { + void stopWordRemoval(String expected, String queryString) throws QueryNodeParseException { QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional result = getTransformer().transformLuceneQuery(luceneQuery); assertEquals(Optional.ofNullable(expected), result); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/InfixTransformerTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/InfixTransformerTest.java similarity index 86% rename from src/test/java/org/jabref/logic/importer/fetcher/transformers/InfixTransformerTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/InfixTransformerTest.java index c27584fa1b8..42e099d024e 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/InfixTransformerTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/InfixTransformerTest.java @@ -2,6 +2,7 @@ import java.util.Optional; +import org.apache.lucene.queryparser.flexible.core.QueryNodeParseException; import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; import org.junit.jupiter.api.Test; @@ -36,7 +37,7 @@ protected String getTitlePrefix() { } @Test - public void convertAuthorFieldPrefix() throws Exception { + public void convertAuthorFieldPrefix() throws QueryNodeParseException { String queryString = "author:\"Igor Steinmacher\""; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional searchQuery = getTransformer().transformLuceneQuery(luceneQuery); @@ -45,7 +46,7 @@ public void convertAuthorFieldPrefix() throws Exception { } @Test - public void convertUnFieldedTermPrefix() throws Exception { + public void convertUnFieldedTermPrefix() throws QueryNodeParseException { String queryString = "\"default value\""; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional searchQuery = getTransformer().transformLuceneQuery(luceneQuery); @@ -54,7 +55,7 @@ public void convertUnFieldedTermPrefix() throws Exception { } @Test - public void convertExplicitUnFieldedTermPrefix() throws Exception { + public void convertExplicitUnFieldedTermPrefix() throws QueryNodeParseException { String queryString = "default:\"default value\""; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional searchQuery = getTransformer().transformLuceneQuery(luceneQuery); @@ -63,7 +64,7 @@ public void convertExplicitUnFieldedTermPrefix() throws Exception { } @Test - public void convertJournalFieldPrefix() throws Exception { + public void convertJournalFieldPrefix() throws QueryNodeParseException { String queryString = "journal:Nature"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional searchQuery = getTransformer().transformLuceneQuery(luceneQuery); @@ -72,13 +73,13 @@ public void convertJournalFieldPrefix() throws Exception { } @Test - public abstract void convertYearField() throws Exception; + public abstract void convertYearField() throws QueryNodeParseException; @Test - public abstract void convertYearRangeField() throws Exception; + public abstract void convertYearRangeField() throws QueryNodeParseException; @Test - public void convertMultipleValuesWithTheSameFieldPrefix() throws Exception { + public void convertMultipleValuesWithTheSameFieldPrefix() throws QueryNodeParseException { String queryString = "author:\"Igor Steinmacher\" author:\"Christoph Treude\""; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional searchQuery = getTransformer().transformLuceneQuery(luceneQuery); @@ -87,7 +88,7 @@ public void convertMultipleValuesWithTheSameFieldPrefix() throws Exception { } @Test - public void groupedOperationsPrefix() throws Exception { + public void groupedOperationsPrefix() throws QueryNodeParseException { String queryString = "(author:\"Igor Steinmacher\" OR author:\"Christoph Treude\" AND author:\"Christoph Freunde\") AND title:test"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional searchQuery = getTransformer().transformLuceneQuery(luceneQuery); @@ -96,7 +97,7 @@ public void groupedOperationsPrefix() throws Exception { } @Test - public void notOperatorPrefix() throws Exception { + public void notOperatorPrefix() throws QueryNodeParseException { String queryString = "!(author:\"Igor Steinmacher\" OR author:\"Christoph Treude\")"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional searchQuery = getTransformer().transformLuceneQuery(luceneQuery); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/JstorQueryTransformerTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/JstorQueryTransformerTest.java similarity index 87% rename from src/test/java/org/jabref/logic/importer/fetcher/transformers/JstorQueryTransformerTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/JstorQueryTransformerTest.java index 8baeb76555c..c72d030e93b 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/JstorQueryTransformerTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/JstorQueryTransformerTest.java @@ -2,6 +2,7 @@ import java.util.Optional; +import org.apache.lucene.queryparser.flexible.core.QueryNodeParseException; import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; import org.junit.jupiter.api.Test; @@ -37,7 +38,7 @@ public String getTitlePrefix() { @Override @Test - public void convertYearField() throws Exception { + public void convertYearField() throws QueryNodeParseException { String queryString = "year:2018"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional query = getTransformer().transformLuceneQuery(luceneQuery); @@ -46,7 +47,7 @@ public void convertYearField() throws Exception { @Override @Test - public void convertYearRangeField() throws Exception { + public void convertYearRangeField() throws QueryNodeParseException { String queryString = "year-range:2018-2021"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional query = getTransformer().transformLuceneQuery(luceneQuery); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/ScholarQueryTransformerTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/ScholarQueryTransformerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/fetcher/transformers/ScholarQueryTransformerTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/ScholarQueryTransformerTest.java diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/SpringerQueryTransformerTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/SpringerQueryTransformerTest.java similarity index 88% rename from src/test/java/org/jabref/logic/importer/fetcher/transformers/SpringerQueryTransformerTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/SpringerQueryTransformerTest.java index 81bba3e7715..af6b55cfb82 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/SpringerQueryTransformerTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/SpringerQueryTransformerTest.java @@ -2,6 +2,7 @@ import java.util.Optional; +import org.apache.lucene.queryparser.flexible.core.QueryNodeParseException; import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; import org.junit.jupiter.api.Test; @@ -37,7 +38,7 @@ public String getTitlePrefix() { @Override @Test - public void convertYearField() throws Exception { + public void convertYearField() throws QueryNodeParseException { String queryString = "year:2015"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional searchQuery = getTransformer().transformLuceneQuery(luceneQuery); @@ -48,7 +49,7 @@ public void convertYearField() throws Exception { @Override @Test - public void convertYearRangeField() throws Exception { + public void convertYearRangeField() throws QueryNodeParseException { String queryString = "year-range:2012-2015"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional searchQuery = getTransformer().transformLuceneQuery(luceneQuery); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/SuffixTransformerTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/SuffixTransformerTest.java similarity index 87% rename from src/test/java/org/jabref/logic/importer/fetcher/transformers/SuffixTransformerTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/SuffixTransformerTest.java index 31b3b2239a6..faf8fc7ecb8 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/SuffixTransformerTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/SuffixTransformerTest.java @@ -2,6 +2,7 @@ import java.util.Optional; +import org.apache.lucene.queryparser.flexible.core.QueryNodeParseException; import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; import org.junit.jupiter.api.Test; @@ -24,7 +25,7 @@ public abstract class SuffixTransformerTest protected abstract String getTitleSuffix(); @Test - public void convertAuthorFieldSuffix() throws Exception { + public void convertAuthorFieldSuffix() throws QueryNodeParseException { String queryString = "author:\"Igor Steinmacher\""; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional searchQuery = getTransformer().transformLuceneQuery(luceneQuery); @@ -33,7 +34,7 @@ public void convertAuthorFieldSuffix() throws Exception { } @Test - public void convertUnFieldedTermSuffix() throws Exception { + public void convertUnFieldedTermSuffix() throws QueryNodeParseException { String queryString = "\"default value\""; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional searchQuery = getTransformer().transformLuceneQuery(luceneQuery); @@ -42,7 +43,7 @@ public void convertUnFieldedTermSuffix() throws Exception { } @Test - public void convertExplicitUnFieldedTermSuffix() throws Exception { + public void convertExplicitUnFieldedTermSuffix() throws QueryNodeParseException { String queryString = "default:\"default value\""; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional searchQuery = getTransformer().transformLuceneQuery(luceneQuery); @@ -51,7 +52,7 @@ public void convertExplicitUnFieldedTermSuffix() throws Exception { } @Test - public void convertJournalFieldSuffix() throws Exception { + public void convertJournalFieldSuffix() throws QueryNodeParseException { String queryString = "journal:Nature"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional searchQuery = getTransformer().transformLuceneQuery(luceneQuery); @@ -60,13 +61,13 @@ public void convertJournalFieldSuffix() throws Exception { } @Test - public abstract void convertYearField() throws Exception; + public abstract void convertYearField(); @Test - public abstract void convertYearRangeField() throws Exception; + public abstract void convertYearRangeField(); @Test - public void convertMultipleValuesWithTheSameSuffix() throws Exception { + public void convertMultipleValuesWithTheSameSuffix() throws QueryNodeParseException { String queryString = "author:\"Igor Steinmacher\" author:\"Christoph Treude\""; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional searchQuery = getTransformer().transformLuceneQuery(luceneQuery); @@ -75,7 +76,7 @@ public void convertMultipleValuesWithTheSameSuffix() throws Exception { } @Test - public void groupedOperationsSuffix() throws Exception { + public void groupedOperationsSuffix() throws QueryNodeParseException { String queryString = "(author:\"Igor Steinmacher\" OR author:\"Christoph Treude\" AND author:\"Christoph Freunde\") AND title:test"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional searchQuery = getTransformer().transformLuceneQuery(luceneQuery); @@ -84,7 +85,7 @@ public void groupedOperationsSuffix() throws Exception { } @Test - public void notOperatorSufix() throws Exception { + public void notOperatorSufix() throws QueryNodeParseException { String queryString = "!(author:\"Igor Steinmacher\" OR author:\"Christoph Treude\")"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional searchQuery = getTransformer().transformLuceneQuery(luceneQuery); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearAndYearRangeByFilteringQueryTransformerTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearAndYearRangeByFilteringQueryTransformerTest.java similarity index 88% rename from src/test/java/org/jabref/logic/importer/fetcher/transformers/YearAndYearRangeByFilteringQueryTransformerTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearAndYearRangeByFilteringQueryTransformerTest.java index 3c327b65c16..8811acd59c4 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearAndYearRangeByFilteringQueryTransformerTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearAndYearRangeByFilteringQueryTransformerTest.java @@ -2,6 +2,7 @@ import java.util.Optional; +import org.apache.lucene.queryparser.flexible.core.QueryNodeParseException; import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; import org.junit.jupiter.api.Test; @@ -11,7 +12,7 @@ public abstract class YearAndYearRangeByFilteringQueryTransformerTest extends YearRangeByFilteringQueryTransformerTest { @Override @Test - public void convertYearField() throws Exception { + public void convertYearField() throws QueryNodeParseException { YearAndYearRangeByFilteringQueryTransformer transformer = getTransformer(); String queryString = "year:2021"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); diff --git a/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearRangeByFilteringQueryTransformerTest.java b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearRangeByFilteringQueryTransformerTest.java similarity index 89% rename from src/test/java/org/jabref/logic/importer/fetcher/transformers/YearRangeByFilteringQueryTransformerTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearRangeByFilteringQueryTransformerTest.java index 3f8730addb9..5f56c79d17d 100644 --- a/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearRangeByFilteringQueryTransformerTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fetcher/transformers/YearRangeByFilteringQueryTransformerTest.java @@ -2,6 +2,7 @@ import java.util.Optional; +import org.apache.lucene.queryparser.flexible.core.QueryNodeParseException; import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; import org.apache.lucene.queryparser.flexible.standard.parser.StandardSyntaxParser; import org.junit.jupiter.api.Test; @@ -12,7 +13,7 @@ public abstract class YearRangeByFilteringQueryTransformerTest searchQuery = getTransformer().transformLuceneQuery(luceneQuery); @@ -47,7 +48,7 @@ public void convertYearField() throws Exception { @Override @Test - public void convertYearRangeField() throws Exception { + public void convertYearRangeField() throws QueryNodeParseException { String queryString = "year-range:2012-2015"; QueryNode luceneQuery = new StandardSyntaxParser().parse(queryString, AbstractQueryTransformer.NO_EXPLICIT_FIELD); Optional searchQuery = getTransformer().transformLuceneQuery(luceneQuery); diff --git a/src/test/java/org/jabref/logic/importer/fileformat/ACMPortalParserTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/ACMPortalParserTest.java similarity index 96% rename from src/test/java/org/jabref/logic/importer/fileformat/ACMPortalParserTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/ACMPortalParserTest.java index 80dfde0ac8c..46b74f1cbf3 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/ACMPortalParserTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/ACMPortalParserTest.java @@ -5,11 +5,11 @@ import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URL; -import java.util.Collections; import java.util.List; import java.util.Optional; import org.jabref.logic.importer.FetcherException; +import org.jabref.logic.importer.ParseException; import org.jabref.logic.net.URLDownload; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; @@ -67,7 +67,7 @@ void setUp() throws URISyntaxException, MalformedURLException { } @Test - void parseEntries() throws Exception { + void parseEntries() throws FetcherException, ParseException { CookieHandler.setDefault(new CookieManager()); List bibEntries = parser.parseEntries(new URLDownload(searchUrl).asInputStream()); for (BibEntry bibEntry : bibEntries) { @@ -77,7 +77,7 @@ void parseEntries() throws Exception { } @Test - void parseDoiSearchPage() throws Exception { + void parseDoiSearchPage() throws FetcherException, ParseException { String testDoi = "10.1145/3129790.3129810"; CookieHandler.setDefault(new CookieManager()); List doiList = parser.parseDoiSearchPage(new URLDownload(searchUrl).asInputStream()); @@ -137,10 +137,10 @@ void parseBibEntryWithFamilyAuthorOnly() { } @Test - void noEntryFound() throws Exception { + void noEntryFound() throws URISyntaxException, FetcherException, MalformedURLException, ParseException { CookieHandler.setDefault(new CookieManager()); URL url = new URIBuilder("https://dl.acm.org/action/doSearch?AllField=10.1145/3129790.31298").build().toURL(); List bibEntries = parser.parseEntries(new URLDownload(url).asInputStream()); - assertEquals(Collections.emptyList(), bibEntries); + assertEquals(List.of(), bibEntries); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/BibliographyFromPdfImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/BibliographyFromPdfImporterTest.java similarity index 99% rename from src/test/java/org/jabref/logic/importer/fileformat/BibliographyFromPdfImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/BibliographyFromPdfImporterTest.java index 661f30c04b2..0f99beccf90 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/BibliographyFromPdfImporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/BibliographyFromPdfImporterTest.java @@ -1,5 +1,6 @@ package org.jabref.logic.importer.fileformat; +import java.net.URISyntaxException; import java.nio.file.Path; import java.util.List; import java.util.stream.Stream; @@ -143,7 +144,7 @@ void setup() { } @Test - void tua3i2refpage() throws Exception { + void tua3i2refpage() throws URISyntaxException { Path file = Path.of(BibliographyFromPdfImporterTest.class.getResource("/pdfs/IEEE/tua3i2refpage.pdf").toURI()); ParserResult parserResult = bibliographyFromPdfImporter.importDatabase(file); BibEntry entry02 = new BibEntry(StandardEntryType.Article) @@ -262,7 +263,7 @@ void tua3i2refpage() throws Exception { } @Test - void ieeePaper() throws Exception { + void ieeePaper() throws URISyntaxException { Path file = Path.of(BibliographyFromPdfImporterTest.class.getResource("/pdfs/IEEE/ieee-paper.pdf").toURI()); ParserResult parserResult = bibliographyFromPdfImporter.importDatabase(file); assertEquals(List.of(ALVER2007, ALVER2007A, KOPP2012, KOPPP2018, KOENIG2023), parserResult.getDatabase().getEntries()); diff --git a/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterFilesTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterFilesTest.java similarity index 88% rename from src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterFilesTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterFilesTest.java index e30bb8b8371..506dd91a2ee 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterFilesTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterFilesTest.java @@ -4,6 +4,8 @@ import java.util.function.Predicate; import java.util.stream.Stream; +import org.jabref.logic.importer.ImportException; + import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -25,7 +27,7 @@ void isRecognizedFormat(String fileName) throws IOException { @ParameterizedTest @MethodSource("fileNames") - void importEntries(String fileName) throws Exception { + void importEntries(String fileName) throws ImportException, IOException { ImporterTestEngine.testImportEntries(new BiblioscapeImporter(), fileName, FILE_ENDING); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTest.java similarity index 91% rename from src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTest.java index 8909cad12f1..a26d1822a07 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTest.java @@ -1,7 +1,7 @@ package org.jabref.logic.importer.fileformat; import java.nio.file.Path; -import java.util.Collections; +import java.util.List; import org.jabref.logic.util.StandardFileType; @@ -15,7 +15,7 @@ class BiblioscapeImporterTest { private BiblioscapeImporter importer; @BeforeEach - void setUp() throws Exception { + void setUp() { importer = new BiblioscapeImporter(); } @@ -43,7 +43,7 @@ void getCLIID() { @Test void importEntriesAbortion() throws Throwable { Path file = Path.of(BiblioscapeImporter.class.getResource("BiblioscapeImporterTestCorrupt.txt").toURI()); - assertEquals(Collections.emptyList(), + assertEquals(List.of(), importer.importDatabase(file).getDatabase().getEntries()); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTypesTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTypesTest.java similarity index 92% rename from src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTypesTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTypesTest.java index a0fbfd3dafa..4bf3b891440 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTypesTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/BiblioscapeImporterTypesTest.java @@ -2,8 +2,7 @@ import java.io.BufferedReader; import java.io.IOException; -import java.io.StringReader; -import java.util.Collections; +import java.io.Reader; import java.util.List; import java.util.stream.Stream; @@ -40,7 +39,7 @@ void importConvertsToCorrectBibType(String biblioscapeType, EntryType bibtexType String bsInput = "--AU-- Baklouti, F.\n" + "--YP-- 1999\n" + "--KW-- Cells; Rna; Isoforms\n" + "--TI-- Blood\n" + "--RT-- " + biblioscapeType + "\n" + "------"; - List bibEntries = new BiblioscapeImporter().importDatabase(new BufferedReader(new StringReader(bsInput))) + List bibEntries = new BiblioscapeImporter().importDatabase(new BufferedReader(Reader.of(bsInput))) .getDatabase().getEntries(); BibEntry entry = new BibEntry(); @@ -50,6 +49,6 @@ void importConvertsToCorrectBibType(String biblioscapeType, EntryType bibtexType entry.setField(StandardField.YEAR, "1999"); entry.setType(bibtexType); - assertEquals(Collections.singletonList(entry), bibEntries); + assertEquals(List.of(entry), bibEntries); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/BibtexImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/BibtexImporterTest.java similarity index 96% rename from src/test/java/org/jabref/logic/importer/fileformat/BibtexImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/BibtexImporterTest.java index 3a3465ac620..a4f3bedda03 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/BibtexImporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/BibtexImporterTest.java @@ -131,7 +131,7 @@ void getExtensions() { } @Test - void recognizesDatabaseID() throws Exception { + void recognizesDatabaseID() throws IOException, URISyntaxException { Path file = Path.of(BibtexImporterTest.class.getResource("AutosavedSharedDatabase.bib").toURI()); String sharedDatabaseID = importer.importDatabase(file).getDatabase().getSharedDatabaseID().get(); assertEquals("13ceoc8dm42f5g1iitao3dj2ap", sharedDatabaseID); @@ -149,7 +149,7 @@ static Stream parsingOfEncodedFileWithHeader() { @ParameterizedTest @MethodSource - void parsingOfEncodedFileWithHeader(Charset charset, String fileName) throws Exception { + void parsingOfEncodedFileWithHeader(Charset charset, String fileName) throws URISyntaxException, IOException { ParserResult parserResult = importer.importDatabase( Path.of(BibtexImporterTest.class.getResource(fileName).toURI())); assertEquals(Optional.of(charset), parserResult.getMetaData().getEncoding()); @@ -157,7 +157,7 @@ void parsingOfEncodedFileWithHeader(Charset charset, String fileName) throws Exc @ParameterizedTest @CsvSource({"encoding-windows-1252-with-header.bib", "encoding-windows-1252-without-header.bib"}) - void parsingOfWindows1252EncodedFileReadsDegreeCharacterCorrectly(String filename) throws Exception { + void parsingOfWindows1252EncodedFileReadsDegreeCharacterCorrectly(String filename) throws URISyntaxException, IOException { ParserResult parserResult = importer.importDatabase( Path.of(BibtexImporterTest.class.getResource(filename).toURI())); assertEquals( @@ -168,7 +168,7 @@ void parsingOfWindows1252EncodedFileReadsDegreeCharacterCorrectly(String filenam @ParameterizedTest @CsvSource({"encoding-utf-8-with-header.bib", "encoding-utf-8-without-header.bib", "encoding-utf-16BE-with-header.bib", "encoding-utf-16BE-without-header.bib"}) - void parsingFilesReadsUmlautCharacterCorrectly(String filename) throws Exception { + void parsingFilesReadsUmlautCharacterCorrectly(String filename) throws URISyntaxException, IOException { ParserResult parserResult = importer.importDatabase( Path.of(BibtexImporterTest.class.getResource(filename).toURI())); assertEquals( @@ -187,14 +187,14 @@ private static Stream encodingExplicitlySuppliedCorrectlyDetermined() @ParameterizedTest @MethodSource - void encodingExplicitlySuppliedCorrectlyDetermined(String filename, boolean encodingExplicitlySupplied) throws Exception { + void encodingExplicitlySuppliedCorrectlyDetermined(String filename, boolean encodingExplicitlySupplied) throws URISyntaxException, IOException { ParserResult parserResult = importer.importDatabase( Path.of(BibtexImporterTest.class.getResource(filename).toURI())); assertEquals(encodingExplicitlySupplied, parserResult.getMetaData().getEncodingExplicitlySupplied()); } @Test - void wrongEncodingSupplied() throws Exception { + void wrongEncodingSupplied() throws URISyntaxException, IOException { ParserResult parserResult = importer.importDatabase( Path.of(BibtexImporterTest.class.getResource("encoding-windows-1252-but-utf-8-declared--decoding-fails.bib").toURI())); @@ -205,7 +205,7 @@ void wrongEncodingSupplied() throws Exception { } @Test - void encodingNotSupplied() throws Exception { + void encodingNotSupplied() throws URISyntaxException, IOException { ParserResult parserResult = importer.importDatabase( Path.of(BibtexImporterTest.class.getResource("encoding-utf-8-without-header.bib").toURI())); assertFalse(parserResult.getMetaData().getEncodingExplicitlySupplied()); diff --git a/src/test/java/org/jabref/logic/importer/fileformat/BibtexParserTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/BibtexParserTest.java similarity index 89% rename from src/test/java/org/jabref/logic/importer/fileformat/BibtexParserTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/BibtexParserTest.java index 8eb442f8a4b..3f981952758 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/BibtexParserTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/BibtexParserTest.java @@ -1,16 +1,16 @@ package org.jabref.logic.importer.fileformat; import java.io.IOException; -import java.io.StringReader; +import java.io.Reader; import java.net.InetAddress; import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Optional; +import java.util.Set; import javafx.collections.FXCollections; @@ -111,14 +111,14 @@ void fromStringRecognizesEntry() throws ParseException { @Test void fromStringReturnsEmptyListFromEmptyString() throws ParseException { Collection parsed = parser.parseEntries(""); - assertEquals(Collections.emptyList(), parsed); + assertEquals(List.of(), parsed); } @Test void fromStringReturnsEmptyListIfNoEntryRecognized() throws ParseException { Collection parsed = parser .parseEntries("@@article@@{{{{{{}"); - assertEquals(Collections.emptyList(), parsed); + assertEquals(List.of(), parsed); } @Test @@ -162,7 +162,7 @@ void singleFromStringReturnsEmptyIfNoEntryRecognized() throws ParseException { @Test void parseRecognizesEntry() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,author={Ed von Test}}")); + .parse(Reader.of("@article{test,author={Ed von Test}}")); BibEntry expected = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "Ed von Test"); @@ -172,7 +172,7 @@ void parseRecognizesEntry() throws IOException { @Test void parseRecognizesFieldValuesInQuotationMarks() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,author=\"Ed von Test\"}")); + .parse(Reader.of("@article{test,author=\"Ed von Test\"}")); BibEntry expected = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "Ed von Test"); @@ -181,7 +181,7 @@ void parseRecognizesFieldValuesInQuotationMarks() throws IOException { @Test void parseRecognizesEntryOnlyWithKey() throws IOException { - ParserResult result = parser.parse(new StringReader("@article{test}")); + ParserResult result = parser.parse(Reader.of("@article{test}")); BibEntry expected = new BibEntry(StandardEntryType.Article) .withCitationKey("test"); assertEquals(List.of(expected), result.getDatabase().getEntries()); @@ -190,7 +190,7 @@ void parseRecognizesEntryOnlyWithKey() throws IOException { @Test void parseRecognizesEntryWithWhitespaceAtBeginning() throws IOException { ParserResult result = parser - .parse(new StringReader(" @article{test,author={Ed von Test}}")); + .parse(Reader.of(" @article{test,author={Ed von Test}}")); BibEntry expected = new BibEntry(StandardEntryType.Article) .withUserComments(" ") .withCitationKey("test") @@ -201,7 +201,7 @@ void parseRecognizesEntryWithWhitespaceAtBeginning() throws IOException { @Test void parseRecognizesEntryWithWhitespace() throws IOException { ParserResult result = parser - .parse(new StringReader("@article { test,author={Ed von Test}}")); + .parse(Reader.of("@article { test,author={Ed von Test}}")); BibEntry expected = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "Ed von Test"); @@ -211,7 +211,7 @@ void parseRecognizesEntryWithWhitespace() throws IOException { @Test void parseRecognizesEntryWithNewlines() throws IOException { ParserResult result = parser - .parse(new StringReader("@article\n{\ntest,author={Ed von Test}}")); + .parse(Reader.of("@article\n{\ntest,author={Ed von Test}}")); BibEntry expected = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "Ed von Test"); @@ -221,7 +221,7 @@ void parseRecognizesEntryWithNewlines() throws IOException { @Test void parseRecognizesEntryWithUnknownType() throws IOException { ParserResult result = parser - .parse(new StringReader("@unknown{test,author={Ed von Test}}")); + .parse(Reader.of("@unknown{test,author={Ed von Test}}")); BibEntry expected = new BibEntry(new UnknownEntryType("unknown")) .withCitationKey("test") .withField(StandardField.AUTHOR, "Ed von Test"); @@ -231,7 +231,7 @@ void parseRecognizesEntryWithUnknownType() throws IOException { @Test void parseRecognizesEntryWithVeryLongType() throws IOException { ParserResult result = parser.parse( - new StringReader("@thisIsALongStringToTestMaybeItIsToLongWhoKnowsNOTme{test,author={Ed von Test}}")); + Reader.of("@thisIsALongStringToTestMaybeItIsToLongWhoKnowsNOTme{test,author={Ed von Test}}")); BibEntry expected = new BibEntry(new UnknownEntryType("thisisalongstringtotestmaybeitistolongwhoknowsnotme")) .withCitationKey("test") .withField(StandardField.AUTHOR, "Ed von Test"); @@ -241,7 +241,7 @@ void parseRecognizesEntryWithVeryLongType() throws IOException { @Test void parseRecognizesEntryInParenthesis() throws IOException { ParserResult result = parser - .parse(new StringReader("@article(test,author={Ed von Test})")); + .parse(Reader.of("@article(test,author={Ed von Test})")); BibEntry expected = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "Ed von Test"); @@ -250,7 +250,7 @@ void parseRecognizesEntryInParenthesis() throws IOException { @Test void parseRecognizesEntryWithBigNumbers() throws IOException { - ParserResult result = parser.parse(new StringReader(""" + ParserResult result = parser.parse(Reader.of(""" @article{canh05,isbn = 1234567890123456789, isbn2 = {1234567890123456789}, small = 1234, @@ -266,7 +266,7 @@ void parseRecognizesEntryWithBigNumbers() throws IOException { @Test void parseRecognizesCitationKeyWithSpecialCharacters() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{te_st:with-special(characters),author={Ed von Test}}")); + .parse(Reader.of("@article{te_st:with-special(characters),author={Ed von Test}}")); BibEntry expected = new BibEntry(StandardEntryType.Article) .withCitationKey("te_st:with-special(characters)") .withField(StandardField.AUTHOR, "Ed von Test"); @@ -276,7 +276,7 @@ void parseRecognizesCitationKeyWithSpecialCharacters() throws IOException { @Test void parseRecognizesEntryWhereLastFieldIsFinishedWithComma() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,author={Ed von Test},}")); + .parse(Reader.of("@article{test,author={Ed von Test},}")); BibEntry expected = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "Ed von Test"); @@ -286,7 +286,7 @@ void parseRecognizesEntryWhereLastFieldIsFinishedWithComma() throws IOException @Test void parseRecognizesEntryWithAtInField() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,author={Ed von T@st}}")); + .parse(Reader.of("@article{test,author={Ed von T@st}}")); BibEntry expected = new BibEntry(StandardEntryType.Article) .withField(InternalField.KEY_FIELD, "test") .withField(StandardField.AUTHOR, "Ed von T@st"); @@ -303,7 +303,7 @@ void parseRecognizesEntryPrecedingComment() throws IOException { .withField(StandardField.AUTHOR, "Ed von T@st"); expected.setCommentsBeforeEntry(comment); - ParserResult result = parser.parse(new StringReader(entryWithComment)); + ParserResult result = parser.parse(Reader.of(entryWithComment)); List parsed = result.getDatabase().getEntries(); assertEquals(List.of(expected), parsed); @@ -313,7 +313,7 @@ void parseRecognizesEntryPrecedingComment() throws IOException { @Test void parseRecognizesMultipleEntries() throws IOException { ParserResult result = parser.parse( - new StringReader(""" + Reader.of(""" @article{canh05, author = {Crowston, K. and Annabi, H.}, title = {Title A}} @inProceedings{foo, author={Norton Bar}}""")); @@ -333,7 +333,7 @@ void parseSetsParsedSerialization() throws IOException { String firstEntry = "@article{canh05," + " author = {Crowston, K. and Annabi, H.}," + OS.NEWLINE + " title = {Title A}}" + OS.NEWLINE; String secondEntry = "@inProceedings{foo," + " author={Norton Bar}}"; - List parsedEntries = parser.parse(new StringReader(firstEntry + secondEntry)) + List parsedEntries = parser.parse(Reader.of(firstEntry + secondEntry)) .getDatabase().getEntries(); assertEquals(firstEntry, parsedEntries.getFirst().getParsedSerialization()); assertEquals(secondEntry, parsedEntries.get(1).getParsedSerialization()); @@ -342,7 +342,7 @@ void parseSetsParsedSerialization() throws IOException { @Test void parseRecognizesMultipleEntriesOnSameLine() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{canh05}" + "@inProceedings{foo}")); + .parse(Reader.of("@article{canh05}" + "@inProceedings{foo}")); List expected = List.of( new BibEntry(StandardEntryType.Article) .withCitationKey("canh05"), @@ -354,7 +354,7 @@ void parseRecognizesMultipleEntriesOnSameLine() throws IOException { @Test void parseCombinesMultipleAuthorFields() throws IOException { ParserResult result = parser.parse( - new StringReader("@article{test,author={Ed von Test},author={Second Author},author={Third Author}}")); + Reader.of("@article{test,author={Ed von Test},author={Second Author},author={Third Author}}")); BibEntry expected = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "Ed von Test and Second Author and Third Author"); @@ -364,7 +364,7 @@ void parseCombinesMultipleAuthorFields() throws IOException { @Test void parseCombinesMultipleEditorFields() throws IOException { ParserResult result = parser.parse( - new StringReader("@article{test,editor={Ed von Test},editor={Second Author},editor={Third Author}}")); + Reader.of("@article{test,editor={Ed von Test},editor={Second Author},editor={Third Author}}")); BibEntry expected = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.EDITOR, "Ed von Test and Second Author and Third Author"); @@ -374,7 +374,7 @@ void parseCombinesMultipleEditorFields() throws IOException { @Test void parseCombinesMultipleKeywordsFields() throws IOException { ParserResult result = parser.parse( - new StringReader("@article{test,Keywords={Test},Keywords={Second Keyword},Keywords={Third Keyword}}")); + Reader.of("@article{test,Keywords={Test},Keywords={Second Keyword},Keywords={Third Keyword}}")); BibEntry expected = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.KEYWORDS, "Test, Second Keyword, Third Keyword"); @@ -383,7 +383,7 @@ void parseCombinesMultipleKeywordsFields() throws IOException { @Test void parseRecognizesHeaderButIgnoresEncoding() throws IOException { - ParserResult result = parser.parse(new StringReader(""" + ParserResult result = parser.parse(Reader.of(""" This file was created with JabRef 2.1 beta 2. Encoding: Cp1252 @@ -419,7 +419,7 @@ void parseRecognizesHeaderButIgnoresEncoding() throws IOException { @Test void parseRecognizesFormatedEntry() throws IOException { ParserResult result = parser.parse( - new StringReader(""" + Reader.of(""" @INPROCEEDINGS{CroAnnHow05, author = {Crowston, K. and Annabi, H. and Howison, J. and Masango, C.}, title = {Effective work practices for floss development: A model and propositions}, @@ -446,7 +446,7 @@ void parseRecognizesFormatedEntry() throws IOException { @Test void parseRecognizesNumbersWithoutBracketsOrQuotationMarks() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,year = 2005}")); + .parse(Reader.of("@article{test,year = 2005}")); BibEntry expected = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.YEAR, "2005"); @@ -456,7 +456,7 @@ void parseRecognizesNumbersWithoutBracketsOrQuotationMarks() throws IOException @Test void parseRecognizesUppercaseFields() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,AUTHOR={Ed von Test}}")); + .parse(Reader.of("@article{test,AUTHOR={Ed von Test}}")); BibEntry expected = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.AUTHOR, "Ed von Test"); @@ -466,7 +466,7 @@ void parseRecognizesUppercaseFields() throws IOException { @Test void parseRecognizesAbsoluteFile() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,file = {D:\\Documents\\literature\\Tansel-PRL2006.pdf}}")); + .parse(Reader.of("@article{test,file = {D:\\Documents\\literature\\Tansel-PRL2006.pdf}}")); BibEntry expected = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.FILE, "D:\\Documents\\literature\\Tansel-PRL2006.pdf"); @@ -474,9 +474,9 @@ void parseRecognizesAbsoluteFile() throws IOException { } @Test - void parseRecognizesFinalSlashAsSlash() throws Exception { + void parseRecognizesFinalSlashAsSlash() throws IOException { ParserResult result = parser - .parse(new StringReader(""" + .parse(Reader.of(""" @misc{, test = {wired\\}, } @@ -492,8 +492,8 @@ void parseRecognizesFinalSlashAsSlash() throws Exception { * JabRef's heuristics is not able to parse this special case. */ @Test - void parseFailsWithFinalSlashAsSlashWhenSingleLine() throws Exception { - ParserResult parserResult = parser.parse(new StringReader("@misc{, test = {wired\\}}")); + void parseFailsWithFinalSlashAsSlashWhenSingleLine() throws IOException { + ParserResult parserResult = parser.parse(Reader.of("@misc{, test = {wired\\}}")); // In case JabRef was more relaxed, `assertFalse` would be provided here. assertTrue(parserResult.hasWarnings()); } @@ -501,7 +501,7 @@ void parseFailsWithFinalSlashAsSlashWhenSingleLine() throws Exception { @Test void parseRecognizesDateFieldWithConcatenation() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,date = {1-4~} # nov}")); + .parse(Reader.of("@article{test,date = {1-4~} # nov}")); BibEntry expected = new BibEntry(StandardEntryType.Article) .withCitationKey("test") .withField(StandardField.DATE, "1-4~#nov#"); @@ -511,7 +511,7 @@ void parseRecognizesDateFieldWithConcatenation() throws IOException { @Test void parseReturnsEmptyListIfNoEntryRecognized() throws IOException { ParserResult result = parser.parse( - new StringReader(""" + Reader.of(""" author = {Crowston, K. and Annabi, H. and Howison, J. and Masango, C.}, title = {Effective work practices for floss development: A model and propositions}, booktitle = {Hawaii International Conference On System Sciences (HICSS)}, @@ -527,7 +527,7 @@ void parseReturnsEmptyListIfNoEntryRecognized() throws IOException { @Test void parseReturnsEmptyListIfNoEntryExistent() throws IOException { ParserResult result = parser - .parse(new StringReader(""" + .parse(Reader.of(""" This was created with JabRef 2.1 beta 2. Encoding: Cp1252 """)); @@ -537,7 +537,7 @@ void parseReturnsEmptyListIfNoEntryExistent() throws IOException { @Test void parseNotWarnsAboutEntryWithoutCitationKey() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{,author={Ed von Test}}")); + .parse(Reader.of("@article{,author={Ed von Test}}")); assertFalse(result.hasWarnings()); BibEntry expected = new BibEntry(StandardEntryType.Article) .withField(StandardField.AUTHOR, "Ed von Test"); @@ -547,7 +547,7 @@ void parseNotWarnsAboutEntryWithoutCitationKey() throws IOException { @Test void parseIgnoresAndWarnsAboutEntryWithUnmatchedOpenBracket() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,author={author missing bracket}")); + .parse(Reader.of("@article{test,author={author missing bracket}")); assertTrue(result.hasWarnings()); assertEquals(List.of(), result.getDatabase().getEntries()); } @@ -555,7 +555,7 @@ void parseIgnoresAndWarnsAboutEntryWithUnmatchedOpenBracket() throws IOException @Test void parseAddsEscapedOpenBracketToFieldValue() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,review={escaped \\{ bracket}}")); + .parse(Reader.of("@article{test,review={escaped \\{ bracket}}")); assertFalse(result.hasWarnings()); BibEntry expected = new BibEntry(StandardEntryType.Article) @@ -567,7 +567,7 @@ void parseAddsEscapedOpenBracketToFieldValue() throws IOException { @Test void parseAddsEscapedClosingBracketToFieldValue() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,review={escaped \\} bracket}}")); + .parse(Reader.of("@article{test,review={escaped \\} bracket}}")); BibEntry expected = new BibEntry(StandardEntryType.Article) .withCitationKey("test") @@ -579,7 +579,7 @@ void parseAddsEscapedClosingBracketToFieldValue() throws IOException { @Test void parseIgnoresAndWarnsAboutEntryWithUnmatchedOpenBracketInQuotationMarks() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,author=\"author {missing bracket\"}")); + .parse(Reader.of("@article{test,author=\"author {missing bracket\"}")); Collection parsed = result.getDatabase().getEntries(); @@ -590,7 +590,7 @@ void parseIgnoresAndWarnsAboutEntryWithUnmatchedOpenBracketInQuotationMarks() th @Test void parseMovesArbitraryContentAfterEntryToEpilog() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,author={author bracket }}}")); + .parse(Reader.of("@article{test,author={author bracket }}}")); Collection parsed = result.getDatabase().getEntries(); @@ -600,7 +600,7 @@ void parseMovesArbitraryContentAfterEntryToEpilog() throws IOException { @Test void parseWarnsAboutUnmatchedContentInEntryWithoutComma() throws IOException { - ParserResult result = parser.parse(new StringReader("@article{test,author={author bracket } too much}")); + ParserResult result = parser.parse(Reader.of("@article{test,author={author bracket } too much}")); List entries = result.getDatabase().getEntries(); @@ -609,7 +609,7 @@ void parseWarnsAboutUnmatchedContentInEntryWithoutComma() throws IOException { @Test void parseWarnsAboutUnmatchedContentInEntry() throws IOException { - ParserResult result = parser.parse(new StringReader("@article{test,author={author bracket }, too much}")); + ParserResult result = parser.parse(Reader.of("@article{test,author={author bracket }, too much}")); List entries = result.getDatabase().getEntries(); @@ -620,7 +620,7 @@ void parseWarnsAboutUnmatchedContentInEntry() throws IOException { @Test void parseAcceptsEntryWithAtSymbolInBrackets() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,author={author @ good}}")); + .parse(Reader.of("@article{test,author={author @ good}}")); List entries = result.getDatabase().getEntries(); @@ -631,7 +631,7 @@ void parseAcceptsEntryWithAtSymbolInBrackets() throws IOException { @Test void parseRecognizesEntryWithAtSymbolInQuotationMarks() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,author=\"author @ good\"}")); + .parse(Reader.of("@article{test,author=\"author @ good\"}")); BibEntry expected = new BibEntry(StandardEntryType.Article) .withCitationKey("test") @@ -643,7 +643,7 @@ void parseRecognizesEntryWithAtSymbolInQuotationMarks() throws IOException { @Test void parseRecognizesFieldsWithBracketsEnclosedInQuotationMarks() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,author=\"Test {Ed {von} Test}\"}")); + .parse(Reader.of("@article{test,author=\"Test {Ed {von} Test}\"}")); BibEntry expected = new BibEntry(StandardEntryType.Article) .withCitationKey("test") @@ -656,7 +656,7 @@ void parseRecognizesFieldsWithBracketsEnclosedInQuotationMarks() throws IOExcept void parseRecognizesFieldsWithEscapedQuotationMarks() throws IOException { // Quotes in fields of the form key = "value" have to be escaped by putting them into braces ParserResult result = parser - .parse(new StringReader("@article{test,author=\"Test {\" Test}\"}")); + .parse(Reader.of("@article{test,author=\"Test {\" Test}\"}")); BibEntry expected = new BibEntry(StandardEntryType.Article) .withCitationKey("test") @@ -668,7 +668,7 @@ void parseRecognizesFieldsWithEscapedQuotationMarks() throws IOException { @Test void parseRecognizesFieldsWithQuotationMarksInBrackets() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,title=\"Comments on {\"}Filenames and Fonts{\"}\"}")); + .parse(Reader.of("@article{test,title=\"Comments on {\"}Filenames and Fonts{\"}\"}")); BibEntry expected = new BibEntry(StandardEntryType.Article) .withCitationKey("test") @@ -680,7 +680,7 @@ void parseRecognizesFieldsWithQuotationMarksInBrackets() throws IOException { @Test void parseIgnoresAndWarnsAboutEntryWithFieldsThatAreNotSeperatedByComma() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,author={Ed von Test} year=2005}")); + .parse(Reader.of("@article{test,author={Ed von Test} year=2005}")); assertEquals(List.of(), result.getDatabase().getEntries()); assertTrue(result.hasWarnings()); @@ -689,7 +689,7 @@ void parseIgnoresAndWarnsAboutEntryWithFieldsThatAreNotSeperatedByComma() throws @Test void parseIgnoresAndWarnsAboutCorruptedEntryButRecognizeOthers() throws IOException { ParserResult result = parser.parse( - new StringReader( + Reader.of( "@article{test,author={author missing bracket}" + "@article{test,author={Ed von Test}}")); Collection parsed = result.getDatabase().getEntries(); @@ -706,7 +706,7 @@ void parseIgnoresAndWarnsAboutCorruptedEntryButRecognizeOthers() throws IOExcept @Test void parseRecognizesMonthFieldsWithFollowingComma() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,author={Ed von Test},month={8,}},")); + .parse(Reader.of("@article{test,author={Ed von Test},month={8,}},")); Collection parsed = result.getDatabase().getEntries(); BibEntry entry = parsed.iterator().next(); @@ -722,7 +722,7 @@ void parseRecognizesMonthFieldsWithFollowingComma() throws IOException { @Test void parseRecognizesPreamble() throws IOException { ParserResult result = parser - .parse(new StringReader("@preamble{some text and \\latex}")); + .parse(Reader.of("@preamble{some text and \\latex}")); assertEquals(Optional.of("some text and \\latex"), result.getDatabase().getPreamble()); } @@ -730,7 +730,7 @@ void parseRecognizesPreamble() throws IOException { @Test void parseRecognizesUppercasePreamble() throws IOException { ParserResult result = parser - .parse(new StringReader("@PREAMBLE{some text and \\latex}")); + .parse(Reader.of("@PREAMBLE{some text and \\latex}")); assertEquals(Optional.of("some text and \\latex"), result.getDatabase().getPreamble()); } @@ -738,7 +738,7 @@ void parseRecognizesUppercasePreamble() throws IOException { @Test void parseRecognizesPreambleWithWhitespace() throws IOException { ParserResult result = parser - .parse(new StringReader("@preamble {some text and \\latex}")); + .parse(Reader.of("@preamble {some text and \\latex}")); assertEquals(Optional.of("some text and \\latex"), result.getDatabase().getPreamble()); } @@ -746,7 +746,7 @@ void parseRecognizesPreambleWithWhitespace() throws IOException { @Test void parseRecognizesPreambleInParenthesis() throws IOException { ParserResult result = parser - .parse(new StringReader("@preamble(some text and \\latex)")); + .parse(Reader.of("@preamble(some text and \\latex)")); assertEquals(Optional.of("some text and \\latex"), result.getDatabase().getPreamble()); } @@ -754,7 +754,7 @@ void parseRecognizesPreambleInParenthesis() throws IOException { @Test void parseRecognizesPreambleWithConcatenation() throws IOException { ParserResult result = parser - .parse(new StringReader("@preamble{\"some text\" # \"and \\latex\"}")); + .parse(Reader.of("@preamble{\"some text\" # \"and \\latex\"}")); assertEquals(Optional.of("\"some text\" # \"and \\latex\""), result.getDatabase().getPreamble()); } @@ -762,7 +762,7 @@ void parseRecognizesPreambleWithConcatenation() throws IOException { @Test void parseRecognizesString() throws IOException { ParserResult result = parser - .parse(new StringReader("@string{bourdieu = {Bourdieu, Pierre}}")); + .parse(Reader.of("@string{bourdieu = {Bourdieu, Pierre}}")); BibtexString string = result.getDatabase().getStringValues().iterator().next(); @@ -774,7 +774,7 @@ void parseRecognizesString() throws IOException { @Test void parseRecognizesStringWithQuotes() throws IOException { ParserResult result = parser - .parse(new StringReader("@string{bourdieu = \"Bourdieu, Pierre\"}")); + .parse(Reader.of("@string{bourdieu = \"Bourdieu, Pierre\"}")); BibtexString string = result.getDatabase().getStringValues().iterator().next(); @@ -787,7 +787,7 @@ void parseRecognizesStringWithQuotes() throws IOException { void parseSavesOneNewlineAfterStringInParsedSerialization() throws IOException { String string = "@string{bourdieu = {Bourdieu, Pierre}}" + OS.NEWLINE; ParserResult result = parser - .parse(new StringReader(string + OS.NEWLINE + OS.NEWLINE)); + .parse(Reader.of(string + OS.NEWLINE + OS.NEWLINE)); BibtexString parsedString = result.getDatabase().getStringValues().iterator().next(); @@ -798,7 +798,7 @@ void parseSavesOneNewlineAfterStringInParsedSerialization() throws IOException { @Test void parseRecognizesStringWithWhitespace() throws IOException { ParserResult result = parser - .parse(new StringReader("@string {bourdieu = {Bourdieu, Pierre}}")); + .parse(Reader.of("@string {bourdieu = {Bourdieu, Pierre}}")); BibtexString parsedString = result.getDatabase().getStringValues().iterator().next(); @@ -810,7 +810,7 @@ void parseRecognizesStringWithWhitespace() throws IOException { @Test void parseRecognizesStringInParenthesis() throws IOException { ParserResult result = parser - .parse(new StringReader("@string(bourdieu = {Bourdieu, Pierre})")); + .parse(Reader.of("@string(bourdieu = {Bourdieu, Pierre})")); BibtexString parsedString = result.getDatabase().getStringValues().iterator().next(); @@ -822,7 +822,7 @@ void parseRecognizesStringInParenthesis() throws IOException { @Test void parseRecognizesMultipleStrings() throws IOException { ParserResult result = parser - .parse(new StringReader("@string{bourdieu = {Bourdieu, Pierre}}" + "@string{adieu = {Adieu, Pierre}}")); + .parse(Reader.of("@string{bourdieu = {Bourdieu, Pierre}}" + "@string{adieu = {Adieu, Pierre}}")); Iterator iterator = result.getDatabase().getStringValues().iterator(); BibtexString first = iterator.next(); @@ -844,7 +844,7 @@ void parseRecognizesMultipleStrings() throws IOException { @Test void parseRecognizesStringAndEntry() throws IOException { ParserResult result = parser.parse( - new StringReader("@string{bourdieu = {Bourdieu, Pierre}}" + Reader.of("@string{bourdieu = {Bourdieu, Pierre}}" + "@book{bourdieu-2002-questions-sociologie, " + " Address = {Paris}," + " Author = bourdieu," + " Isbn = 2707318256," + " Publisher = {Minuit}," + " Title = {Questions de sociologie}," + " Year = 2002" + "}")); @@ -870,7 +870,7 @@ void parseRecognizesStringAndEntry() throws IOException { @Test void parseWarnsAboutStringsWithSameNameAndOnlyKeepsOne() throws IOException { ParserResult result = parser - .parse(new StringReader("@string{bourdieu = {Bourdieu, Pierre}}" + "@string{bourdieu = {Other}}")); + .parse(Reader.of("@string{bourdieu = {Bourdieu, Pierre}}" + "@string{bourdieu = {Other}}")); assertTrue(result.hasWarnings()); assertEquals(1, result.getDatabase().getStringCount()); @@ -879,7 +879,7 @@ void parseWarnsAboutStringsWithSameNameAndOnlyKeepsOne() throws IOException { @Test void parseIgnoresComments() throws IOException { ParserResult result = parser - .parse(new StringReader("@comment{some text and \\latex}")); + .parse(Reader.of("@comment{some text and \\latex}")); assertEquals(List.of(), result.getDatabase().getEntries()); } @@ -888,7 +888,7 @@ void parseIgnoresComments() throws IOException { @Test void parseIgnoresUppercaseComments() throws IOException { ParserResult result = parser - .parse(new StringReader("@COMMENT{some text and \\latex}")); + .parse(Reader.of("@COMMENT{some text and \\latex}")); assertFalse(result.hasWarnings()); // FIXME: We silently remove @COMMENT assertEquals(List.of(), result.getDatabase().getEntries()); } @@ -896,7 +896,7 @@ void parseIgnoresUppercaseComments() throws IOException { @Test void parseKeepsCommentsAsUserComments() throws IOException { ParserResult result = parser - .parse(new StringReader("@comment{some text and \\latex}" + "@article{test,author={Ed von Test}}")); + .parse(Reader.of("@comment{some text and \\latex}" + "@article{test,author={Ed von Test}}")); assertEquals(List.of(new BibEntry(StandardEntryType.Article) .withCitationKey("test") @@ -908,7 +908,7 @@ void parseKeepsCommentsAsUserComments() throws IOException { @Test void parseIgnoresCommentsAfterEntry() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,author={Ed von Test}}" + "@comment{some text and \\latex}")); + .parse(Reader.of("@article{test,author={Ed von Test}}" + "@comment{some text and \\latex}")); assertEquals(List.of(new BibEntry(StandardEntryType.Article) .withCitationKey("test") @@ -920,7 +920,7 @@ void parseIgnoresCommentsAfterEntry() throws IOException { @Test void parseIgnoresText() throws IOException { ParserResult result = parser - .parse(new StringReader("comment{some text and \\latex")); + .parse(Reader.of("comment{some text and \\latex")); assertEquals(0, result.getDatabase().getEntries().size()); } @@ -928,7 +928,7 @@ void parseIgnoresText() throws IOException { @Test void parseIgnoresTextBeforeEntry() throws IOException { ParserResult result = parser - .parse(new StringReader("comment{some text and \\latex" + "@article{test,author={Ed von Test}}")); + .parse(Reader.of("comment{some text and \\latex" + "@article{test,author={Ed von Test}}")); Collection parsedEntries = result.getDatabase().getEntries(); BibEntry parsedEntry = parsedEntries.iterator().next(); @@ -943,7 +943,7 @@ void parseIgnoresTextBeforeEntry() throws IOException { @Test void parseIgnoresTextAfterEntry() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,author={Ed von Test}}" + "comment{some text and \\latex")); + .parse(Reader.of("@article{test,author={Ed von Test}}" + "comment{some text and \\latex")); Collection parsedEntries = result.getDatabase().getEntries(); BibEntry parsedEntry = parsedEntries.iterator().next(); @@ -958,7 +958,7 @@ void parseIgnoresTextAfterEntry() throws IOException { @Test void parsKeesNewlines() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,a = {a\nb}}")); + .parse(Reader.of("@article{test,a = {a\nb}}")); Collection parsedEntries = result.getDatabase().getEntries(); BibEntry parsedEntry = parsedEntries.iterator().next(); @@ -969,7 +969,7 @@ void parsKeesNewlines() throws IOException { @Test void parsKeepsMultipleNewlines() throws IOException { ParserResult result = parser - .parse(new StringReader(""" + .parse(Reader.of(""" @article{test,a = {a b},b = {a @@ -989,7 +989,7 @@ void parsKeepsMultipleNewlines() throws IOException { @Test void parseKeepsTabs() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,a = {a\tb}}")); + .parse(Reader.of("@article{test,a = {a\tb}}")); Collection parsedEntries = result.getDatabase().getEntries(); BibEntry parsedEntry = parsedEntries.iterator().next(); @@ -1000,7 +1000,7 @@ void parseKeepsTabs() throws IOException { @Test void parsKeepsMultipleTabs() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,a = {a\t\tb}," + "b = {a\t \tb}," + "c = {a \t \t b}}")); + .parse(Reader.of("@article{test,a = {a\t\tb}," + "b = {a\t \tb}," + "c = {a \t \t b}}")); Collection parsedEntries = result.getDatabase().getEntries(); BibEntry parsedEntry = parsedEntries.iterator().next(); @@ -1016,7 +1016,7 @@ void parsePreservesMultipleSpacesInNonWrappableField() throws IOException { FXCollections.observableArrayList(List.of(StandardField.FILE))); BibtexParser parser = new BibtexParser(importFormatPreferences); ParserResult result = parser - .parse(new StringReader("@article{canh05,file = {ups sala}}")); + .parse(Reader.of("@article{canh05,file = {ups sala}}")); Collection parsedEntries = result.getDatabase().getEntries(); BibEntry parsedEntry = parsedEntries.iterator().next(); @@ -1026,7 +1026,7 @@ void parsePreservesMultipleSpacesInNonWrappableField() throws IOException { @Test void parsePreservesTabsInAbstractField() throws IOException { - ParserResult result = parser.parse(new StringReader("@article{canh05,abstract = {ups \tsala}}")); + ParserResult result = parser.parse(Reader.of("@article{canh05,abstract = {ups \tsala}}")); Collection parsedEntries = result.getDatabase().getEntries(); BibEntry parsedEntry = parsedEntries.iterator().next(); @@ -1036,7 +1036,7 @@ void parsePreservesTabsInAbstractField() throws IOException { @Test void parsePreservesNewlineInAbstractField() throws IOException { - ParserResult result = parser.parse(new StringReader("@article{canh05,abstract = {ups \nsala}}")); + ParserResult result = parser.parse(Reader.of("@article{canh05,abstract = {ups \nsala}}")); Collection parsedEntries = result.getDatabase().getEntries(); BibEntry parsedEntry = parsedEntries.iterator().next(); @@ -1047,7 +1047,7 @@ void parsePreservesNewlineInAbstractField() throws IOException { @Test void parseHandlesAccentsCorrectly() throws IOException { ParserResult result = parser - .parse(new StringReader("@article{test,author = {H'{e}lne Fiaux}}")); + .parse(Reader.of("@article{test,author = {H'{e}lne Fiaux}}")); Collection parsedEntries = result.getDatabase().getEntries(); BibEntry parsedEntry = parsedEntries.iterator().next(); @@ -1065,7 +1065,7 @@ void parseHandlesAccentsCorrectly() throws IOException { @Test void parsePreambleAndEntryWithoutNewLine() throws IOException { ParserResult result = parser - .parse(new StringReader("@preamble{some text and \\latex}@article{test,author = {H'{e}lne Fiaux}}")); + .parse(Reader.of("@preamble{some text and \\latex}@article{test,author = {H'{e}lne Fiaux}}")); Collection parsedEntries = result.getDatabase().getEntries(); BibEntry parsedEntry = parsedEntries.iterator().next(); @@ -1081,7 +1081,7 @@ void parsePreambleAndEntryWithoutNewLine() throws IOException { @Test void parseFileHeaderAndPreambleWithoutNewLine() throws IOException { ParserResult result = parser - .parse(new StringReader("\\% Encoding: US-ASCII@preamble{some text and \\latex}")); + .parse(Reader.of("\\% Encoding: US-ASCII@preamble{some text and \\latex}")); assertFalse(result.hasWarnings()); assertEquals(Optional.of("some text and \\latex"), result.getDatabase().getPreamble()); @@ -1090,7 +1090,7 @@ void parseFileHeaderAndPreambleWithoutNewLine() throws IOException { @Test void parseSavesEntryInParsedSerialization() throws IOException { String testEntry = "@article{test,author={Ed von Test}}"; - ParserResult result = parser.parse(new StringReader(testEntry)); + ParserResult result = parser.parse(Reader.of(testEntry)); Collection parsedEntries = result.getDatabase().getEntries(); BibEntry parsedEntry = parsedEntries.iterator().next(); @@ -1103,7 +1103,7 @@ void parseSavesEntryInParsedSerialization() throws IOException { void parseSavesOneNewlineAfterEntryInParsedSerialization() throws IOException { String testEntry = "@article{test,author={Ed von Test}}"; ParserResult result = parser - .parse(new StringReader(testEntry + OS.NEWLINE + OS.NEWLINE)); + .parse(Reader.of(testEntry + OS.NEWLINE + OS.NEWLINE)); Collection parsedEntries = result.getDatabase().getEntries(); BibEntry parsedEntry = parsedEntries.iterator().next(); @@ -1116,7 +1116,7 @@ void parseSavesOneNewlineAfterEntryInParsedSerialization() throws IOException { void parseSavesAllButOneNewlinesBeforeEntryInParsedSerialization() throws IOException { String testEntry = "@article{test,author={Ed von Test}}"; ParserResult result = parser - .parse(new StringReader(OS.NEWLINE + OS.NEWLINE + OS.NEWLINE + testEntry)); + .parse(Reader.of(OS.NEWLINE + OS.NEWLINE + OS.NEWLINE + testEntry)); Collection parsedEntries = result.getDatabase().getEntries(); BibEntry parsedEntry = parsedEntries.iterator().next(); @@ -1130,7 +1130,7 @@ void parseSavesAllButOneNewlinesBeforeEntryInParsedSerialization() throws IOExce void parseRemovesEncodingLineAndSeparatorInParsedSerialization() throws IOException { String testEntry = "@article{test,author={Ed von Test}}"; ParserResult result = parser.parse( - new StringReader(SaveConfiguration.ENCODING_PREFIX + OS.NEWLINE + OS.NEWLINE + OS.NEWLINE + testEntry)); + Reader.of(SaveConfiguration.ENCODING_PREFIX + OS.NEWLINE + OS.NEWLINE + OS.NEWLINE + testEntry)); Collection parsedEntries = result.getDatabase().getEntries(); BibEntry parsedEntry = parsedEntries.iterator().next(); @@ -1146,7 +1146,7 @@ void parseSavesNewlinesBetweenEntriesInParsedSerialization() throws IOException String testEntryOne = "@article{test1,author={Ed von Test}}"; String testEntryTwo = "@article{test2,author={Ed von Test}}"; ParserResult result = parser - .parse(new StringReader(testEntryOne + OS.NEWLINE + OS.NEWLINE + OS.NEWLINE + testEntryTwo)); + .parse(Reader.of(testEntryOne + OS.NEWLINE + OS.NEWLINE + OS.NEWLINE + testEntryTwo)); Collection parsedEntries = result.getDatabase().getEntries(); Iterator iterator = parsedEntries.iterator(); @@ -1167,7 +1167,7 @@ void parseSavesNewlinesBetweenEntriesInParsedSerialization() throws IOException @Test void parseIgnoresWhitespaceInEpilogue() throws IOException { - ParserResult result = parser.parse(new StringReader(" " + OS.NEWLINE)); + ParserResult result = parser.parse(Reader.of(" " + OS.NEWLINE)); assertEquals("", result.getDatabase().getEpilog()); } @@ -1176,7 +1176,7 @@ void parseIgnoresWhitespaceInEpilogue() throws IOException { void parseIgnoresWhitespaceInEpilogueAfterEntry() throws IOException { String testEntry = "@article{test,author={Ed von Test}}"; ParserResult result = parser - .parse(new StringReader(testEntry + OS.NEWLINE + OS.NEWLINE + OS.NEWLINE + " " + OS.NEWLINE)); + .parse(Reader.of(testEntry + OS.NEWLINE + OS.NEWLINE + OS.NEWLINE + " " + OS.NEWLINE)); Collection parsedEntries = result.getDatabase().getEntries(); BibEntry parsedEntry = parsedEntries.iterator().next(); @@ -1190,7 +1190,7 @@ void parseIgnoresWhitespaceInEpilogueAfterEntry() throws IOException { void parseTrimsWhitespaceInEpilogueAfterEntry() throws IOException { String testEntry = "@article{test,author={Ed von Test}}"; ParserResult result = parser - .parse(new StringReader(testEntry + OS.NEWLINE + OS.NEWLINE + OS.NEWLINE + " epilogue " + OS.NEWLINE)); + .parse(Reader.of(testEntry + OS.NEWLINE + OS.NEWLINE + OS.NEWLINE + " epilogue " + OS.NEWLINE)); Collection parsedEntries = result.getDatabase().getEntries(); BibEntry parsedEntry = parsedEntries.iterator().next(); @@ -1203,7 +1203,7 @@ void parseTrimsWhitespaceInEpilogueAfterEntry() throws IOException { @Test void parseRecognizesSaveActionsAfterEntry() throws IOException { ParserResult parserResult = parser.parse( - new StringReader(""" + Reader.of(""" @InProceedings{6055279, Title = {Educational session 1}, Booktitle = {Custom Integrated Circuits Conference (CICC), 2011 IEEE}, @@ -1227,7 +1227,7 @@ void parseRecognizesSaveActionsAfterEntry() throws IOException { @Test void parserKeepsSaveActions() throws IOException { ParserResult parserResult = parser.parse( - new StringReader(""" + Reader.of(""" @InProceedings{6055279, Title = {Educational session 1}, Booktitle = {Custom Integrated Circuits Conference (CICC), 2011 IEEE}, @@ -1269,7 +1269,7 @@ void parserKeepsSaveActions() throws IOException { @Test void parseRecognizesCRLFLineBreak() throws IOException { ParserResult result = parser.parse( - new StringReader(""" + Reader.of(""" @InProceedings{6055279,\r Title = {Educational session 1},\r Booktitle = {Custom Integrated Circuits Conference (CICC), 2011 IEEE},\r @@ -1287,7 +1287,7 @@ void parseRecognizesCRLFLineBreak() throws IOException { @Test void parseRecognizesLFLineBreak() throws IOException { ParserResult result = parser.parse( - new StringReader(""" + Reader.of(""" @InProceedings{6055279, Title = {Educational session 1}, Booktitle = {Custom Integrated Circuits Conference (CICC), 2011 IEEE}, @@ -1305,7 +1305,7 @@ void parseRecognizesLFLineBreak() throws IOException { @Test void integrationTestSaveActions() throws IOException { ParserResult parserResult = parser - .parse(new StringReader("@comment{jabref-meta: saveActions:enabled;title[lower_case]}")); + .parse(Reader.of("@comment{jabref-meta: saveActions:enabled;title[lower_case]}")); FieldFormatterCleanups saveActions = parserResult.getMetaData().getSaveActions().get(); @@ -1317,7 +1317,7 @@ void integrationTestSaveActions() throws IOException { @Test void integrationTestBibEntryType() throws IOException { ParserResult result = parser.parse( - new StringReader("@comment{jabref-entrytype: Lecturenotes: req[author;title] opt[language;url]}")); + Reader.of("@comment{jabref-entrytype: Lecturenotes: req[author;title] opt[language;url]}")); BibEntryType expectedEntryType = new BibEntryType( new UnknownEntryType("lecturenotes"), @@ -1331,13 +1331,13 @@ void integrationTestBibEntryType() throws IOException { new OrFields(StandardField.TITLE) )); - assertEquals(Collections.singleton(expectedEntryType), result.getEntryTypes()); + assertEquals(Set.of(expectedEntryType), result.getEntryTypes()); } @Test void integrationTestSaveOrderConfig() throws IOException { ParserResult result = parser.parse( - new StringReader( + Reader.of( "@Comment{jabref-meta: saveOrderConfig:specified;author;false;year;true;abstract;false;}")); Optional saveOrderConfig = result.getMetaData().getSaveOrder(); @@ -1352,7 +1352,7 @@ void integrationTestSaveOrderConfig() throws IOException { @Test void integrationTestCustomKeyPattern() throws IOException { ParserResult result = parser - .parse(new StringReader("@comment{jabref-meta: keypattern_article:articleTest;}" + OS.NEWLINE + .parse(Reader.of("@comment{jabref-meta: keypattern_article:articleTest;}" + OS.NEWLINE + "@comment{jabref-meta: keypatterndefault:test;}")); GlobalCitationKeyPatterns pattern = mock(GlobalCitationKeyPatterns.class); @@ -1367,7 +1367,7 @@ void integrationTestCustomKeyPattern() throws IOException { @Test void integrationTestBiblatexMode() throws IOException { ParserResult result = parser - .parse(new StringReader("@comment{jabref-meta: databaseType:biblatex;}")); + .parse(Reader.of("@comment{jabref-meta: databaseType:biblatex;}")); Optional mode = result.getMetaData().getMode(); @@ -1376,7 +1376,7 @@ void integrationTestBiblatexMode() throws IOException { @Test void integrationTestGroupTree() throws IOException { - ParserResult result = parser.parse(new StringReader(""" + ParserResult result = parser.parse(Reader.of(""" @comment{jabref-meta: groupsversion:3;} @comment{jabref-meta: groupstree: 0 AllEntriesGroup:; @@ -1402,8 +1402,8 @@ void integrationTestGroupTree() throws IOException { * Checks that BibDesk Static Groups are available after parsing the library */ @Test - void integrationTestBibDeskStaticGroup() throws Exception { - ParserResult result = parser.parse(new StringReader(""" + void integrationTestBibDeskStaticGroup() throws IOException { + ParserResult result = parser.parse(Reader.of(""" @article{Swain:2023aa, author = {Subhashree Swain and P. Shalima and K.V.P. Latha}, date-added = {2023-09-14 20:09:08 +0200}, @@ -1474,8 +1474,8 @@ void integrationTestBibDeskStaticGroup() throws Exception { */ @Test @Disabled("Not yet supported") - void integrationTestBibDeskSmartGroup() throws Exception { - ParserResult result = parser.parse(new StringReader(""" + void integrationTestBibDeskSmartGroup() throws IOException { + ParserResult result = parser.parse(Reader.of(""" @article{Kraljic:2023aa, author = {Katarina Kraljic and Florent Renaud and Yohan Dubois and Christophe Pichon and Oscar Agertz and Eric Andersson and Julien Devriendt and Jonathan Freundlich and Sugata Kaviraj and Taysun Kimm and Garreth Martin and S{\\'e}bastien Peirani and {\\'A}lvaro Segovia Otero and Marta Volonteri and Sukyoung K. Yi}, date-added = {2023-09-14 20:09:10 +0200}, @@ -1593,8 +1593,8 @@ void integrationTestBibDeskSmartGroup() throws Exception { */ @Test @Disabled("Not yet supported") - void integrationTestBibDeskMultipleGroup() throws Exception { - ParserResult result = parser.parse(new StringReader(""" + void integrationTestBibDeskMultipleGroup() throws IOException { + ParserResult result = parser.parse(Reader.of(""" @article{Kraljic:2023aa, author = {Katarina Kraljic and Florent Renaud and Yohan Dubois and Christophe Pichon and Oscar Agertz and Eric Andersson and Julien Devriendt and Jonathan Freundlich and Sugata Kaviraj and Taysun Kimm and Garreth Martin and S{\\'e}bastien Peirani and {\\'A}lvaro Segovia Otero and Marta Volonteri and Sukyoung K. Yi}, date-added = {2023-09-14 20:09:10 +0200}, @@ -1707,8 +1707,8 @@ void integrationTestBibDeskMultipleGroup() throws Exception { * Checks that a TexGroup finally gets the required data, after parsing the library. */ @Test - void integrationTestTexGroup() throws Exception { - ParserResult result = parser.parse(new StringReader( + void integrationTestTexGroup() throws IOException { + ParserResult result = parser.parse(Reader.of( "@comment{jabref-meta: grouping:" + OS.NEWLINE + "0 AllEntriesGroup:;" + OS.NEWLINE + "1 TexGroup:cited entries\\;0\\;paper.aux\\;1\\;0x8a8a8aff\\;\\;\\;;" @@ -1734,7 +1734,7 @@ void integrationTestTexGroup() throws Exception { @Test void integrationTestProtectedFlag() throws IOException { ParserResult result = parser - .parse(new StringReader("@comment{jabref-meta: protectedFlag:true;}")); + .parse(Reader.of("@comment{jabref-meta: protectedFlag:true;}")); assertTrue(result.getMetaData().isProtected()); } @@ -1742,7 +1742,7 @@ void integrationTestProtectedFlag() throws IOException { @Test void integrationTestContentSelectors() throws IOException { ParserResult result = parser.parse( - new StringReader("@Comment{jabref-meta: selector_pubstate:approved;captured;received;status;}")); + Reader.of("@Comment{jabref-meta: selector_pubstate:approved;captured;received;status;}")); List values = new ArrayList<>(4); values.add("approved"); @@ -1754,7 +1754,7 @@ void integrationTestContentSelectors() throws IOException { } @Test - void parseReallyUnknownType() throws Exception { + void parseReallyUnknownType() throws ParseException { String bibtexEntry = """ @ReallyUnknownType{test, Comment = {testentry} @@ -1770,7 +1770,7 @@ void parseReallyUnknownType() throws Exception { } @Test - void parseOtherTypeTest() throws Exception { + void parseOtherTypeTest() throws ParseException { String bibtexEntry = """ @Other{test, Comment = {testentry} @@ -1786,25 +1786,25 @@ void parseOtherTypeTest() throws Exception { } @Test - void parseRecognizesDatabaseID() throws Exception { + void parseRecognizesDatabaseID() throws IOException { String expectedDatabaseID = "q1w2e3r4t5z6"; String sharedDatabaseFileContent = "\\% DBID: " + expectedDatabaseID + OS.NEWLINE + "@Article{a}"; - ParserResult parserResult = parser.parse(new StringReader(sharedDatabaseFileContent)); + ParserResult parserResult = parser.parse(Reader.of(sharedDatabaseFileContent)); String actualDatabaseID = parserResult.getDatabase().getSharedDatabaseID().get(); assertEquals(expectedDatabaseID, actualDatabaseID); } @Test - void parseDoesNotRecognizeDatabaseIDasUserComment() throws Exception { + void parseDoesNotRecognizeDatabaseIDasUserComment() throws IOException { String sharedDatabaseFileContent = "\\% Encoding: UTF-8" + OS.NEWLINE + "\\% DBID: q1w2e3r4t5z6" + OS.NEWLINE + "@Article{a}"; - ParserResult parserResult = parser.parse(new StringReader(sharedDatabaseFileContent)); + ParserResult parserResult = parser.parse(Reader.of(sharedDatabaseFileContent)); List entries = parserResult.getDatabase().getEntries(); assertEquals(1, entries.size()); @@ -1814,7 +1814,7 @@ void parseDoesNotRecognizeDatabaseIDasUserComment() throws Exception { @Test void integrationTestFileDirectories() throws IOException { ParserResult result = parser.parse( - new StringReader("@comment{jabref-meta: fileDirectory:\\\\Literature\\\\;}" + Reader.of("@comment{jabref-meta: fileDirectory:\\\\Literature\\\\;}" + "@comment{jabref-meta: fileDirectory-defaultOwner-user:D:\\\\Documents;}" + "@comment{jabref-meta: fileDirectoryLatex-defaultOwner-user:D:\\\\Latex;}")); @@ -1832,7 +1832,7 @@ void integrationTestFileDirectories() throws IOException { "."}) void fileDirectoriesUnmodified(String directory) throws IOException { ParserResult result = parser.parse( - new StringReader("@comment{jabref-meta: fileDirectory:" + directory + "}")); + Reader.of("@comment{jabref-meta: fileDirectory:" + directory + "}")); assertEquals(directory, result.getMetaData().getLibrarySpecificFileDirectory().get()); } @@ -1842,7 +1842,7 @@ void fileDirectoriesUnmodified(String directory) throws IOException { "\\\\servername\\path\\to\\file, \\\\\\\\servername\\\\path\\\\to\\\\file"}) void fileDirectoryWithDoubleEscapeIsRead(String expected, String provided) throws IOException { ParserResult result = parser.parse( - new StringReader("@comment{jabref-meta: fileDirectory: " + provided + "}")); + Reader.of("@comment{jabref-meta: fileDirectory: " + provided + "}")); assertEquals(expected, result.getMetaData().getLibrarySpecificFileDirectory().get()); } @@ -1865,7 +1865,7 @@ void parseReturnsEntriesInSameOrder() throws IOException { expected.add(third); ParserResult result = parser - .parse(new StringReader(""" + .parse(Reader.of(""" @article{a} @article{b} @inProceedings{c}""")); @@ -1885,7 +1885,7 @@ void parsePrecedingComment() throws IOException { }"""; // read in bibtex string - ParserResult result = parser.parse(new StringReader(bibtexEntry)); + ParserResult result = parser.parse(Reader.of(bibtexEntry)); Collection entries = result.getDatabase().getEntries(); BibEntry entry = entries.iterator().next(); @@ -1908,7 +1908,7 @@ void parseCommentAndEntryInOneLine() throws IOException { }"""; // read in bibtex string - ParserResult result = parser.parse(new StringReader(bibtexEntry)); + ParserResult result = parser.parse(Reader.of(bibtexEntry)); Collection entries = result.getDatabase().getEntries(); BibEntry entry = entries.iterator().next(); @@ -1936,7 +1936,7 @@ void preserveEncodingPrefixInsideEntry() throws ParseException { void parseBracketedComment() throws IOException { String commentText = "@Comment{someComment}"; - ParserResult result = parser.parse(new StringReader(commentText)); + ParserResult result = parser.parse(Reader.of(commentText)); assertEquals(commentText, result.getDatabase().getEpilog()); } @@ -1952,7 +1952,7 @@ void parseRegularCommentBeforeEntry() throws IOException { Number = {1} }"""; - ParserResult result = parser.parse(new StringReader(bibtexEntry)); + ParserResult result = parser.parse(Reader.of(bibtexEntry)); Collection entries = result.getDatabase().getEntries(); BibEntry entry = entries.iterator().next(); @@ -1963,7 +1963,7 @@ void parseRegularCommentBeforeEntry() throws IOException { void parseCommentWithoutBrackets() throws IOException { String commentText = "@Comment someComment"; - ParserResult result = parser.parse(new StringReader(commentText)); + ParserResult result = parser.parse(Reader.of(commentText)); assertEquals(commentText, result.getDatabase().getEpilog()); } @@ -1979,7 +1979,7 @@ void parseCommentWithoutBracketsBeforeEntry() throws IOException { Number = {1} }"""; - ParserResult result = parser.parse(new StringReader(bibtexEntry)); + ParserResult result = parser.parse(Reader.of(bibtexEntry)); Collection entries = result.getDatabase().getEntries(); BibEntry entry = entries.iterator().next(); @@ -1999,7 +1999,7 @@ void parseCommentContainingEntries() throws IOException { Number = {1} }"""; - ParserResult result = parser.parse(new StringReader(bibtexEntry)); + ParserResult result = parser.parse(Reader.of(bibtexEntry)); Collection entries = result.getDatabase().getEntries(); BibEntry entry = entries.iterator().next(); @@ -2019,7 +2019,7 @@ void parseCommentContainingEntriesAndAtSymbols() throws IOException { Number = {1} }"""; - ParserResult result = parser.parse(new StringReader(bibtexEntry)); + ParserResult result = parser.parse(Reader.of(bibtexEntry)); Collection entries = result.getDatabase().getEntries(); BibEntry entry = entries.iterator().next(); @@ -2028,7 +2028,7 @@ void parseCommentContainingEntriesAndAtSymbols() throws IOException { @Test void parseEmptyPreambleLeadsToEmpty() throws IOException { - ParserResult result = parser.parse(new StringReader("@preamble{}")); + ParserResult result = parser.parse(Reader.of("@preamble{}")); assertFalse(result.hasWarnings()); assertEquals(Optional.empty(), result.getDatabase().getPreamble()); @@ -2036,35 +2036,35 @@ void parseEmptyPreambleLeadsToEmpty() throws IOException { @Test void parseEmptyFileLeadsToPreamble() throws IOException { - ParserResult result = parser.parse(new StringReader("")); + ParserResult result = parser.parse(Reader.of("")); assertFalse(result.hasWarnings()); assertEquals(Optional.empty(), result.getDatabase().getPreamble()); } @Test - void parseYearWithMonthString() throws Exception { + void parseYearWithMonthString() throws ParseException { Optional result = parser.parseSingleEntry("@ARTICLE{HipKro03, year = {2003}, month = feb }"); assertEquals(new Date(2003, 2), result.get().getPublicationDate().get()); } @Test - void parseYearWithIllFormattedMonthString() throws Exception { + void parseYearWithIllFormattedMonthString() throws ParseException { Optional result = parser.parseSingleEntry("@ARTICLE{HipKro03, year = {2003}, month = #FEB# }"); assertEquals(new Date(2003, 2), result.get().getPublicationDate().get()); } @Test - void parseYearWithMonthNumber() throws Exception { + void parseYearWithMonthNumber() throws ParseException { Optional result = parser.parseSingleEntry("@ARTICLE{HipKro03, year = {2003}, month = 2 }"); assertEquals(new Date(2003, 2), result.get().getPublicationDate().get()); } @Test - void parseYear() throws Exception { + void parseYear() throws ParseException { Optional result = parser.parseSingleEntry("@ARTICLE{HipKro03, year = {2003} }"); assertEquals(new Date(2003), result.get().getPublicationDate().get()); @@ -2171,7 +2171,7 @@ void parseDuplicateKeywordsWithOnlyOneEntry() throws ParseException { } @Test - void parseDuplicateKeywordsWithTwoEntries() throws Exception { + void parseDuplicateKeywordsWithTwoEntries() throws IOException { BibEntry expectedEntryFirst = new BibEntry(StandardEntryType.Article) .withField(StandardField.KEYWORDS, "bbb") .withCitationKey("Test2017"); @@ -2188,7 +2188,7 @@ void parseDuplicateKeywordsWithTwoEntries() throws Exception { keywords = {asdf,asdf,asdf}, }, """; - ParserResult result = parser.parse(new StringReader(entries)); + ParserResult result = parser.parse(Reader.of(entries)); assertEquals(List.of(expectedEntryFirst, expectedEntrySecond), result.getDatabase().getEntries()); } @@ -2208,7 +2208,7 @@ void parseBibDeskLinkedFiles() throws IOException { .withField(new UnknownField("bdsk-url-1"), "https://arxiv.org/abs/2309.06478") .withField(StandardField.FILE, ":../../Downloads/2309.06478.pdf:"); - ParserResult result = parser.parse(new StringReader(""" + ParserResult result = parser.parse(Reader.of(""" @article{Kovakkuni:2023aa, author = {Navyasree Kovakkuni and Federico Lelli and Pierre-alain Duc and M{\\'e}d{\\'e}ric Boquien and Jonathan Braine and Elias Brinks and Vassilis Charmandaris and Francoise Combes and Jeremy Fensch and Ute Lisenfeld and Stacy McGaugh and J. Chris Mihos and Marcel. S. Pawlowski and Yves. Revaz and Peter. M. Weilbacher}, date-added = {2023-09-14 20:09:12 +0200}, @@ -2224,7 +2224,7 @@ void parseBibDeskLinkedFiles() throws IOException { """)); BibDatabase database = result.getDatabase(); - assertEquals(Collections.singletonList(expectedEntry), database.getEntries()); + assertEquals(List.of(expectedEntry), database.getEntries()); } @Test @@ -2239,7 +2239,7 @@ void parseInvalidBibDeskFilesResultsInWarnings() throws IOException { bdsk-file-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QVi4uLy4uLy4uL1BhcGVycy9Bc2hlaW0yMDA1IFRoZSBHZW9ncmFwaHkgb2YgSW5ub3ZhdGlvbiBSZWdpb25hbCBJbm5vdmF0aW9uIFN5c3RlbXMucGRm0hcLGBlXTlMuZGF0YU8RAkoAAAAAAkoAAgAADE1hY2ludG9zaCBIRAAAAAAAAAAAAAAAAAAAAM6T/wtIKwAAACI+9B9Bc2hlaW0yMDA1IFRoZSBHZW9nciMyMjQ4QzkucGRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIkjJw6jvRAAAAAAAAAAAAAMAAgAACSAAAAAAAAAAAAAAAAAAAAAGUGFwZXJzABAACAAAzpPw+wAAABEACAAAw6jhNAAAAAEAEAAiPvQAIjTXACHV2wAHw2AAAgBQTWFjaW50b3NoIEhEOlVzZXJzOgBpbGlwcGVydDoARG9jdW1lbnRzOgBQYXBlcnM6AEFzaGVpbTIwMDUgVGhlIEdlb2dyIzIyNDhDOS5wZGYADgCOAEYAQQBzAGgAZQBpAG0AMgAwADAANQAgAFQAaABlACAARwBlAG8AZwByAGEAcABoAHkAIABvAGYAIABJAG4AbgBvAHYAYQB0AGkAbwBuACAAUgBlAGcAaQBvAG4AYQBsACAASQBuAG4AbwB2AGEAdABpAG8AbgAgAFMAeQBzAHQAZQBtAHMALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASAGZVc2Vycy9pbGlwcGVydC9Eb2N1bWVudHMvUGFwZXJzL0FzaGVpbTIwMDUgVGhlIEdlb2dyYXBoeSBvZiBJbm5vdmF0aW9uIFJlZ2lvbmFsIElubm92YXRpb24gU3lzdGVtcy5wZGYAEwABLwAAFQACAA///wAAgAbSGxwdHlokY2xhc3NuYW1lWCRjbGFzc2VzXU5TTXV0YWJsZURhdGGjHR8gVk5TRGF0YVhOU09iamVjdNIbHCIjXE5TRGljdGlvbmFyeaIiIF8QD05TS2V5ZWRBcmNoaXZlctEmJ1Ryb290gAEACAARABoAIwAtADIANwBAAEYATQBVAGAAZwBqAGwAbgBxAHMAdQB3AIQAjgDnAOwA9ANCA0QDSQNUA10DawNvA3YDfwOEA5EDlAOmA6kDrgAAAAAAAAIBAAAAAAAAACgAAAAAAAAAAAAAAAAAAAOw}, }, """; - ParserResult result = parser.parse(new StringReader(entries)); + ParserResult result = parser.parse(Reader.of(entries)); BibEntry firstEntry = new BibEntry(StandardEntryType.Article) .withCitationKey("Test2017"); diff --git a/src/test/java/org/jabref/logic/importer/fileformat/CffImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/CffImporterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/fileformat/CffImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/CffImporterTest.java diff --git a/src/test/java/org/jabref/logic/importer/fileformat/CitaviXmlImporterFilesTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/CitaviXmlImporterFilesTest.java similarity index 92% rename from src/test/java/org/jabref/logic/importer/fileformat/CitaviXmlImporterFilesTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/CitaviXmlImporterFilesTest.java index b97c6ffd4c9..1b121bb51cc 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/CitaviXmlImporterFilesTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/CitaviXmlImporterFilesTest.java @@ -4,6 +4,8 @@ import java.util.function.Predicate; import java.util.stream.Stream; +import org.jabref.logic.importer.ImportException; + import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -36,7 +38,7 @@ void isNotRecognizedFormat(String fileName) throws IOException { @ParameterizedTest @MethodSource("fileNames") - void importEntries(String fileName) throws Exception { + void importEntries(String fileName) throws ImportException, IOException { ImporterTestEngine.testImportEntries(citaviXmlImporter, fileName, FILE_ENDING); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest.java diff --git a/src/test/java/org/jabref/logic/importer/fileformat/CopacImporterFilesTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/CopacImporterFilesTest.java similarity index 91% rename from src/test/java/org/jabref/logic/importer/fileformat/CopacImporterFilesTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/CopacImporterFilesTest.java index daab696d2c8..78fb1a6cd9b 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/CopacImporterFilesTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/CopacImporterFilesTest.java @@ -4,6 +4,8 @@ import java.util.function.Predicate; import java.util.stream.Stream; +import org.jabref.logic.importer.ImportException; + import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -36,7 +38,7 @@ void isNotRecognizedFormat(String fileName) throws IOException { @ParameterizedTest @MethodSource("fileNames") - void importEntries(String fileName) throws Exception { + void importEntries(String fileName) throws ImportException, IOException { ImporterTestEngine.testImportEntries(new CopacImporter(), fileName, FILE_ENDING); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/CopacImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/CopacImporterTest.java similarity index 81% rename from src/test/java/org/jabref/logic/importer/fileformat/CopacImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/CopacImporterTest.java index df4272af7e4..3eea430ecf5 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/CopacImporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/CopacImporterTest.java @@ -1,7 +1,8 @@ package org.jabref.logic.importer.fileformat; +import java.io.IOException; +import java.net.URISyntaxException; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import org.jabref.logic.util.StandardFileType; @@ -17,7 +18,7 @@ class CopacImporterTest { private CopacImporter importer; @BeforeEach - void setUp() throws Exception { + void setUp() { importer = new CopacImporter(); } @@ -32,9 +33,9 @@ void getDescription() { } @Test - void importEmptyEntries() throws Exception { + void importEmptyEntries() throws URISyntaxException, IOException { Path path = Path.of(CopacImporterTest.class.getResource("Empty.txt").toURI()); List entries = importer.importDatabase(path).getDatabase().getEntries(); - assertEquals(Collections.emptyList(), entries); + assertEquals(List.of(), entries); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/CustomImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/CustomImporterTest.java similarity index 89% rename from src/test/java/org/jabref/logic/importer/fileformat/CustomImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/CustomImporterTest.java index 68f495da041..b00e3776e80 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/CustomImporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/CustomImporterTest.java @@ -3,6 +3,7 @@ import java.nio.file.Path; import java.util.Arrays; +import org.jabref.logic.importer.ImportException; import org.jabref.logic.importer.Importer; import org.junit.jupiter.api.BeforeEach; @@ -16,7 +17,7 @@ class CustomImporterTest { private CustomImporter importer; @BeforeEach - void setUp() throws Exception { + void setUp() throws ImportException { importer = asCustomImporter(new CopacImporter()); } @@ -59,14 +60,14 @@ void equalsIsBasedOnName() { } @Test - void compareToSmaller() throws Exception { + void compareToSmaller() throws ImportException { CustomImporter ovidImporter = asCustomImporter(new OvidImporter()); assertTrue(importer.compareTo(ovidImporter) < 0); } @Test - void compareToEven() throws Exception { + void compareToEven() throws ImportException { assertEquals(0, importer.compareTo(asCustomImporter(new CopacImporter()))); } @@ -76,7 +77,7 @@ void testToString() { } @Test - void classicConstructor() throws Exception { + void classicConstructor() throws ImportException { CustomImporter customImporter = new CustomImporter( "src/main/java/org/jabref/logic/importer/fileformat/CopacImporter.java", "org.jabref.logic.importer.fileformat.CopacImporter"); @@ -84,7 +85,7 @@ void classicConstructor() throws Exception { assertEquals(importer, customImporter); } - private CustomImporter asCustomImporter(Importer importer) throws Exception { + private CustomImporter asCustomImporter(Importer importer) throws ImportException { return new CustomImporter( "src/main/java/org/jabref/logic/importer/fileformat/" + importer.getName() + "Importer.java", importer.getClass().getName()); diff --git a/src/test/java/org/jabref/logic/importer/fileformat/EndnoteImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/EndnoteImporterTest.java similarity index 98% rename from src/test/java/org/jabref/logic/importer/fileformat/EndnoteImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/EndnoteImporterTest.java index c57e3a85e04..d547709a7c0 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/EndnoteImporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/EndnoteImporterTest.java @@ -2,7 +2,7 @@ import java.io.BufferedReader; import java.io.IOException; -import java.io.StringReader; +import java.io.Reader; import java.net.URISyntaxException; import java.nio.file.Path; import java.util.Arrays; @@ -121,7 +121,7 @@ void importEntries0() throws IOException, URISyntaxException { @Test void importEntries1() throws IOException { String medlineString = "%O Artn\\\\s testO\n%A testA,\n%E testE0, testE1"; - List bibEntries = importer.importDatabase(new BufferedReader(new StringReader(medlineString))).getDatabase() + List bibEntries = importer.importDatabase(new BufferedReader(Reader.of(medlineString))).getDatabase() .getEntries(); BibEntry entry = bibEntries.getFirst(); diff --git a/src/test/java/org/jabref/logic/importer/fileformat/EndnoteXmlImporterFilesTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/EndnoteXmlImporterFilesTest.java similarity index 94% rename from src/test/java/org/jabref/logic/importer/fileformat/EndnoteXmlImporterFilesTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/EndnoteXmlImporterFilesTest.java index e4f4103dad5..22ae7133cbe 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/EndnoteXmlImporterFilesTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/EndnoteXmlImporterFilesTest.java @@ -4,6 +4,7 @@ import java.util.function.Predicate; import java.util.stream.Stream; +import org.jabref.logic.importer.ImportException; import org.jabref.logic.importer.ImportFormatPreferences; import org.junit.jupiter.api.BeforeEach; @@ -49,7 +50,7 @@ void isNotRecognizedFormat(String fileName) throws IOException { @ParameterizedTest @MethodSource("fileNames") - void importEntries(String fileName) throws Exception { + void importEntries(String fileName) throws ImportException, IOException { ImporterTestEngine.testImportEntries(new EndnoteXmlImporter(importFormatPreferences), fileName, FILE_ENDING); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/ImporterTestEngine.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/ImporterTestEngine.java similarity index 98% rename from src/test/java/org/jabref/logic/importer/fileformat/ImporterTestEngine.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/ImporterTestEngine.java index 6f434ef28b8..99c62ab4284 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/ImporterTestEngine.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/ImporterTestEngine.java @@ -11,11 +11,11 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import org.jabref.logic.bibtex.BibEntryAssert; import org.jabref.logic.importer.ImportException; import org.jabref.logic.importer.Importer; import org.jabref.logic.importer.ParserResult; import org.jabref.model.entry.BibEntry; +import org.jabref.support.BibEntryAssert; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; diff --git a/src/test/java/org/jabref/logic/importer/fileformat/InspecImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/InspecImporterTest.java similarity index 89% rename from src/test/java/org/jabref/logic/importer/fileformat/InspecImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/InspecImporterTest.java index 02ec6c960c7..5ffc954015e 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/InspecImporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/InspecImporterTest.java @@ -2,18 +2,17 @@ import java.io.BufferedReader; import java.io.IOException; -import java.io.StringReader; +import java.io.Reader; import java.net.URISyntaxException; -import java.util.Collections; import java.util.List; import java.util.function.Predicate; import java.util.stream.Stream; -import org.jabref.logic.bibtex.BibEntryAssert; import org.jabref.logic.util.StandardFileType; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; import org.jabref.model.entry.types.StandardEntryType; +import org.jabref.support.BibEntryAssert; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -40,7 +39,7 @@ private static Stream nonInspecfileNames() throws IOException { } @BeforeEach - void setUp() throws Exception { + void setUp() { this.importer = new InspecImporter(); } @@ -68,7 +67,7 @@ void completeBibtexEntryOnJournalPaperImport() throws IOException, URISyntaxExce expectedEntry.setField(StandardField.PAGES, "20"); expectedEntry.setField(StandardField.VOLUME, "19"); - BibEntryAssert.assertEquals(Collections.singletonList(expectedEntry), + BibEntryAssert.assertEquals(List.of(expectedEntry), InspecImporterTest.class.getResource("InspecImportTest2.txt"), importer); } @@ -81,9 +80,9 @@ void importConferencePaperGivesInproceedings() throws IOException { BibEntry expectedEntry = new BibEntry(StandardEntryType.InProceedings); expectedEntry.setField(StandardField.AUTHOR, "Prechelt, Lutz"); - try (BufferedReader reader = new BufferedReader(new StringReader(testInput))) { + try (BufferedReader reader = new BufferedReader(Reader.of(testInput))) { List entries = importer.importDatabase(reader).getDatabase().getEntries(); - assertEquals(Collections.singletonList(expectedEntry), entries); + assertEquals(List.of(expectedEntry), entries); } } @@ -96,7 +95,7 @@ void importMiscGivesMisc() throws IOException { BibEntry expectedEntry = new BibEntry(StandardEntryType.Misc); expectedEntry.setField(StandardField.AUTHOR, "Prechelt, Lutz"); - try (BufferedReader reader = new BufferedReader(new StringReader(testInput))) { + try (BufferedReader reader = new BufferedReader(Reader.of(testInput))) { List entries = importer.importDatabase(reader).getDatabase().getEntries(); assertEquals(1, entries.size()); BibEntry entry = entries.getFirst(); diff --git a/src/test/java/org/jabref/logic/importer/fileformat/IsiImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/IsiImporterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/fileformat/IsiImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/IsiImporterTest.java diff --git a/src/test/java/org/jabref/logic/importer/fileformat/MarcXmlParserTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/MarcXmlParserTest.java similarity index 83% rename from src/test/java/org/jabref/logic/importer/fileformat/MarcXmlParserTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/MarcXmlParserTest.java index 60ee9da6da7..1809ac2ae93 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/MarcXmlParserTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/MarcXmlParserTest.java @@ -6,9 +6,10 @@ import java.util.function.Predicate; import java.util.stream.Stream; -import org.jabref.logic.bibtex.BibEntryAssert; +import org.jabref.logic.importer.ParseException; import org.jabref.logic.util.io.FileUtil; import org.jabref.model.entry.BibEntry; +import org.jabref.support.BibEntryAssert; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -24,7 +25,7 @@ private static Stream fileNames() throws IOException { return ImporterTestEngine.getTestFiles(fileName).stream(); } - private void doTest(String xmlName, String bibName) throws Exception { + private void doTest(String xmlName, String bibName) throws IOException, ParseException { try (InputStream is = MarcXmlParserTest.class.getResourceAsStream(xmlName)) { MarcXmlParser parser = new MarcXmlParser(); List entries = parser.parseEntries(is); @@ -35,7 +36,7 @@ private void doTest(String xmlName, String bibName) throws Exception { @ParameterizedTest @MethodSource("fileNames") - void importEntries(String fileName) throws Exception { + void importEntries(String fileName) throws IOException, ParseException { String bibName = FileUtil.getBaseName(fileName) + ".bib"; doTest(fileName, bibName); } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/MedlineImporterFilesTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/MedlineImporterFilesTest.java similarity index 94% rename from src/test/java/org/jabref/logic/importer/fileformat/MedlineImporterFilesTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/MedlineImporterFilesTest.java index fceb4bd7a9e..44398594d7d 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/MedlineImporterFilesTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/MedlineImporterFilesTest.java @@ -4,6 +4,8 @@ import java.util.function.Predicate; import java.util.stream.Stream; +import org.jabref.logic.importer.ImportException; + import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -38,7 +40,7 @@ void isNotRecognizedFormat(String fileName) throws IOException { @ParameterizedTest @MethodSource("fileNames") - void importEntries(String fileName) throws Exception { + void importEntries(String fileName) throws ImportException, IOException { ImporterTestEngine.testImportEntries(new MedlineImporter(), fileName, FILE_ENDING); } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/MedlineImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/MedlineImporterTest.java similarity index 97% rename from src/test/java/org/jabref/logic/importer/fileformat/MedlineImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/MedlineImporterTest.java index d9987d9a8ad..e56bd415abf 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/MedlineImporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/MedlineImporterTest.java @@ -22,7 +22,7 @@ class MedlineImporterTest { private MedlineImporter importer; @BeforeEach - void setUp() throws Exception { + void setUp() { this.importer = new MedlineImporter(); } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/MedlinePlainImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/MedlinePlainImporterTest.java similarity index 94% rename from src/test/java/org/jabref/logic/importer/fileformat/MedlinePlainImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/MedlinePlainImporterTest.java index e23df96ffe4..76b5c4edf81 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/MedlinePlainImporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/MedlinePlainImporterTest.java @@ -3,20 +3,19 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; -import java.io.StringReader; +import java.io.Reader; import java.net.URISyntaxException; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.function.Predicate; import java.util.stream.Stream; -import org.jabref.logic.bibtex.BibEntryAssert; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; import org.jabref.model.entry.types.StandardEntryType; +import org.jabref.support.BibEntryAssert; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -46,7 +45,7 @@ private static Stream fileNames() throws IOException { } private BufferedReader readerForString(String string) { - return new BufferedReader(new StringReader(string)); + return new BufferedReader(Reader.of(string)); } @BeforeEach @@ -58,7 +57,7 @@ void setUp() { @ParameterizedTest @MethodSource("fileNames") - void isRecognizedFormat(String fileName) throws Exception { + void isRecognizedFormat(String fileName) throws IOException { ImporterTestEngine.testIsRecognizedFormat(importer, fileName); } @@ -119,7 +118,7 @@ void importMultipleEntriesInSingleFile() throws IOException, URISyntaxException @Test void emptyFileImport() throws IOException { List emptyEntries = importer.importDatabase(readerForString("")).getDatabase().getEntries(); - assertEquals(Collections.emptyList(), emptyEntries); + assertEquals(List.of(), emptyEntries); } @ParameterizedTest @@ -192,7 +191,7 @@ void multiLineComments() throws IOException { Comment14 Comment15 Comment16"""); - assertEquals(Collections.singletonList(expectedEntry), actualEntries); + assertEquals(List.of(expectedEntry), actualEntries); } } @@ -208,7 +207,7 @@ void keyWords() throws IOException { expectedEntry.setField(StandardField.PMID, "22664795"); expectedEntry.setField(StandardField.KEYWORDS, "Female, Male"); - assertEquals(Collections.singletonList(expectedEntry), actualEntries); + assertEquals(List.of(expectedEntry), actualEntries); } } @@ -236,11 +235,11 @@ void invalidFormat() throws URISyntaxException, IOException { List entries = importer.importDatabase(file).getDatabase().getEntries(); - assertEquals(Collections.emptyList(), entries); + assertEquals(List.of(), entries); } @Test - void nullReader() throws IOException { + void nullReader() { Executable fail = () -> { try (BufferedReader reader = null) { importer.importDatabase(reader); @@ -266,7 +265,7 @@ void allArticleTypes() throws IOException { .withField(StandardField.KEYWORDS, "Female") .withField(StandardField.PMID, "22664795"); - assertEquals(Collections.singletonList(expectedEntry), actualEntries); + assertEquals(List.of(expectedEntry), actualEntries); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/ModsImporterFilesTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/ModsImporterFilesTest.java similarity index 92% rename from src/test/java/org/jabref/logic/importer/fileformat/ModsImporterFilesTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/ModsImporterFilesTest.java index f51f0ce7fdc..708521ce0ea 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/ModsImporterFilesTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/ModsImporterFilesTest.java @@ -4,6 +4,7 @@ import java.util.function.Predicate; import java.util.stream.Stream; +import org.jabref.logic.importer.ImportException; import org.jabref.logic.importer.ImportFormatPreferences; import org.junit.jupiter.api.BeforeEach; @@ -38,7 +39,7 @@ void isRecognizedFormat(String fileName) throws IOException { @ParameterizedTest @MethodSource("fileNames") - void importEntries(String fileName) throws Exception { + void importEntries(String fileName) throws ImportException, IOException { ImporterTestEngine.testImportEntries(new ModsImporter(importFormatPreferences), fileName, FILE_ENDING); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/MrDLibImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/MrDLibImporterTest.java similarity index 97% rename from src/test/java/org/jabref/logic/importer/fileformat/MrDLibImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/MrDLibImporterTest.java index f6619dcb4de..6ff9e544aef 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/MrDLibImporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/MrDLibImporterTest.java @@ -2,7 +2,7 @@ import java.io.BufferedReader; import java.io.IOException; -import java.io.StringReader; +import java.io.Reader; import java.util.List; import org.jabref.logic.importer.ParserResult; @@ -24,7 +24,7 @@ class MrDLibImporterTest { void setUp() { importer = new MrDLibImporter(); String testInput = "{\"label\": {\"label-description\": \"The following articles are similar to the document have currently selected.\", \"label-language\": \"en\", \"label-text\": \"Related Articles\"}, \"recommendation_set_id\": \"1\", \"recommendations\": { \"74021358\": { \"abstract\": \"abstract\", \"authors\":\"Sajovic, Marija\", \"published_year\": \"2006\", \"item_id_original\": \"12088644\", \"keywords\": [ \"visoko\\u0161olski program Geodezija - smer Prostorska informatika\" ], \"language_provided\": \"sl\", \"recommendation_id\": \"1\", \"title\": \"The protection of rural lands with the spatial development strategy on the case of Hrastnik commune\", \"url\": \"http://drugg.fgg.uni-lj.si/701/1/GEV_0199_Sajovic.pdf\" }, \"82005804\": { \"abstract\": \"abstract\", \"year_published\": null, \"item_id_original\": \"30145702\", \"language_provided\": null, \"recommendation_id\": \"2\", \"title\": \"Engagement of the volunteers in the solution to the accidents in the South-Moravia region\" }, \"82149599\": { \"abstract\": \"abstract\", \"year_published\": null, \"item_id_original\": \"97690763\", \"language_provided\": null, \"recommendation_id\": \"3\", \"title\": \"\\\"The only Father's word\\\". The relationship of the Father and the Son in the documents of saint John of the Cross\", \"url\": \"http://www.nusl.cz/ntk/nusl-285711\" }, \"84863921\": { \"abstract\": \"abstract\", \"authors\":\"Kaffa, Elena\", \"year_published\": null, \"item_id_original\": \"19397104\", \"keywords\": [ \"BX\", \"D111\" ], \"language_provided\": \"en\", \"recommendation_id\": \"4\", \"title\": \"Greek Church of Cyprus, the Morea and Constantinople during the Frankish Era (1196-1303)\" }, \"88950992\": { \"abstract\": \"abstract\", \"authors\":\"Yasui, Kono\", \"year_published\": null, \"item_id_original\": \"38763657\", \"language_provided\": null, \"recommendation_id\": \"5\", \"title\": \"A Phylogenetic Consideration on the Vascular Plants, Cotyledonary Node Including Hypocotyl Being Taken as the Ancestral Form : A Preliminary Note\" } }}"; - input = new BufferedReader(new StringReader(testInput)); + input = new BufferedReader(Reader.of(testInput)); } @Test diff --git a/src/test/java/org/jabref/logic/importer/fileformat/MsBibImporterFilesTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/MsBibImporterFilesTest.java similarity index 91% rename from src/test/java/org/jabref/logic/importer/fileformat/MsBibImporterFilesTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/MsBibImporterFilesTest.java index 9b679ab7b45..3d3d23cf0b9 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/MsBibImporterFilesTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/MsBibImporterFilesTest.java @@ -4,6 +4,8 @@ import java.util.function.Predicate; import java.util.stream.Stream; +import org.jabref.logic.importer.ImportException; + import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -36,7 +38,7 @@ void isNotRecognizedFormat(String fileName) throws IOException { @ParameterizedTest @MethodSource("fileNames") - void importEntries(String fileName) throws Exception { + void importEntries(String fileName) throws ImportException, IOException { ImporterTestEngine.testImportEntries(new MsBibImporter(), fileName, FILE_ENDING); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/MsBibImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/MsBibImporterTest.java similarity index 91% rename from src/test/java/org/jabref/logic/importer/fileformat/MsBibImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/MsBibImporterTest.java index 5136129877c..c2db2a95b2d 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/MsBibImporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/MsBibImporterTest.java @@ -4,7 +4,6 @@ import java.net.URISyntaxException; import java.nio.file.Path; import java.util.Arrays; -import java.util.Collections; import java.util.List; import org.jabref.logic.importer.Importer; @@ -20,7 +19,7 @@ class MsBibImporterTest { Importer importer = new MsBibImporter(); @Test - final void isNotRecognizedFormat() throws Exception { + final void isNotRecognizedFormat() throws IOException, URISyntaxException { List notAccepted = Arrays.asList("CopacImporterTest1.txt", "IsiImporterTest1.isi", "IsiImporterTestInspec.isi", "emptyFile.xml", "IsiImporterTestWOS.isi"); for (String s : notAccepted) { @@ -33,7 +32,7 @@ final void isNotRecognizedFormat() throws Exception { final void importEntriesEmpty() throws IOException, URISyntaxException { Path file = Path.of(MsBibImporter.class.getResource("EmptyMsBib_Test.xml").toURI()); List entries = importer.importDatabase(file).getDatabase().getEntries(); - assertEquals(Collections.emptyList(), entries); + assertEquals(List.of(), entries); } @Test diff --git a/src/test/java/org/jabref/logic/importer/fileformat/OvidImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/OvidImporterTest.java similarity index 96% rename from src/test/java/org/jabref/logic/importer/fileformat/OvidImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/OvidImporterTest.java index e36ccd7d345..65a96faeca4 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/OvidImporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/OvidImporterTest.java @@ -4,17 +4,16 @@ import java.io.InputStream; import java.net.URISyntaxException; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.function.Predicate; import java.util.stream.Stream; -import org.jabref.logic.bibtex.BibEntryAssert; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; import org.jabref.model.entry.field.UnknownField; import org.jabref.model.entry.types.StandardEntryType; +import org.jabref.support.BibEntryAssert; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; @@ -42,13 +41,13 @@ private static Stream invalidFileNames() throws IOException { @ParameterizedTest @MethodSource("fileNames") - void isRecognizedFormatAccept(String fileName) throws IOException, URISyntaxException { + void isRecognizedFormatAccept(String fileName) throws IOException { ImporterTestEngine.testIsRecognizedFormat(importer, fileName); } @ParameterizedTest @MethodSource("invalidFileNames") - void isRecognizedFormatRejected(String fileName) throws IOException, URISyntaxException { + void isRecognizedFormatRejected(String fileName) throws IOException { ImporterTestEngine.testIsNotRecognizedFormat(importer, fileName); } @@ -56,7 +55,7 @@ void isRecognizedFormatRejected(String fileName) throws IOException, URISyntaxEx void importEmpty() throws IOException, URISyntaxException { Path file = Path.of(OvidImporter.class.getResource("Empty.txt").toURI()); List entries = importer.importDatabase(file).getDatabase().getEntries(); - assertEquals(Collections.emptyList(), entries); + assertEquals(List.of(), entries); } @Test @@ -116,7 +115,7 @@ void importEntries1() throws IOException, URISyntaxException { void importEntries2() throws IOException, URISyntaxException { Path file = Path.of(OvidImporter.class.getResource("OvidImporterTest2Invalid.txt").toURI()); List entries = importer.importDatabase(file).getDatabase().getEntries(); - assertEquals(Collections.emptyList(), entries); + assertEquals(List.of(), entries); } @Test diff --git a/src/test/java/org/jabref/logic/importer/fileformat/RISImporterFilesTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/RISImporterFilesTest.java similarity index 88% rename from src/test/java/org/jabref/logic/importer/fileformat/RISImporterFilesTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/RISImporterFilesTest.java index d343a3925bf..df3393e140b 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/RISImporterFilesTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/RISImporterFilesTest.java @@ -4,6 +4,8 @@ import java.util.function.Predicate; import java.util.stream.Stream; +import org.jabref.logic.importer.ImportException; + import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -24,7 +26,7 @@ void isRecognizedFormat(String fileName) throws IOException { @ParameterizedTest @MethodSource("fileNames") - void importEntries(String fileName) throws Exception { + void importEntries(String fileName) throws ImportException, IOException { ImporterTestEngine.testImportEntries(new RisImporter(), fileName, FILE_ENDING); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/RISImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/RISImporterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/fileformat/RISImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/RISImporterTest.java diff --git a/src/test/java/org/jabref/logic/importer/fileformat/RepecNepImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/RepecNepImporterTest.java similarity index 93% rename from src/test/java/org/jabref/logic/importer/fileformat/RepecNepImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/RepecNepImporterTest.java index 6ee8279e352..283f539c524 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/RepecNepImporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/RepecNepImporterTest.java @@ -4,6 +4,7 @@ import java.util.function.Predicate; import java.util.stream.Stream; +import org.jabref.logic.importer.ImportException; import org.jabref.logic.importer.ImportFormatPreferences; import org.junit.jupiter.api.BeforeEach; @@ -53,7 +54,7 @@ void isNotRecognizedFormat(String fileName) throws IOException { @ParameterizedTest @MethodSource("fileNames") - void importEntries(String fileName) throws Exception { + void importEntries(String fileName) throws ImportException, IOException { ImporterTestEngine.testImportEntries(testImporter, fileName, FILE_ENDING); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfContentImporterFilesTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfContentImporterFilesTest.java similarity index 89% rename from src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfContentImporterFilesTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfContentImporterFilesTest.java index daf31362996..ed8a5b982c3 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfContentImporterFilesTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfContentImporterFilesTest.java @@ -4,6 +4,7 @@ import java.util.function.Predicate; import java.util.stream.Stream; +import org.jabref.logic.importer.ImportException; import org.jabref.logic.importer.fileformat.ImporterTestEngine; import org.junit.jupiter.api.Disabled; @@ -29,7 +30,7 @@ void isRecognizedFormat(String fileName) throws IOException { @ParameterizedTest @MethodSource("fileNames") @Disabled("bib file does not contain linked file") - void importEntries(String fileName) throws Exception { + void importEntries(String fileName) throws ImportException, IOException { ImporterTestEngine.testImportEntries(new PdfContentImporter(), fileName, FILE_ENDING); } } diff --git a/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfContentPartialImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfContentPartialImporterTest.java similarity index 96% rename from src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfContentPartialImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfContentPartialImporterTest.java index 4ee7ecaf51e..1e646817444 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfContentPartialImporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfContentPartialImporterTest.java @@ -1,5 +1,6 @@ package org.jabref.logic.importer.fileformat.pdf; +import java.net.URISyntaxException; import java.nio.file.Path; import java.util.List; import java.util.Objects; @@ -22,14 +23,14 @@ class PdfContentPartialImporterTest { private final PdfContentImporter importer = new PdfContentImporter(); @Test - void doesNotHandleEncryptedPdfs() throws Exception { + void doesNotHandleEncryptedPdfs() throws URISyntaxException { Path file = Path.of(PdfContentImporter.class.getResource("/pdfs/encrypted.pdf").toURI()); List result = importer.importDatabase(file).getDatabase().getEntries(); assertEquals(List.of(), result); } @Test - void importTwiceWorksAsExpected() throws Exception { + void importTwiceWorksAsExpected() throws URISyntaxException { Path file = Path.of(PdfContentImporter.class.getResource("/pdfs/minimal.pdf").toURI()); List result = importer.importDatabase(file).getDatabase().getEntries(); @@ -134,7 +135,7 @@ void extractArXivFromPage() { .withField(StandardField.TITLE, "A Multi-Year Grey Literature Review on AI-assisted Test Automation") .withField(StandardField.EPRINT, "2408.06224v1") .withField(StandardField.EPRINTTYPE, "arXiv") - .withField((StandardField.KEYWORDS), "Test Automation Artificial Intelligence AI-assisted Test Automation Grey Literature Automated Test Generation Self-Healing Test Scripts"); + .withField(StandardField.KEYWORDS, "Test Automation Artificial Intelligence AI-assisted Test Automation Grey Literature Automated Test Generation Self-Healing Test Scripts"); // This is from https://arxiv.org/abs/2408.06224 String firstPageContent = """ @@ -167,7 +168,7 @@ void extractArXivFromPage() { @ParameterizedTest @MethodSource("providePdfData") - void pdfTitleExtraction(String expectedTitle, String filePath) throws Exception { + void pdfTitleExtraction(String expectedTitle, String filePath) throws URISyntaxException { Path file = Path.of(Objects.requireNonNull(PdfContentImporter.class.getResource(filePath)).toURI()); List result = importer.importDatabase(file).getDatabase().getEntries(); assertEquals(Optional.of(expectedTitle), result.getFirst().getTitle()); diff --git a/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfEmbeddedBibFileImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfEmbeddedBibFileImporterTest.java similarity index 90% rename from src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfEmbeddedBibFileImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfEmbeddedBibFileImporterTest.java index 0073678fe7d..4b1aee8378d 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfEmbeddedBibFileImporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfEmbeddedBibFileImporterTest.java @@ -1,7 +1,7 @@ package org.jabref.logic.importer.fileformat.pdf; +import java.net.URISyntaxException; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import javafx.collections.FXCollections; @@ -31,14 +31,14 @@ void setUp() { } @Test - void doesNotHandleEncryptedPdfs() throws Exception { + void doesNotHandleEncryptedPdfs() throws URISyntaxException { Path file = Path.of(PdfEmbeddedBibFileImporter.class.getResource("/pdfs/encrypted.pdf").toURI()); List result = importer.importDatabase(file).getDatabase().getEntries(); - assertEquals(Collections.emptyList(), result); + assertEquals(List.of(), result); } @Test - void importWorksAsExpected() throws Exception { + void importWorksAsExpected() throws URISyntaxException { Path file = Path.of(PdfEmbeddedBibFileImporterTest.class.getResource("mixedMetadata.pdf").toURI()); List result = importer.importDatabase(file).getDatabase().getEntries(); diff --git a/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfGrobidImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfGrobidImporterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfGrobidImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfGrobidImporterTest.java diff --git a/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfMergeMetadataImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfMergeMetadataImporterTest.java similarity index 95% rename from src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfMergeMetadataImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfMergeMetadataImporterTest.java index 1a426261a98..c4db330ebec 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfMergeMetadataImporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfMergeMetadataImporterTest.java @@ -1,7 +1,8 @@ package org.jabref.logic.importer.fileformat.pdf; +import java.io.IOException; +import java.net.URISyntaxException; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.Optional; @@ -50,15 +51,15 @@ void setUp() { } @Test - void doesNotHandleEncryptedPdfs() throws Exception { + void doesNotHandleEncryptedPdfs() throws URISyntaxException { Path file = Path.of(PdfMergeMetadataImporter.class.getResource("/pdfs/encrypted.pdf").toURI()); List result = importer.importDatabase(file).getDatabase().getEntries(); - assertEquals(Collections.emptyList(), result); + assertEquals(List.of(), result); } @Test @Disabled("Switch from ottobib to OpenLibraryFetcher changed the results") - void importWorksAsExpected() throws Exception { + void importWorksAsExpected() throws URISyntaxException { Path file = Path.of(PdfMergeMetadataImporterTest.class.getResource("mixedMetadata.pdf").toURI()); List result = importer.importDatabase(file).getDatabase().getEntries(); @@ -92,7 +93,7 @@ void importWorksAsExpected() throws Exception { } @Test - void pdfMetadataExtractedFrom2024SPLCBecker() throws Exception { + void pdfMetadataExtractedFrom2024SPLCBecker() throws URISyntaxException { Path file = Path.of(PdfMergeMetadataImporterTest.class.getResource("2024_SPLC_Becker.pdf").toURI()); List result = importer.importDatabase(file).getDatabase().getEntries(); @@ -119,7 +120,7 @@ void pdfMetadataExtractedFrom2024SPLCBecker() throws Exception { } @Test - void fetchArxivInformationForPdfWithArxivId() throws Exception { + void fetchArxivInformationForPdfWithArxivId() throws URISyntaxException { Path file = Path.of(PdfMergeMetadataImporter.class.getResource("/pdfs/test-arxivMetadata.pdf").toURI()); List result = importer.importDatabase(file).getDatabase().getEntries(); @@ -134,7 +135,7 @@ void fetchArxivInformationForPdfWithArxivId() throws Exception { .withField(StandardField.FILE, ":http\\://arxiv.org/pdf/2408.06224v2:PDF;:" + file.toString().replace("\\", "/").replace(":", "\\:") + ":PDF") .withField(StandardField.EPRINTCLASS, "cs.SE") .withField(new UnknownField("copyright"), "Creative Commons Attribution Share Alike 4.0 International") - .withField((InternalField.KEY_FIELD), "https://doi.org/10.48550/arxiv.2408.06224") + .withField(InternalField.KEY_FIELD, "https://doi.org/10.48550/arxiv.2408.06224") .withField(StandardField.YEAR, "2024") .withField(StandardField.KEYWORDS, "Software Engineering (cs.SE), FOS: Computer and information sciences, FOS: Computer and information sciences") .withField(StandardField.MONTH, "1") @@ -145,7 +146,7 @@ void fetchArxivInformationForPdfWithArxivId() throws Exception { } @Test - void importRelativizesFilePath() throws Exception { + void importRelativizesFilePath() throws URISyntaxException, IOException { // Initialize database and preferences FilePreferences preferences = mock(FilePreferences.class); BibDatabaseContext database = new BibDatabaseContext(); diff --git a/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfVerbatimBibtexImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfVerbatimBibtexImporterTest.java similarity index 91% rename from src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfVerbatimBibtexImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfVerbatimBibtexImporterTest.java index 276690ed6c5..0ae09608078 100644 --- a/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfVerbatimBibtexImporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfVerbatimBibtexImporterTest.java @@ -1,7 +1,7 @@ package org.jabref.logic.importer.fileformat.pdf; +import java.net.URISyntaxException; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import javafx.collections.FXCollections; @@ -31,14 +31,14 @@ void setUp() { } @Test - void doesNotHandleEncryptedPdfs() throws Exception { + void doesNotHandleEncryptedPdfs() throws URISyntaxException { Path file = Path.of(PdfVerbatimBibtexImporter.class.getResource("/pdfs/encrypted.pdf").toURI()); List result = importer.importDatabase(file).getDatabase().getEntries(); - assertEquals(Collections.emptyList(), result); + assertEquals(List.of(), result); } @Test - void importTwiceWorksAsExpected() throws Exception { + void importTwiceWorksAsExpected() throws URISyntaxException { Path file = Path.of(PdfVerbatimBibtexImporterTest.class.getResource("mixedMetadata.pdf").toURI()); List result = importer.importDatabase(file).getDatabase().getEntries(); diff --git a/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfXmpImporterTest.java b/jablib/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfXmpImporterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfXmpImporterTest.java rename to jablib/src/test/java/org/jabref/logic/importer/fileformat/pdf/PdfXmpImporterTest.java diff --git a/src/test/java/org/jabref/logic/importer/plaincitation/GrobidPlainCitationParserTest.java b/jablib/src/test/java/org/jabref/logic/importer/plaincitation/GrobidPlainCitationParserTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/plaincitation/GrobidPlainCitationParserTest.java rename to jablib/src/test/java/org/jabref/logic/importer/plaincitation/GrobidPlainCitationParserTest.java diff --git a/src/test/java/org/jabref/logic/importer/plaincitation/SeveralCitationsParsingTest.java b/jablib/src/test/java/org/jabref/logic/importer/plaincitation/SeveralCitationsParsingTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/plaincitation/SeveralCitationsParsingTest.java rename to jablib/src/test/java/org/jabref/logic/importer/plaincitation/SeveralCitationsParsingTest.java diff --git a/src/test/java/org/jabref/logic/importer/util/FileFieldParserTest.java b/jablib/src/test/java/org/jabref/logic/importer/util/FileFieldParserTest.java similarity index 66% rename from src/test/java/org/jabref/logic/importer/util/FileFieldParserTest.java rename to jablib/src/test/java/org/jabref/logic/importer/util/FileFieldParserTest.java index badf10ac168..87b70b7eb4f 100644 --- a/src/test/java/org/jabref/logic/importer/util/FileFieldParserTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/util/FileFieldParserTest.java @@ -1,8 +1,8 @@ package org.jabref.logic.importer.util; +import java.net.MalformedURLException; import java.nio.file.Path; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.stream.Stream; @@ -37,59 +37,59 @@ void check(LinkedFile expected, List input) { assertEquals(expected, FileFieldParser.convert(new ArrayList<>(input))); } - private static Stream stringsToParseTest() throws Exception { + private static Stream stringsToParseTest() throws MalformedURLException { return Stream.of( // null string Arguments.of( - Collections.emptyList(), + List.of(), null ), // empty string Arguments.of( - Collections.emptyList(), + List.of(), "" ), // correct input Arguments.of( - Collections.singletonList(new LinkedFile("Desc", Path.of("File.PDF"), "PDF")), + List.of(new LinkedFile("Desc", Path.of("File.PDF"), "PDF")), "Desc:File.PDF:PDF" ), // Mendeley input Arguments.of( - Collections.singletonList(new LinkedFile("", Path.of("C:/Users/XXXXXX/AppData/Local/Mendeley Ltd./Mendeley Desktop/Downloaded/Brown - 2017 - Physical test methods for elastomers.pdf"), "pdf")), + List.of(new LinkedFile("", Path.of("C:/Users/XXXXXX/AppData/Local/Mendeley Ltd./Mendeley Desktop/Downloaded/Brown - 2017 - Physical test methods for elastomers.pdf"), "pdf")), ":C$\\backslash$:/Users/XXXXXX/AppData/Local/Mendeley Ltd./Mendeley Desktop/Downloaded/Brown - 2017 - Physical test methods for elastomers.pdf:pdf" ), // parseCorrectOnlineInput Arguments.of( - Collections.singletonList(new LinkedFile(URLUtil.create("http://arxiv.org/pdf/2010.08497v1"), "PDF")), + List.of(new LinkedFile(URLUtil.create("http://arxiv.org/pdf/2010.08497v1"), "PDF")), ":http\\://arxiv.org/pdf/2010.08497v1:PDF" ), // parseFaultyOnlineInput Arguments.of( - Collections.singletonList(new LinkedFile("", "htt://arxiv.org/pdf/2010.08497v1", "PDF")), + List.of(new LinkedFile("", "htt://arxiv.org/pdf/2010.08497v1", "PDF")), ":htt\\://arxiv.org/pdf/2010.08497v1:PDF" ), // parseFaultyArxivOnlineInput Arguments.of( - Collections.singletonList(new LinkedFile("arXiv Fulltext PDF", "https://arxiv.org/pdf/1109.0517.pdf", "application/pdf")), + List.of(new LinkedFile("arXiv Fulltext PDF", "https://arxiv.org/pdf/1109.0517.pdf", "application/pdf")), "arXiv Fulltext PDF:https\\://arxiv.org/pdf/1109.0517.pdf:application/pdf" ), // ignoreMissingDescription Arguments.of( - Collections.singletonList(new LinkedFile("", Path.of("wei2005ahp.pdf"), "PDF")), + List.of(new LinkedFile("", Path.of("wei2005ahp.pdf"), "PDF")), ":wei2005ahp.pdf:PDF" ), // interpretLinkAsOnlyMandatoryField: single Arguments.of( - Collections.singletonList(new LinkedFile("", Path.of("wei2005ahp.pdf"), "")), + List.of(new LinkedFile("", Path.of("wei2005ahp.pdf"), "")), "wei2005ahp.pdf" ), @@ -104,114 +104,114 @@ private static Stream stringsToParseTest() throws Exception { // escapedCharactersInDescription Arguments.of( - Collections.singletonList(new LinkedFile("test:;", Path.of("wei2005ahp.pdf"), "PDF")), + List.of(new LinkedFile("test:;", Path.of("wei2005ahp.pdf"), "PDF")), "test\\:\\;:wei2005ahp.pdf:PDF" ), // handleXmlCharacters Arguments.of( - Collections.singletonList(new LinkedFile("test,st:;", Path.of("wei2005ahp.pdf"), "PDF")), + List.of(new LinkedFile("test,st:;", Path.of("wei2005ahp.pdf"), "PDF")), "test,\\;st\\:\\;:wei2005ahp.pdf:PDF" ), // handleEscapedFilePath Arguments.of( - Collections.singletonList(new LinkedFile("desc", Path.of("C:\\test.pdf"), "PDF")), + List.of(new LinkedFile("desc", Path.of("C:\\test.pdf"), "PDF")), "desc:C\\:\\\\test.pdf:PDF" ), // handleNonEscapedFilePath Arguments.of( - Collections.singletonList(new LinkedFile("desc", Path.of("C:\\test.pdf"), "PDF")), + List.of(new LinkedFile("desc", Path.of("C:\\test.pdf"), "PDF")), "desc:C:\\test.pdf:PDF" ), // Source: https://github.com/JabRef/jabref/issues/8991#issuecomment-1214131042 Arguments.of( - Collections.singletonList(new LinkedFile("Boyd2012.pdf", Path.of("C:\\Users\\Literature_database\\Boyd2012.pdf"), "PDF")), + List.of(new LinkedFile("Boyd2012.pdf", Path.of("C:\\Users\\Literature_database\\Boyd2012.pdf"), "PDF")), "Boyd2012.pdf:C\\:\\\\Users\\\\Literature_database\\\\Boyd2012.pdf:PDF" ), // subsetOfFieldsResultsInFileLink: description only Arguments.of( - Collections.singletonList(new LinkedFile("", Path.of("file.pdf"), "")), + List.of(new LinkedFile("", Path.of("file.pdf"), "")), "file.pdf::" ), // subsetOfFieldsResultsInFileLink: file only Arguments.of( - Collections.singletonList(new LinkedFile("", Path.of("file.pdf"), "")), + List.of(new LinkedFile("", Path.of("file.pdf"), "")), ":file.pdf" ), // subsetOfFieldsResultsInFileLink: type only Arguments.of( - Collections.singletonList(new LinkedFile("", Path.of("file.pdf"), "")), + List.of(new LinkedFile("", Path.of("file.pdf"), "")), "::file.pdf" ), // tooManySeparators Arguments.of( - Collections.singletonList(new LinkedFile("desc", Path.of("file.pdf"), "PDF", "qwer")), + List.of(new LinkedFile("desc", Path.of("file.pdf"), "PDF", "qwer")), "desc:file.pdf:PDF:qwer:asdf:uiop" ), // www inside filename Arguments.of( - Collections.singletonList(new LinkedFile("", Path.of("/home/www.google.de.pdf"), "")), + List.of(new LinkedFile("", Path.of("/home/www.google.de.pdf"), "")), ":/home/www.google.de.pdf" ), // url Arguments.of( - Collections.singletonList(new LinkedFile(URLUtil.create("https://books.google.de/"), "")), + List.of(new LinkedFile(URLUtil.create("https://books.google.de/"), "")), "https://books.google.de/" ), // url with www Arguments.of( - Collections.singletonList(new LinkedFile(URLUtil.create("https://www.google.de/"), "")), + List.of(new LinkedFile(URLUtil.create("https://www.google.de/"), "")), "https://www.google.de/" ), // url as file Arguments.of( - Collections.singletonList(new LinkedFile("", URLUtil.create("http://ceur-ws.org/Vol-438"), "URL")), + List.of(new LinkedFile("", URLUtil.create("http://ceur-ws.org/Vol-438"), "URL")), ":http\\://ceur-ws.org/Vol-438:URL" ), // url as file with desc Arguments.of( - Collections.singletonList(new LinkedFile("desc", URLUtil.create("http://ceur-ws.org/Vol-438"), "URL")), + List.of(new LinkedFile("desc", URLUtil.create("http://ceur-ws.org/Vol-438"), "URL")), "desc:http\\://ceur-ws.org/Vol-438:URL" ), // link with source url Arguments.of( - Collections.singletonList(new LinkedFile("arXiv Fulltext PDF", "matheus.ea explicit.pdf", "PDF", "https://arxiv.org/pdf/1109.0517.pdf")), + List.of(new LinkedFile("arXiv Fulltext PDF", "matheus.ea explicit.pdf", "PDF", "https://arxiv.org/pdf/1109.0517.pdf")), "arXiv Fulltext PDF:matheus.ea explicit.pdf:PDF:https\\://arxiv.org/pdf/1109.0517.pdf" ), // link without description and with source url Arguments.of( - Collections.singletonList(new LinkedFile("", "matheus.ea explicit.pdf", "PDF", "https://arxiv.org/pdf/1109.0517.pdf")), + List.of(new LinkedFile("", "matheus.ea explicit.pdf", "PDF", "https://arxiv.org/pdf/1109.0517.pdf")), ":matheus.ea explicit.pdf:PDF:https\\://arxiv.org/pdf/1109.0517.pdf" ), // no link but with source url Arguments.of( - Collections.singletonList(new LinkedFile("arXiv Fulltext PDF", "", "PDF", "https://arxiv.org/pdf/1109.0517.pdf")), + List.of(new LinkedFile("arXiv Fulltext PDF", "", "PDF", "https://arxiv.org/pdf/1109.0517.pdf")), "arXiv Fulltext PDF::PDF:https\\://arxiv.org/pdf/1109.0517.pdf" ), // No description or file type but with sourceURL Arguments.of( - Collections.singletonList(new LinkedFile("", "matheus.ea explicit.pdf", "", "https://arxiv.org/pdf/1109.0517.pdf")), + List.of(new LinkedFile("", "matheus.ea explicit.pdf", "", "https://arxiv.org/pdf/1109.0517.pdf")), ":matheus.ea explicit.pdf::https\\://arxiv.org/pdf/1109.0517.pdf" ), // Absolute path Arguments.of( - Collections.singletonList(new LinkedFile("", "A:\\Zotero\\storage\\test.pdf", "")), + List.of(new LinkedFile("", "A:\\Zotero\\storage\\test.pdf", "")), ":A:\\Zotero\\storage\\test.pdf" ), // zotero absolute path Arguments.of( - Collections.singletonList(new LinkedFile("", "A:\\Zotero\\storage\\test.pdf", "")), + List.of(new LinkedFile("", "A:\\Zotero\\storage\\test.pdf", "")), "A:\\Zotero\\storage\\test.pdf" ) ); diff --git a/src/test/java/org/jabref/logic/importer/util/GrobidServiceTest.java b/jablib/src/test/java/org/jabref/logic/importer/util/GrobidServiceTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/util/GrobidServiceTest.java rename to jablib/src/test/java/org/jabref/logic/importer/util/GrobidServiceTest.java diff --git a/src/test/java/org/jabref/logic/importer/util/GroupsParserTest.java b/jablib/src/test/java/org/jabref/logic/importer/util/GroupsParserTest.java similarity index 90% rename from src/test/java/org/jabref/logic/importer/util/GroupsParserTest.java rename to jablib/src/test/java/org/jabref/logic/importer/util/GroupsParserTest.java index a2e7f667b87..0b9a6460396 100644 --- a/src/test/java/org/jabref/logic/importer/util/GroupsParserTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/util/GroupsParserTest.java @@ -1,5 +1,6 @@ package org.jabref.logic.importer.util; +import java.io.IOException; import java.nio.file.Path; import java.util.Arrays; import java.util.EnumSet; @@ -36,14 +37,14 @@ class GroupsParserTest { private MetaData metaData; @BeforeEach - void setUp() throws Exception { + void setUp() { fileMonitor = new DummyFileUpdateMonitor(); metaData = new MetaData(); } @Test // For https://github.com/JabRef/jabref/issues/1681 - void fromStringParsesExplicitGroupWithEscapedCharacterInName() throws Exception { + void fromStringParsesExplicitGroupWithEscapedCharacterInName() throws ParseException { ExplicitGroup expected = new ExplicitGroup("B{\\\"{o}}hmer", GroupHierarchyType.INDEPENDENT, ','); AbstractGroup parsed = GroupsParser.fromString("ExplicitGroup:B{\\\\\"{o}}hmer;0;", ',', fileMonitor, metaData); @@ -51,26 +52,26 @@ void fromStringParsesExplicitGroupWithEscapedCharacterInName() throws Exception } @Test - void keywordDelimiterThatNeedsToBeEscaped() throws Exception { + void keywordDelimiterThatNeedsToBeEscaped() throws ParseException { AutomaticGroup expected = new AutomaticKeywordGroup("group1", GroupHierarchyType.INDEPENDENT, StandardField.KEYWORDS, ';', '>'); AbstractGroup parsed = GroupsParser.fromString("AutomaticKeywordGroup:group1;0;keywords;\\;;>;1;;;;;", ';', fileMonitor, metaData); assertEquals(expected, parsed); } @Test - void hierarchicalDelimiterThatNeedsToBeEscaped() throws Exception { + void hierarchicalDelimiterThatNeedsToBeEscaped() throws ParseException { AutomaticGroup expected = new AutomaticKeywordGroup("group1", GroupHierarchyType.INDEPENDENT, StandardField.KEYWORDS, ',', ';'); AbstractGroup parsed = GroupsParser.fromString("AutomaticKeywordGroup:group1;0;keywords;,;\\;;1;;;;;", ';', fileMonitor, metaData); assertEquals(expected, parsed); } @Test - void fromStringThrowsParseExceptionForNotEscapedGroupName() throws Exception { + void fromStringThrowsParseExceptionForNotEscapedGroupName() { assertThrows(ParseException.class, () -> GroupsParser.fromString("ExplicitGroup:slit\\\\;0\\;mertsch_slit2_2007\\;;", ',', fileMonitor, metaData)); } @Test - void importSubGroups() throws Exception { + void importSubGroups() throws ParseException { List orderedData = Arrays.asList("0 AllEntriesGroup:", "1 ExplicitGroup:1;0;", "2 ExplicitGroup:2;0;", "0 ExplicitGroup:3;0;"); @@ -97,7 +98,7 @@ void importSubGroups() throws Exception { } @Test - void fromStringParsesExplicitGroupWithIconAndDescription() throws Exception { + void fromStringParsesExplicitGroupWithIconAndDescription() throws ParseException { ExplicitGroup expected = new ExplicitGroup("myExplicitGroup", GroupHierarchyType.INDEPENDENT, ','); expected.setIconName("test icon"); expected.setExpanded(true); @@ -109,33 +110,33 @@ void fromStringParsesExplicitGroupWithIconAndDescription() throws Exception { } @Test - void fromStringParsesAutomaticKeywordGroup() throws Exception { + void fromStringParsesAutomaticKeywordGroup() throws ParseException { AutomaticGroup expected = new AutomaticKeywordGroup("myAutomaticGroup", GroupHierarchyType.INDEPENDENT, StandardField.KEYWORDS, ',', '>'); AbstractGroup parsed = GroupsParser.fromString("AutomaticKeywordGroup:myAutomaticGroup;0;keywords;,;>;1;;;;", ',', fileMonitor, metaData); assertEquals(expected, parsed); } @Test - void fromStringParsesAutomaticPersonGroup() throws Exception { + void fromStringParsesAutomaticPersonGroup() throws ParseException { AutomaticPersonsGroup expected = new AutomaticPersonsGroup("myAutomaticGroup", GroupHierarchyType.INDEPENDENT, StandardField.AUTHOR); AbstractGroup parsed = GroupsParser.fromString("AutomaticPersonsGroup:myAutomaticGroup;0;author;1;;;;", ',', fileMonitor, metaData); assertEquals(expected, parsed); } @Test - void fromStringParsesTexGroup() throws Exception { + void fromStringParsesTexGroup() throws ParseException, IOException { TexGroup expected = TexGroup.create("myTexGroup", GroupHierarchyType.INDEPENDENT, Path.of("path", "To", "File"), new DefaultAuxParser(new BibDatabase()), metaData); AbstractGroup parsed = GroupsParser.fromString("TexGroup:myTexGroup;0;path/To/File;1;;;;", ',', fileMonitor, metaData); assertEquals(expected, parsed); } @Test - void fromStringUnknownGroupThrowsException() throws Exception { + void fromStringUnknownGroupThrowsException() { assertThrows(ParseException.class, () -> GroupsParser.fromString("0 UnknownGroup:myUnknownGroup;0;;1;;;;", ',', fileMonitor, metaData)); } @Test - void fromStringParsesSearchGroup() throws Exception { + void fromStringParsesSearchGroup() throws ParseException { SearchGroup expected = new SearchGroup("Data", GroupHierarchyType.INCLUDING, "project=data|number|quant*", EnumSet.of(SearchFlags.REGULAR_EXPRESSION)); AbstractGroup parsed = GroupsParser.fromString("SearchGroup:Data;2;project=data|number|quant*;0;1;1;;;;;", ',', fileMonitor, metaData); assertEquals(expected, parsed); diff --git a/src/test/java/org/jabref/logic/importer/util/JsonReaderTest.java b/jablib/src/test/java/org/jabref/logic/importer/util/JsonReaderTest.java similarity index 64% rename from src/test/java/org/jabref/logic/importer/util/JsonReaderTest.java rename to jablib/src/test/java/org/jabref/logic/importer/util/JsonReaderTest.java index 4f2e697df57..a8486295abc 100644 --- a/src/test/java/org/jabref/logic/importer/util/JsonReaderTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/util/JsonReaderTest.java @@ -14,20 +14,16 @@ class JsonReaderTest { @Test void nullStreamThrowsNullPointerException() { - assertThrows(NullPointerException.class, () -> { - JsonReader.toJsonObject(null); - }); + assertThrows(NullPointerException.class, () -> JsonReader.toJsonObject(null)); } @Test void invalidJsonThrowsParserException() { - assertThrows(ParseException.class, () -> { - JsonReader.toJsonObject(new ByteArrayInputStream("invalid JSON".getBytes())); - }); + assertThrows(ParseException.class, () -> JsonReader.toJsonObject(new ByteArrayInputStream("invalid JSON".getBytes()))); } @Test - void emptyStringResultsInEmptyObject() throws Exception { + void emptyStringResultsInEmptyObject() throws ParseException { JSONObject result = JsonReader.toJsonObject(new ByteArrayInputStream("".getBytes())); assertEquals("{}", result.toString()); } @@ -35,13 +31,11 @@ void emptyStringResultsInEmptyObject() throws Exception { @Test void arrayThrowsParserException() { // Reason: We expect a JSON object, not a JSON array - assertThrows(ParseException.class, () -> { - JsonReader.toJsonObject(new ByteArrayInputStream("[]".getBytes())); - }); + assertThrows(ParseException.class, () -> JsonReader.toJsonObject(new ByteArrayInputStream("[]".getBytes()))); } @Test - void exampleJsonResultsInSameJson() throws Exception { + void exampleJsonResultsInSameJson() throws ParseException { String input = "{\"name\":\"test\"}"; JSONObject result = JsonReader.toJsonObject(new ByteArrayInputStream(input.getBytes())); assertEquals(input, result.toString()); diff --git a/src/test/java/org/jabref/logic/importer/util/MathMLParserTest.java b/jablib/src/test/java/org/jabref/logic/importer/util/MathMLParserTest.java similarity index 98% rename from src/test/java/org/jabref/logic/importer/util/MathMLParserTest.java rename to jablib/src/test/java/org/jabref/logic/importer/util/MathMLParserTest.java index d7f8c661e0e..9320b48e933 100644 --- a/src/test/java/org/jabref/logic/importer/util/MathMLParserTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/util/MathMLParserTest.java @@ -1,6 +1,6 @@ package org.jabref.logic.importer.util; -import java.io.StringReader; +import java.io.Reader; import java.util.stream.Stream; import javax.xml.stream.XMLInputFactory; @@ -26,7 +26,7 @@ static void setUp() { @ParameterizedTest @MethodSource("tests") void parserConvertsMathMLIntoLatex(String expected, String input) throws XMLStreamException { - XMLStreamReader reader = xmlInputFactory.createXMLStreamReader(new StringReader(input)); + XMLStreamReader reader = xmlInputFactory.createXMLStreamReader(Reader.of(input)); assertEquals(expected, MathMLParser.parse(reader)); } diff --git a/src/test/java/org/jabref/logic/importer/util/MetaDataParserTest.java b/jablib/src/test/java/org/jabref/logic/importer/util/MetaDataParserTest.java similarity index 96% rename from src/test/java/org/jabref/logic/importer/util/MetaDataParserTest.java rename to jablib/src/test/java/org/jabref/logic/importer/util/MetaDataParserTest.java index 46d553892a3..fe6d395b1d8 100644 --- a/src/test/java/org/jabref/logic/importer/util/MetaDataParserTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/util/MetaDataParserTest.java @@ -10,6 +10,7 @@ import org.jabref.logic.cleanup.FieldFormatterCleanups; import org.jabref.logic.exporter.MetaDataSerializerTest; import org.jabref.logic.formatter.casechanger.LowerCaseFormatter; +import org.jabref.logic.importer.ParseException; import org.jabref.model.entry.BibEntryTypeBuilder; import org.jabref.model.entry.field.StandardField; import org.jabref.model.entry.field.UnknownField; @@ -68,7 +69,7 @@ void parseCustomizedEntryType(BibEntryTypeBuilder expected, String source) { } @Test - void saveActions() throws Exception { + void saveActions() throws ParseException { Map data = Map.of("saveActions", "enabled;title[lower_case]"); MetaDataParser metaDataParser = new MetaDataParser(new DummyFileUpdateMonitor()); MetaData parsed = metaDataParser.parse(new MetaData(), data, ','); @@ -84,7 +85,7 @@ void saveActions() throws Exception { * Ensures that the trailing semicolon (used as separator in .bib metadata) is handled and stripped properly. */ @Test - void parsesUserSpecificBlgPathSuccessfully() throws Exception { + void parsesUserSpecificBlgPathSuccessfully() throws ParseException { String user = "testUser"; String rawKey = "blgFilePath-" + user; String rawValue = "/home/user/test.blg;"; diff --git a/src/test/java/org/jabref/logic/importer/util/ShortDOIServiceTest.java b/jablib/src/test/java/org/jabref/logic/importer/util/ShortDOIServiceTest.java similarity index 100% rename from src/test/java/org/jabref/logic/importer/util/ShortDOIServiceTest.java rename to jablib/src/test/java/org/jabref/logic/importer/util/ShortDOIServiceTest.java diff --git a/src/test/java/org/jabref/logic/importer/util/StaxParserTest.java b/jablib/src/test/java/org/jabref/logic/importer/util/StaxParserTest.java similarity index 98% rename from src/test/java/org/jabref/logic/importer/util/StaxParserTest.java rename to jablib/src/test/java/org/jabref/logic/importer/util/StaxParserTest.java index 9c14e80a156..6acccff0593 100644 --- a/src/test/java/org/jabref/logic/importer/util/StaxParserTest.java +++ b/jablib/src/test/java/org/jabref/logic/importer/util/StaxParserTest.java @@ -1,6 +1,6 @@ package org.jabref.logic.importer.util; -import java.io.StringReader; +import java.io.Reader; import java.util.stream.Stream; import javax.xml.stream.XMLInputFactory; @@ -26,7 +26,7 @@ static void setUp() { @ParameterizedTest @MethodSource("tests") void getsCompleteXMLContent(String expected, String input) throws XMLStreamException { - XMLStreamReader reader = xmlInputFactory.createXMLStreamReader(new StringReader(input)); + XMLStreamReader reader = xmlInputFactory.createXMLStreamReader(Reader.of(input)); assertEquals(expected, StaxParser.getXMLContent(reader)); } diff --git a/src/test/java/org/jabref/logic/integrity/ASCIICharacterCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/ASCIICharacterCheckerTest.java similarity index 90% rename from src/test/java/org/jabref/logic/integrity/ASCIICharacterCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/ASCIICharacterCheckerTest.java index da2557e8860..cf29c0affcc 100644 --- a/src/test/java/org/jabref/logic/integrity/ASCIICharacterCheckerTest.java +++ b/jablib/src/test/java/org/jabref/logic/integrity/ASCIICharacterCheckerTest.java @@ -1,6 +1,5 @@ package org.jabref.logic.integrity; -import java.util.Collections; import java.util.List; import org.jabref.model.entry.BibEntry; @@ -18,7 +17,7 @@ class ASCIICharacterCheckerTest { @Test void fieldAcceptsAsciiCharacters() { entry.setField(StandardField.TITLE, "Only ascii characters!'@12"); - assertEquals(Collections.emptyList(), checker.check(entry)); + assertEquals(List.of(), checker.check(entry)); } @Test @@ -40,7 +39,7 @@ void fieldAcceptsOnlyAsciiCharacters() { field.append(Character.toString(i)); } entry.setField(StandardField.TITLE, field.toString()); - assertEquals(Collections.emptyList(), checker.check(entry)); + assertEquals(List.of(), checker.check(entry)); } @Test diff --git a/src/test/java/org/jabref/logic/integrity/AbbreviationCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/AbbreviationCheckerTest.java similarity index 77% rename from src/test/java/org/jabref/logic/integrity/AbbreviationCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/AbbreviationCheckerTest.java index 6f188c144d7..1fa030bc212 100644 --- a/src/test/java/org/jabref/logic/integrity/AbbreviationCheckerTest.java +++ b/jablib/src/test/java/org/jabref/logic/integrity/AbbreviationCheckerTest.java @@ -1,6 +1,6 @@ package org.jabref.logic.integrity; -import java.util.Collections; +import java.util.List; import org.jabref.logic.journals.Abbreviation; import org.jabref.logic.journals.JournalAbbreviationLoader; @@ -32,36 +32,36 @@ void setUp() { @Test void checkEntryComplainsAboutAbbreviatedJournalName() { entry.setField(StandardField.BOOKTITLE, "T. J."); - assertNotEquals(Collections.emptyList(), checker.check(entry)); + assertNotEquals(List.of(), checker.check(entry)); } @Test void checkEntryDoesNotComplainAboutJournalNameThatHasSameAbbreviation() { entry.setField(StandardField.BOOKTITLE, "Journal"); abbreviationRepository.addCustomAbbreviation(new Abbreviation("Journal", "Journal")); - assertEquals(Collections.emptyList(), checker.check(entry)); + assertEquals(List.of(), checker.check(entry)); } @Test - void checkEntryDoesNotComplainAboutJournalNameThatHasΝοAbbreviation() { + void checkEntryDoesNotComplainAboutJournalNameThatHasNoAbbreviation() { entry.setField(StandardField.BOOKTITLE, "Non-Abbreviated-Title"); - assertEquals(Collections.emptyList(), checker.check(entry)); + assertEquals(List.of(), checker.check(entry)); } @Test - void checkEntryDoesNotComplainAboutJournalNameThatHasΝοInput() { - assertEquals(Collections.emptyList(), checker.check(entry)); + void checkEntryDoesNotComplainAboutJournalNameThatHasNoInput() { + assertEquals(List.of(), checker.check(entry)); } @Test void checkEntryWorksForLaTeXField() { entry.setField(StandardField.BOOKTITLE, "Reducing Complexity and Power of Digital Multibit Error-Feedback $\\Delta$$\\Sigma$ Modulators"); - assertEquals(Collections.emptyList(), checker.check(entry)); + assertEquals(List.of(), checker.check(entry)); } @Test void checkEntryWorksForLaTeXFieldStilContainingIllegalChars() { entry.setField(StandardField.BOOKTITLE, "Proceedings of the 5\\({}^{\\mbox{th}}\\) Central-European Workshop on Services and their Composition, Rostock, Germany, February 21-22, 2013"); - assertEquals(Collections.emptyList(), checker.check(entry)); + assertEquals(List.of(), checker.check(entry)); } } diff --git a/src/test/java/org/jabref/logic/integrity/AmpersandCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/AmpersandCheckerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/integrity/AmpersandCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/AmpersandCheckerTest.java diff --git a/src/test/java/org/jabref/logic/integrity/BibStringCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/BibStringCheckerTest.java similarity index 82% rename from src/test/java/org/jabref/logic/integrity/BibStringCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/BibStringCheckerTest.java index 87ea138fa71..79d23e47499 100644 --- a/src/test/java/org/jabref/logic/integrity/BibStringCheckerTest.java +++ b/jablib/src/test/java/org/jabref/logic/integrity/BibStringCheckerTest.java @@ -1,6 +1,5 @@ package org.jabref.logic.integrity; -import java.util.Collections; import java.util.List; import java.util.stream.Stream; @@ -29,9 +28,9 @@ void acceptsAllowedInputs(List expected, Field field, String v private static Stream provideAcceptedInputs() { return Stream.of( - Arguments.of(Collections.emptyList(), StandardField.TITLE, "Not a single hash mark"), - Arguments.of(Collections.emptyList(), StandardField.MONTH, "#jan#"), - Arguments.of(Collections.emptyList(), StandardField.AUTHOR, "#einstein# and #newton#") + Arguments.of(List.of(), StandardField.TITLE, "Not a single hash mark"), + Arguments.of(List.of(), StandardField.MONTH, "#jan#"), + Arguments.of(List.of(), StandardField.AUTHOR, "#einstein# and #newton#") ); } diff --git a/src/test/java/org/jabref/logic/integrity/BooktitleCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/BooktitleCheckerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/integrity/BooktitleCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/BooktitleCheckerTest.java diff --git a/src/test/java/org/jabref/logic/integrity/BracesCorrectorTest.java b/jablib/src/test/java/org/jabref/logic/integrity/BracesCorrectorTest.java similarity index 100% rename from src/test/java/org/jabref/logic/integrity/BracesCorrectorTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/BracesCorrectorTest.java diff --git a/src/test/java/org/jabref/logic/integrity/BracketCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/BracketCheckerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/integrity/BracketCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/BracketCheckerTest.java diff --git a/src/test/java/org/jabref/logic/integrity/CitationKeyCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/CitationKeyCheckerTest.java similarity index 79% rename from src/test/java/org/jabref/logic/integrity/CitationKeyCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/CitationKeyCheckerTest.java index 17d891623b6..c27a07807f2 100644 --- a/src/test/java/org/jabref/logic/integrity/CitationKeyCheckerTest.java +++ b/jablib/src/test/java/org/jabref/logic/integrity/CitationKeyCheckerTest.java @@ -1,6 +1,5 @@ package org.jabref.logic.integrity; -import java.util.Collections; import java.util.List; import org.jabref.logic.l10n.Localization; @@ -21,7 +20,7 @@ void bibTexAcceptsKeyFromAuthorAndYear() { BibEntry entry = new BibEntry().withField(InternalField.KEY_FIELD, "Knuth2014") .withField(StandardField.AUTHOR, "Knuth") .withField(StandardField.YEAR, "2014"); - assertEquals(Collections.emptyList(), checker.check(entry)); + assertEquals(List.of(), checker.check(entry)); } @Test @@ -29,7 +28,7 @@ void acceptsKeyFromAuthorAndTitle() { BibEntry entry = new BibEntry().withField(InternalField.KEY_FIELD, "BrownTheTitle") .withField(StandardField.AUTHOR, "Brown") .withField(StandardField.TITLE, "The Title"); - assertEquals(Collections.emptyList(), checker.check(entry)); + assertEquals(List.of(), checker.check(entry)); } @Test @@ -37,7 +36,7 @@ void acceptsKeyFromTitleAndYear() { BibEntry entry = new BibEntry().withField(InternalField.KEY_FIELD, "TheTitle2021") .withField(StandardField.TITLE, "The Title") .withField(StandardField.YEAR, "2021"); - assertEquals(Collections.emptyList(), checker.check(entry)); + assertEquals(List.of(), checker.check(entry)); } @Test @@ -45,7 +44,7 @@ void emptyCitationKey() { BibEntry entry = new BibEntry().withField(StandardField.AUTHOR, "Brown") .withField(StandardField.TITLE, "The Title") .withField(StandardField.YEAR, "2021"); - List expected = Collections.singletonList(new IntegrityMessage(Localization.lang("empty citation key") + ": " + entry.getAuthorTitleYear(100), entry, InternalField.KEY_FIELD)); + List expected = List.of(new IntegrityMessage(Localization.lang("empty citation key") + ": " + entry.getAuthorTitleYear(100), entry, InternalField.KEY_FIELD)); assertEquals(expected, checker.check(entry)); } } diff --git a/src/test/java/org/jabref/logic/integrity/CitationKeyDeviationCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/CitationKeyDeviationCheckerTest.java similarity index 95% rename from src/test/java/org/jabref/logic/integrity/CitationKeyDeviationCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/CitationKeyDeviationCheckerTest.java index b0edf9e100d..a5c8e0c3012 100644 --- a/src/test/java/org/jabref/logic/integrity/CitationKeyDeviationCheckerTest.java +++ b/jablib/src/test/java/org/jabref/logic/integrity/CitationKeyDeviationCheckerTest.java @@ -1,6 +1,5 @@ package org.jabref.logic.integrity; -import java.util.Collections; import java.util.List; import org.jabref.logic.citationkeypattern.AbstractCitationKeyPatterns; @@ -44,7 +43,7 @@ void citationKeyDeviatesFromGeneratedKey() { BibEntry entry = new BibEntry().withField(InternalField.KEY_FIELD, "Knuth2014") .withField(StandardField.AUTHOR, "Knuth") .withField(StandardField.YEAR, "2014"); - List expected = Collections.singletonList(new IntegrityMessage( + List expected = List.of(new IntegrityMessage( Localization.lang("Citation key deviates from generated key"), entry, InternalField.KEY_FIELD)); assertEquals(expected, checker.check(entry)); } diff --git a/src/test/java/org/jabref/logic/integrity/CitationKeyDuplicationCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/CitationKeyDuplicationCheckerTest.java similarity index 91% rename from src/test/java/org/jabref/logic/integrity/CitationKeyDuplicationCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/CitationKeyDuplicationCheckerTest.java index 97eb6e70c45..efdadcaa7f0 100644 --- a/src/test/java/org/jabref/logic/integrity/CitationKeyDuplicationCheckerTest.java +++ b/jablib/src/test/java/org/jabref/logic/integrity/CitationKeyDuplicationCheckerTest.java @@ -1,6 +1,5 @@ package org.jabref.logic.integrity; -import java.util.Collections; import java.util.List; import org.jabref.logic.l10n.Localization; @@ -23,7 +22,7 @@ void emptyCitationKey() { BibDatabase bibDatabase = new BibDatabase(List.of(entry)); CitationKeyDuplicationChecker checker = new CitationKeyDuplicationChecker(bibDatabase); - List expected = Collections.emptyList(); + List expected = List.of(); assertEquals(expected, checker.check(entry)); } @@ -38,7 +37,7 @@ void hasDuplicateCitationKey() { BibDatabase bibDatabase = new BibDatabase(List.of(entry, entry2)); CitationKeyDuplicationChecker checker = new CitationKeyDuplicationChecker(bibDatabase); - List expected = Collections.singletonList( + List expected = List.of( new IntegrityMessage(Localization.lang("Duplicate citation key"), entry, StandardField.KEY)); assertEquals(expected, checker.check(entry)); } diff --git a/src/test/java/org/jabref/logic/integrity/DateCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/DateCheckerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/integrity/DateCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/DateCheckerTest.java diff --git a/src/test/java/org/jabref/logic/integrity/DoiDuplicationCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/DoiDuplicationCheckerTest.java similarity index 96% rename from src/test/java/org/jabref/logic/integrity/DoiDuplicationCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/DoiDuplicationCheckerTest.java index b2052938fd9..c5c163f8af3 100644 --- a/src/test/java/org/jabref/logic/integrity/DoiDuplicationCheckerTest.java +++ b/jablib/src/test/java/org/jabref/logic/integrity/DoiDuplicationCheckerTest.java @@ -1,6 +1,5 @@ package org.jabref.logic.integrity; -import java.util.Collections; import java.util.List; import org.jabref.logic.l10n.Localization; @@ -48,6 +47,6 @@ void multiPairsDuplicateDOI() { void noDuplicateDOI() { List entries = List.of(doiA_entry1, doiB_entry1, doiC_entry1); BibDatabase database = new BibDatabase(entries); - assertEquals(Collections.emptyList(), checker.check(database)); + assertEquals(List.of(), checker.check(database)); } } diff --git a/src/test/java/org/jabref/logic/integrity/DoiValidityCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/DoiValidityCheckerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/integrity/DoiValidityCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/DoiValidityCheckerTest.java diff --git a/src/test/java/org/jabref/logic/integrity/EditionCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/EditionCheckerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/integrity/EditionCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/EditionCheckerTest.java diff --git a/src/test/java/org/jabref/logic/integrity/EntryLinkCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/EntryLinkCheckerTest.java similarity index 90% rename from src/test/java/org/jabref/logic/integrity/EntryLinkCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/EntryLinkCheckerTest.java index e4885246c66..ca7feccfcea 100644 --- a/src/test/java/org/jabref/logic/integrity/EntryLinkCheckerTest.java +++ b/jablib/src/test/java/org/jabref/logic/integrity/EntryLinkCheckerTest.java @@ -1,6 +1,5 @@ package org.jabref.logic.integrity; -import java.util.Collections; import java.util.List; import org.jabref.model.database.BibDatabase; @@ -35,13 +34,13 @@ void entryLinkChecker() { @Test void checkNoFields() { - assertEquals(Collections.emptyList(), checker.check(entry)); + assertEquals(List.of(), checker.check(entry)); } @Test void checkNonRelatedFieldsOnly() { entry.setField(StandardField.YEAR, "2016"); - assertEquals(Collections.emptyList(), checker.check(entry)); + assertEquals(List.of(), checker.check(entry)); } @Test @@ -61,7 +60,7 @@ void checkExistingCrossref() { database.insertEntry(entry2); List message = checker.check(entry); - assertEquals(Collections.emptyList(), message); + assertEquals(List.of(), message); } @Test @@ -77,7 +76,7 @@ void checkExistingRelated() { database.insertEntry(entry3); List message = checker.check(entry); - assertEquals(Collections.emptyList(), message); + assertEquals(List.of(), message); } @Test diff --git a/src/test/java/org/jabref/logic/integrity/HTMLCharacterCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/HTMLCharacterCheckerTest.java similarity index 89% rename from src/test/java/org/jabref/logic/integrity/HTMLCharacterCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/HTMLCharacterCheckerTest.java index 16b54f789c1..76585111fa2 100644 --- a/src/test/java/org/jabref/logic/integrity/HTMLCharacterCheckerTest.java +++ b/jablib/src/test/java/org/jabref/logic/integrity/HTMLCharacterCheckerTest.java @@ -1,6 +1,5 @@ package org.jabref.logic.integrity; -import java.util.Collections; import java.util.List; import java.util.stream.Stream; @@ -32,25 +31,25 @@ void settingNullThrowsNPE() { @Test void titleAcceptsNonHTMLEncodedCharacters() { entry.setField(StandardField.TITLE, "Not a single {HTML} character"); - assertEquals(Collections.emptyList(), checker.check(entry)); + assertEquals(List.of(), checker.check(entry)); } @Test void monthAcceptsNonHTMLEncodedCharacters() { entry.setField(StandardField.MONTH, "#jan#"); - assertEquals(Collections.emptyList(), checker.check(entry)); + assertEquals(List.of(), checker.check(entry)); } @Test void authorAcceptsNonHTMLEncodedCharacters() { entry.setField(StandardField.AUTHOR, "A. Einstein and I. Newton"); - assertEquals(Collections.emptyList(), checker.check(entry)); + assertEquals(List.of(), checker.check(entry)); } @Test void urlAcceptsNonHTMLEncodedCharacters() { entry.setField(StandardField.URL, "http://www.thinkmind.org/index.php?view=article&articleid=cloud_computing_2013_1_20_20130"); - assertEquals(Collections.emptyList(), checker.check(entry)); + assertEquals(List.of(), checker.check(entry)); } @Test diff --git a/src/test/java/org/jabref/logic/integrity/HowPublishedCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/HowPublishedCheckerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/integrity/HowPublishedCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/HowPublishedCheckerTest.java diff --git a/src/test/java/org/jabref/logic/integrity/ISBNCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/ISBNCheckerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/integrity/ISBNCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/ISBNCheckerTest.java diff --git a/src/test/java/org/jabref/logic/integrity/ISSNCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/ISSNCheckerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/integrity/ISSNCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/ISSNCheckerTest.java diff --git a/src/test/java/org/jabref/logic/integrity/IntegrityCheckTest.java b/jablib/src/test/java/org/jabref/logic/integrity/IntegrityCheckTest.java similarity index 85% rename from src/test/java/org/jabref/logic/integrity/IntegrityCheckTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/IntegrityCheckTest.java index dda9567f52f..078fa4bdd2e 100644 --- a/src/test/java/org/jabref/logic/integrity/IntegrityCheckTest.java +++ b/jablib/src/test/java/org/jabref/logic/integrity/IntegrityCheckTest.java @@ -1,8 +1,8 @@ package org.jabref.logic.integrity; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.UUID; @@ -45,28 +45,28 @@ class IntegrityCheckTest { @Test - void bibTexAcceptsStandardEntryType() throws Exception { + void bibTexAcceptsStandardEntryType() { assertCorrect(withMode(createContext(StandardField.TITLE, "sometitle", StandardEntryType.Article), BibDatabaseMode.BIBTEX)); } @Test - void bibTexDoesNotAcceptIEEETranEntryType() throws Exception { + void bibTexDoesNotAcceptIEEETranEntryType() { assertWrong(withMode(createContext(StandardField.TITLE, "sometitle", IEEETranEntryType.Patent), BibDatabaseMode.BIBTEX)); } @Test - void bibLaTexAcceptsIEEETranEntryType() throws Exception { - assertCorrect((withMode(createContext(StandardField.TITLE, "sometitle", IEEETranEntryType.Patent), BibDatabaseMode.BIBLATEX))); + void bibLaTexAcceptsIEEETranEntryType() { + assertCorrect(withMode(createContext(StandardField.TITLE, "sometitle", IEEETranEntryType.Patent), BibDatabaseMode.BIBLATEX)); } @Test - void bibLaTexAcceptsStandardEntryType() throws Exception { + void bibLaTexAcceptsStandardEntryType() { assertCorrect(withMode(createContext(StandardField.TITLE, "sometitle", StandardEntryType.Article), BibDatabaseMode.BIBLATEX)); } @ParameterizedTest @MethodSource("provideCorrectFormat") - void authorNameChecksCorrectFormat(String input) throws Exception { + void authorNameChecksCorrectFormat(String input) { for (Field field : FieldFactory.getPersonNameFields()) { assertCorrect(withMode(createContext(field, input), BibDatabaseMode.BIBLATEX)); } @@ -74,7 +74,7 @@ void authorNameChecksCorrectFormat(String input) throws Exception { @ParameterizedTest @MethodSource("provideIncorrectFormat") - void authorNameChecksIncorrectFormat(String input) throws Exception { + void authorNameChecksIncorrectFormat(String input) { for (Field field : FieldFactory.getPersonNameFields()) { assertWrong(withMode(createContext(field, input), BibDatabaseMode.BIBLATEX)); } @@ -92,20 +92,21 @@ private static Stream provideIncorrectFormat() { } @Test - void fileChecks() throws Exception { + void fileChecks() { MetaData metaData = mock(MetaData.class); Mockito.when(metaData.getLibrarySpecificFileDirectory()).thenReturn(Optional.of(".")); Mockito.when(metaData.getUserFileDirectory(any(String.class))).thenReturn(Optional.empty()); // FIXME: must be set as checkBibtexDatabase only activates title checker based on database mode Mockito.when(metaData.getMode()).thenReturn(Optional.of(BibDatabaseMode.BIBTEX)); - assertCorrect(createContext(StandardField.FILE, ":build.gradle:gradle", metaData)); - assertCorrect(createContext(StandardField.FILE, "description:build.gradle:gradle", metaData)); - assertWrong(createContext(StandardField.FILE, ":asflakjfwofja:PDF", metaData)); + // Code run in jablib subfolder. The root of the repository contains "README.md" + assertCorrect(createContext(StandardField.FILE, ":../README.md:markdown", metaData)); + assertCorrect(createContext(StandardField.FILE, "Readme of JabRef:../README.md:markdown", metaData)); + assertWrong(createContext(StandardField.FILE, ":NotFoundFileNameWithoutExtension:PDF", metaData)); } @Test - void fileCheckFindsFilesRelativeToBibFile(@TempDir Path testFolder) throws Exception { + void fileCheckFindsFilesRelativeToBibFile(@TempDir Path testFolder) throws IOException { Path bibFile = testFolder.resolve("lit.bib"); Files.createFile(bibFile); Path pdfFile = testFolder.resolve("file.pdf"); @@ -118,7 +119,7 @@ void fileCheckFindsFilesRelativeToBibFile(@TempDir Path testFolder) throws Excep } @Test - void entryIsUnchangedAfterChecks() throws Exception { + void entryIsUnchangedAfterChecks() { BibEntry entry = new BibEntry(); // populate with all known fields @@ -167,7 +168,7 @@ private BibDatabaseContext createContext(Field field, String value) { return createContext(field, value, metaData); } - private void assertWrong(BibDatabaseContext context) throws Exception { + private void assertWrong(BibDatabaseContext context) { List messages; messages = new IntegrityCheck(context, @@ -177,10 +178,10 @@ private void assertWrong(BibDatabaseContext context) throws Exception { false) .check(); - assertNotEquals(Collections.emptyList(), messages); + assertNotEquals(List.of(), messages); } - private void assertCorrect(BibDatabaseContext context) throws Exception { + private void assertCorrect(BibDatabaseContext context) { FilePreferences filePreferencesMock = mock(FilePreferences.class); when(filePreferencesMock.shouldStoreFilesRelativeToBibFile()).thenReturn(true); List messages; @@ -192,7 +193,7 @@ private void assertCorrect(BibDatabaseContext context) throws Exception { false) .check(); - assertEquals(Collections.emptyList(), messages); + assertEquals(List.of(), messages); } private CitationKeyPatternPreferences createCitationKeyPatternPreferences() { diff --git a/src/test/java/org/jabref/logic/integrity/JournalInAbbreviationListCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/JournalInAbbreviationListCheckerTest.java similarity index 95% rename from src/test/java/org/jabref/logic/integrity/JournalInAbbreviationListCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/JournalInAbbreviationListCheckerTest.java index 85e25eb995c..f13577a947a 100644 --- a/src/test/java/org/jabref/logic/integrity/JournalInAbbreviationListCheckerTest.java +++ b/jablib/src/test/java/org/jabref/logic/integrity/JournalInAbbreviationListCheckerTest.java @@ -1,6 +1,5 @@ package org.jabref.logic.integrity; -import java.util.Collections; import java.util.List; import org.jabref.logic.journals.Abbreviation; @@ -33,7 +32,7 @@ void setUp() { @Test void journalAcceptsNameInTheList() { entry.setField(StandardField.JOURNAL, "IEEE Software"); - assertEquals(Collections.emptyList(), checker.check(entry)); + assertEquals(List.of(), checker.check(entry)); } @Test diff --git a/src/test/java/org/jabref/logic/integrity/LatexIntegrityCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/LatexIntegrityCheckerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/integrity/LatexIntegrityCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/LatexIntegrityCheckerTest.java diff --git a/src/test/java/org/jabref/logic/integrity/MonthCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/MonthCheckerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/integrity/MonthCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/MonthCheckerTest.java diff --git a/src/test/java/org/jabref/logic/integrity/NoBibTexFieldCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/NoBibTexFieldCheckerTest.java similarity index 91% rename from src/test/java/org/jabref/logic/integrity/NoBibTexFieldCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/NoBibTexFieldCheckerTest.java index 46ade9e221e..aa58451af2c 100644 --- a/src/test/java/org/jabref/logic/integrity/NoBibTexFieldCheckerTest.java +++ b/jablib/src/test/java/org/jabref/logic/integrity/NoBibTexFieldCheckerTest.java @@ -1,6 +1,5 @@ package org.jabref.logic.integrity; -import java.util.Collections; import java.util.List; import java.util.stream.Stream; @@ -41,7 +40,7 @@ private static Stream nonBiblatexOnlyFields() { @MethodSource("nonBiblatexOnlyFields") void nonBiblatexOnlyField(Field field) { BibEntry entry = new BibEntry().withField(field, "test"); - assertEquals(Collections.emptyList(), checker.check(entry)); + assertEquals(List.of(), checker.check(entry)); } @ParameterizedTest(name = "field={0}") @@ -54,6 +53,6 @@ void biblatexOnlyField(StandardField field) { BibEntry entry = new BibEntry().withField(field, "test"); IntegrityMessage message = new IntegrityMessage("biblatex field only", entry, field); List messages = checker.check(entry); - assertEquals(Collections.singletonList(message), messages); + assertEquals(List.of(message), messages); } } diff --git a/src/test/java/org/jabref/logic/integrity/NoURLCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/NoURLCheckerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/integrity/NoURLCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/NoURLCheckerTest.java diff --git a/src/test/java/org/jabref/logic/integrity/NoteCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/NoteCheckerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/integrity/NoteCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/NoteCheckerTest.java diff --git a/src/test/java/org/jabref/logic/integrity/PagesCheckerBiblatexTest.java b/jablib/src/test/java/org/jabref/logic/integrity/PagesCheckerBiblatexTest.java similarity index 100% rename from src/test/java/org/jabref/logic/integrity/PagesCheckerBiblatexTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/PagesCheckerBiblatexTest.java diff --git a/src/test/java/org/jabref/logic/integrity/PagesCheckerBibtexTest.java b/jablib/src/test/java/org/jabref/logic/integrity/PagesCheckerBibtexTest.java similarity index 100% rename from src/test/java/org/jabref/logic/integrity/PagesCheckerBibtexTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/PagesCheckerBibtexTest.java diff --git a/src/test/java/org/jabref/logic/integrity/PersonNamesCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/PersonNamesCheckerTest.java similarity index 98% rename from src/test/java/org/jabref/logic/integrity/PersonNamesCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/PersonNamesCheckerTest.java index bd357ed378d..750f10002c5 100644 --- a/src/test/java/org/jabref/logic/integrity/PersonNamesCheckerTest.java +++ b/jablib/src/test/java/org/jabref/logic/integrity/PersonNamesCheckerTest.java @@ -20,7 +20,7 @@ class PersonNamesCheckerTest { private PersonNamesChecker checkerb; @BeforeEach - void setUp() throws Exception { + void setUp() { BibDatabaseContext databaseContext = new BibDatabaseContext(); databaseContext.setMode(BibDatabaseMode.BIBTEX); checker = new PersonNamesChecker(databaseContext); diff --git a/src/test/java/org/jabref/logic/integrity/TitleCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/TitleCheckerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/integrity/TitleCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/TitleCheckerTest.java diff --git a/src/test/java/org/jabref/logic/integrity/TypeCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/TypeCheckerTest.java similarity index 90% rename from src/test/java/org/jabref/logic/integrity/TypeCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/TypeCheckerTest.java index f4b6cfaccfb..ee120d621cc 100644 --- a/src/test/java/org/jabref/logic/integrity/TypeCheckerTest.java +++ b/jablib/src/test/java/org/jabref/logic/integrity/TypeCheckerTest.java @@ -1,6 +1,5 @@ package org.jabref.logic.integrity; -import java.util.Collections; import java.util.List; import org.jabref.model.entry.BibEntry; @@ -20,7 +19,7 @@ class TypeCheckerTest { void inProceedingsHasPagesNumbers() { entry = new BibEntry(StandardEntryType.InProceedings); entry.setField(StandardField.PAGES, "11--15"); - assertEquals(Collections.emptyList(), checker.check(entry)); + assertEquals(List.of(), checker.check(entry)); } @Test diff --git a/src/test/java/org/jabref/logic/integrity/UTF8CheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/UTF8CheckerTest.java similarity index 80% rename from src/test/java/org/jabref/logic/integrity/UTF8CheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/UTF8CheckerTest.java index 42378717004..12c72565291 100644 --- a/src/test/java/org/jabref/logic/integrity/UTF8CheckerTest.java +++ b/jablib/src/test/java/org/jabref/logic/integrity/UTF8CheckerTest.java @@ -1,9 +1,7 @@ package org.jabref.logic.integrity; -import java.io.UnsupportedEncodingException; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; -import java.util.Collections; import java.util.List; import org.jabref.model.entry.BibEntry; @@ -28,7 +26,7 @@ class UTF8CheckerTest { void fieldAcceptsUTF8() { UTF8Checker checker = new UTF8Checker(StandardCharsets.UTF_8); entry.setField(StandardField.TITLE, "Only ascii characters!'@12"); - assertEquals(Collections.emptyList(), checker.check(entry)); + assertEquals(List.of(), checker.check(entry)); } /** @@ -37,11 +35,9 @@ void fieldAcceptsUTF8() { * environment is Non UTF-8. * Finally, we need to reset the environment charset. * - * @throws UnsupportedEncodingException initial a String in charset GBK - * Demo: new String(StringDemo.getBytes(), "GBK"); */ @Test - void fieldDoesNotAcceptUmlauts() throws UnsupportedEncodingException { + void fieldDoesNotAcceptUmlauts() { UTF8Checker checker = new UTF8Checker(Charset.forName("GBK")); String NonUTF8 = new String("你好,这条语句使用GBK字符集".getBytes(StandardCharsets.UTF_8), GBK); entry.setField(StandardField.MONTH, NonUTF8); @@ -52,11 +48,9 @@ void fieldDoesNotAcceptUmlauts() throws UnsupportedEncodingException { * To check the UTF8Checker.UTF8EncodingChecker * in NonUTF8 char array (should return false) * - * @throws UnsupportedEncodingException initial a String in charset GBK - * Demo: new String(StringDemo.getBytes(), "GBK"); */ @Test - void NonUTF8EncodingCheckerTest() throws UnsupportedEncodingException { + void NonUTF8EncodingCheckerTest() { String NonUTF8 = new String("你好,这条语句使用GBK字符集".getBytes(StandardCharsets.UTF_8), GBK); assertFalse(UTF8Checker.UTF8EncodingChecker(NonUTF8.getBytes(GBK))); } diff --git a/src/test/java/org/jabref/logic/integrity/UnicodeNormalFormCanonicalCompositionCheckTest.java b/jablib/src/test/java/org/jabref/logic/integrity/UnicodeNormalFormCanonicalCompositionCheckTest.java similarity index 100% rename from src/test/java/org/jabref/logic/integrity/UnicodeNormalFormCanonicalCompositionCheckTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/UnicodeNormalFormCanonicalCompositionCheckTest.java diff --git a/src/test/java/org/jabref/logic/integrity/UrlCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/UrlCheckerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/integrity/UrlCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/UrlCheckerTest.java diff --git a/src/test/java/org/jabref/logic/integrity/ValidCitationKeyCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/ValidCitationKeyCheckerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/integrity/ValidCitationKeyCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/ValidCitationKeyCheckerTest.java diff --git a/src/test/java/org/jabref/logic/integrity/YearCheckerTest.java b/jablib/src/test/java/org/jabref/logic/integrity/YearCheckerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/integrity/YearCheckerTest.java rename to jablib/src/test/java/org/jabref/logic/integrity/YearCheckerTest.java diff --git a/src/test/java/org/jabref/logic/journals/AbbreviationParserTest.java b/jablib/src/test/java/org/jabref/logic/journals/AbbreviationParserTest.java similarity index 90% rename from src/test/java/org/jabref/logic/journals/AbbreviationParserTest.java rename to jablib/src/test/java/org/jabref/logic/journals/AbbreviationParserTest.java index a8a883dd42b..16d02f9deef 100644 --- a/src/test/java/org/jabref/logic/journals/AbbreviationParserTest.java +++ b/jablib/src/test/java/org/jabref/logic/journals/AbbreviationParserTest.java @@ -1,6 +1,7 @@ package org.jabref.logic.journals; import java.io.BufferedWriter; +import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; @@ -25,7 +26,7 @@ void setup(@TempDir Path tempDir) { } @Test - void readingFileFromCSVWithSemicolon() throws Exception { + void readingFileFromCSVWithSemicolon() throws IOException { // String name, String abbreviation, String shortestUniqueAbbreviation String testAbbrev = "Long Name;L.N.;L.N."; try (BufferedWriter writer = Files.newBufferedWriter(csvFile, StandardCharsets.UTF_8)) { @@ -36,7 +37,7 @@ void readingFileFromCSVWithSemicolon() throws Exception { } @Test - void readingFileFromCSVWithComma() throws Exception { + void readingFileFromCSVWithComma() throws IOException { String testAbbrev = "Long Name,L.N.,L.N."; try (BufferedWriter writer = Files.newBufferedWriter(csvFile, StandardCharsets.UTF_8)) { writer.write(testAbbrev); diff --git a/src/test/java/org/jabref/logic/journals/AbbreviationTest.java b/jablib/src/test/java/org/jabref/logic/journals/AbbreviationTest.java similarity index 100% rename from src/test/java/org/jabref/logic/journals/AbbreviationTest.java rename to jablib/src/test/java/org/jabref/logic/journals/AbbreviationTest.java diff --git a/src/test/java/org/jabref/logic/journals/AbbreviationWriterTest.java b/jablib/src/test/java/org/jabref/logic/journals/AbbreviationWriterTest.java similarity index 91% rename from src/test/java/org/jabref/logic/journals/AbbreviationWriterTest.java rename to jablib/src/test/java/org/jabref/logic/journals/AbbreviationWriterTest.java index bf207b25da7..6fcfb69a629 100644 --- a/src/test/java/org/jabref/logic/journals/AbbreviationWriterTest.java +++ b/jablib/src/test/java/org/jabref/logic/journals/AbbreviationWriterTest.java @@ -1,5 +1,6 @@ package org.jabref.logic.journals; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; @@ -15,7 +16,7 @@ class AbbreviationWriterTest { @Test - void shortestUniqueAbbreviationWrittenIfItDiffers(@TempDir Path tempDir) throws Exception { + void shortestUniqueAbbreviationWrittenIfItDiffers(@TempDir Path tempDir) throws IOException { Abbreviation abbreviation = new Abbreviation("Full", "Abbr", "A"); Path csvFile = tempDir.resolve("test.csv"); AbbreviationWriter.writeOrCreate( @@ -25,7 +26,7 @@ void shortestUniqueAbbreviationWrittenIfItDiffers(@TempDir Path tempDir) throws } @Test - void doNotWriteShortestUniqueAbbreviationWrittenIfItDiffers(@TempDir Path tempDir) throws Exception { + void doNotWriteShortestUniqueAbbreviationWrittenIfItDiffers(@TempDir Path tempDir) throws IOException { Abbreviation abbreviation = new Abbreviation("Full", "Abbr"); Path csvFile = tempDir.resolve("test.csv"); AbbreviationWriter.writeOrCreate( diff --git a/src/test/java/org/jabref/logic/journals/AbbreviationsTest.java b/jablib/src/test/java/org/jabref/logic/journals/AbbreviationsTest.java similarity index 100% rename from src/test/java/org/jabref/logic/journals/AbbreviationsTest.java rename to jablib/src/test/java/org/jabref/logic/journals/AbbreviationsTest.java diff --git a/src/test/java/org/jabref/logic/journals/JournalInformationFetcherTest.java b/jablib/src/test/java/org/jabref/logic/journals/JournalInformationFetcherTest.java similarity index 100% rename from src/test/java/org/jabref/logic/journals/JournalInformationFetcherTest.java rename to jablib/src/test/java/org/jabref/logic/journals/JournalInformationFetcherTest.java diff --git a/src/test/java/org/jabref/logic/journals/LtwaRepositoryTest.java b/jablib/src/test/java/org/jabref/logic/journals/LtwaRepositoryTest.java similarity index 100% rename from src/test/java/org/jabref/logic/journals/LtwaRepositoryTest.java rename to jablib/src/test/java/org/jabref/logic/journals/LtwaRepositoryTest.java diff --git a/src/test/java/org/jabref/logic/l10n/EncodingsTest.java b/jablib/src/test/java/org/jabref/logic/l10n/EncodingsTest.java similarity index 100% rename from src/test/java/org/jabref/logic/l10n/EncodingsTest.java rename to jablib/src/test/java/org/jabref/logic/l10n/EncodingsTest.java diff --git a/src/test/java/org/jabref/logic/l10n/JavaLocalizationEntryParser.java b/jablib/src/test/java/org/jabref/logic/l10n/JavaLocalizationEntryParser.java similarity index 100% rename from src/test/java/org/jabref/logic/l10n/JavaLocalizationEntryParser.java rename to jablib/src/test/java/org/jabref/logic/l10n/JavaLocalizationEntryParser.java diff --git a/src/test/java/org/jabref/logic/l10n/JavaLocalizationEntryParserTest.java b/jablib/src/test/java/org/jabref/logic/l10n/JavaLocalizationEntryParserTest.java similarity index 100% rename from src/test/java/org/jabref/logic/l10n/JavaLocalizationEntryParserTest.java rename to jablib/src/test/java/org/jabref/logic/l10n/JavaLocalizationEntryParserTest.java diff --git a/src/test/java/org/jabref/logic/l10n/LanguageTest.java b/jablib/src/test/java/org/jabref/logic/l10n/LanguageTest.java similarity index 100% rename from src/test/java/org/jabref/logic/l10n/LanguageTest.java rename to jablib/src/test/java/org/jabref/logic/l10n/LanguageTest.java diff --git a/src/test/java/org/jabref/logic/l10n/LocalizationBundleForTest.java b/jablib/src/test/java/org/jabref/logic/l10n/LocalizationBundleForTest.java similarity index 100% rename from src/test/java/org/jabref/logic/l10n/LocalizationBundleForTest.java rename to jablib/src/test/java/org/jabref/logic/l10n/LocalizationBundleForTest.java diff --git a/src/test/java/org/jabref/logic/l10n/LocalizationConsistencyTest.java b/jablib/src/test/java/org/jabref/logic/l10n/LocalizationConsistencyTest.java similarity index 96% rename from src/test/java/org/jabref/logic/l10n/LocalizationConsistencyTest.java rename to jablib/src/test/java/org/jabref/logic/l10n/LocalizationConsistencyTest.java index a7a64fa1157..7435e9539bd 100644 --- a/src/test/java/org/jabref/logic/l10n/LocalizationConsistencyTest.java +++ b/jablib/src/test/java/org/jabref/logic/l10n/LocalizationConsistencyTest.java @@ -9,7 +9,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; -import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Locale; @@ -75,7 +74,7 @@ void ensureNoDuplicates() { List duplicates = properties.getDuplicates(); - assertEquals(Collections.emptyList(), duplicates, "Duplicate keys inside bundle " + bundle + "_" + lang.getId()); + assertEquals(List.of(), duplicates, "Duplicate keys inside bundle " + bundle + "_" + lang.getId()); } } @@ -96,7 +95,7 @@ void languageKeysShouldNotContainUnderscoresForSpaces() throws IOException { .stream() .filter(key -> key.getKey().contains("\\_")) .collect(Collectors.toList()); - assertEquals(Collections.emptyList(), quotedEntries, + assertEquals(List.of(), quotedEntries, "Language keys must not use underscores for spaces! Use \"This is a message\" instead of \"This_is_a_message\".\n" + "Please correct the following entries:\n" + quotedEntries @@ -112,7 +111,7 @@ void languageKeysShouldNotContainHtmlBrAndHtmlP() throws IOException { .stream() .filter(key -> key.getKey().contains("
") || key.getKey().contains("

")) .collect(Collectors.toList()); - assertEquals(Collections.emptyList(), entriesWithHtml, + assertEquals(List.of(), entriesWithHtml, "Language keys must not contain HTML
or

. Use \\n for a line break.\n" + "Please correct the following entries:\n" + entriesWithHtml @@ -124,7 +123,7 @@ void languageKeysShouldNotContainHtmlBrAndHtmlP() throws IOException { @Test void findMissingLocalizationKeys() throws IOException { List missingKeys = new ArrayList<>(LocalizationParser.findMissingKeys(LocalizationBundleForTest.LANG)); - assertEquals(Collections.emptyList(), missingKeys, + assertEquals(List.of(), missingKeys, missingKeys.stream() .map(key -> LocalizationKey.fromKey(key.getKey())) .map(key -> "%s=%s".formatted( @@ -145,7 +144,7 @@ void findMissingLocalizationKeys() throws IOException { @Test void findObsoleteLocalizationKeys() throws IOException { Set obsoleteKeys = LocalizationParser.findObsolete(LocalizationBundleForTest.LANG); - assertEquals(Collections.emptySet(), obsoleteKeys, + assertEquals(Set.of(), obsoleteKeys, obsoleteKeys.stream().collect(Collectors.joining("\n", "Obsolete keys found in language properties file: \n\n", """ diff --git a/src/test/java/org/jabref/logic/l10n/LocalizationEntry.java b/jablib/src/test/java/org/jabref/logic/l10n/LocalizationEntry.java similarity index 100% rename from src/test/java/org/jabref/logic/l10n/LocalizationEntry.java rename to jablib/src/test/java/org/jabref/logic/l10n/LocalizationEntry.java diff --git a/src/test/java/org/jabref/logic/l10n/LocalizationKeyParamsTest.java b/jablib/src/test/java/org/jabref/logic/l10n/LocalizationKeyParamsTest.java similarity index 100% rename from src/test/java/org/jabref/logic/l10n/LocalizationKeyParamsTest.java rename to jablib/src/test/java/org/jabref/logic/l10n/LocalizationKeyParamsTest.java diff --git a/src/test/java/org/jabref/logic/l10n/LocalizationKeyTest.java b/jablib/src/test/java/org/jabref/logic/l10n/LocalizationKeyTest.java similarity index 100% rename from src/test/java/org/jabref/logic/l10n/LocalizationKeyTest.java rename to jablib/src/test/java/org/jabref/logic/l10n/LocalizationKeyTest.java diff --git a/src/test/java/org/jabref/logic/l10n/LocalizationParser.java b/jablib/src/test/java/org/jabref/logic/l10n/LocalizationParser.java similarity index 88% rename from src/test/java/org/jabref/logic/l10n/LocalizationParser.java rename to jablib/src/test/java/org/jabref/logic/l10n/LocalizationParser.java index 81dcc522cf2..076fb63ea0d 100644 --- a/src/test/java/org/jabref/logic/l10n/LocalizationParser.java +++ b/jablib/src/test/java/org/jabref/logic/l10n/LocalizationParser.java @@ -25,6 +25,7 @@ import javafx.fxml.FXMLLoader; import com.airhacks.afterburner.views.ViewLoader; +import org.jooq.lambda.Unchecked; import org.mockito.Answers; import org.mockito.MockedStatic; import org.mockito.Mockito; @@ -87,25 +88,30 @@ public static Set findLocalizationParametersStringsInJavaFile } } - private static Set findLocalizationEntriesInJavaFiles(LocalizationBundleForTest type) - throws IOException { - try (Stream pathStream = Files.walk(Path.of("src/main"))) { - return pathStream - .filter(LocalizationParser::isJavaFile) - .flatMap(path -> getLanguageKeysInJavaFile(path, type).stream()) - .collect(Collectors.toSet()); + private static Set findLocalizationEntriesInJavaFiles(LocalizationBundleForTest type) throws IOException { + try { + return List.of("jablib", "jabkit", "jabsrv", "jabgui") + .stream() + .map(path -> Path.of("..", path, "src", "main", "java").normalize()) + .flatMap(Unchecked.function(path -> Files.walk(path))) + .filter(LocalizationParser::isJavaFile) + .flatMap(javaPath -> getLanguageKeysInJavaFile(javaPath, type).stream()) + .collect(Collectors.toSet()); } catch (UncheckedIOException ioe) { throw new IOException(ioe); } } - private static Set findLocalizationEntriesInFxmlFiles(LocalizationBundleForTest type) - throws IOException { - try (Stream pathStream = Files.walk(Path.of("src/main"))) { - return pathStream - .filter(LocalizationParser::isFxmlFile) - .flatMap(path -> getLanguageKeysInFxmlFile(path, type).stream()) - .collect(Collectors.toSet()); + private static Set findLocalizationEntriesInFxmlFiles(LocalizationBundleForTest type) throws IOException { + try { + return List.of("jablib", "jabkit", "jabsrv", "jabgui") + .stream() + .map(path -> Path.of("..", path, "src", "main", "resources").normalize()) + .filter(Files::isDirectory) + .flatMap(Unchecked.function(path -> Files.walk(path))) + .filter(LocalizationParser::isFxmlFile) + .flatMap(fxmlPath -> getLanguageKeysInFxmlFile(fxmlPath, type).stream()) + .collect(Collectors.toSet()); } catch (UncheckedIOException ioe) { throw new IOException(ioe); } @@ -174,7 +180,7 @@ private static List getLocalizationParametersInJavaFile(Path /** * Loads the fxml file and returns all used language resources. - * + *

* Note: FXML prefixes localization keys with %. */ private static Collection getLanguageKeysInFxmlFile(Path path, LocalizationBundleForTest type) { diff --git a/src/test/java/org/jabref/logic/l10n/LocalizationTest.java b/jablib/src/test/java/org/jabref/logic/l10n/LocalizationTest.java similarity index 100% rename from src/test/java/org/jabref/logic/l10n/LocalizationTest.java rename to jablib/src/test/java/org/jabref/logic/l10n/LocalizationTest.java diff --git a/src/test/java/org/jabref/logic/layout/LayoutEntryTest.java b/jablib/src/test/java/org/jabref/logic/layout/LayoutEntryTest.java similarity index 78% rename from src/test/java/org/jabref/logic/layout/LayoutEntryTest.java rename to jablib/src/test/java/org/jabref/logic/layout/LayoutEntryTest.java index 69f512266a9..8cbfec9d2f9 100644 --- a/src/test/java/org/jabref/logic/layout/LayoutEntryTest.java +++ b/jablib/src/test/java/org/jabref/logic/layout/LayoutEntryTest.java @@ -1,7 +1,7 @@ package org.jabref.logic.layout; import java.io.IOException; -import java.io.StringReader; +import java.io.Reader; import java.nio.charset.StandardCharsets; import java.util.List; @@ -67,8 +67,8 @@ void setUp() { } public String layout(String layoutFile, BibEntry entry) throws IOException { - StringReader sr = new StringReader(layoutFile.replace("__NEWLINE__", "\n")); - Layout layout = new LayoutHelper(sr, mock(LayoutFormatterPreferences.class), mock(JournalAbbreviationRepository.class)).getLayoutFromText(); + Reader reader = Reader.of(layoutFile.replace("__NEWLINE__", "\n")); + Layout layout = new LayoutHelper(reader, mock(LayoutFormatterPreferences.class), mock(JournalAbbreviationRepository.class)).getLayoutFromText(); return layout.doLayout(entry, null); } @@ -76,29 +76,29 @@ public String layout(String layoutFile, BibEntry entry) throws IOException { @Test void parseMethodCalls() { assertEquals(1, LayoutEntry.parseMethodsCalls("bla").size()); - assertEquals("bla", (LayoutEntry.parseMethodsCalls("bla").getFirst()).getFirst()); + assertEquals("bla", LayoutEntry.parseMethodsCalls("bla").getFirst().getFirst()); assertEquals(1, LayoutEntry.parseMethodsCalls("bla,").size()); - assertEquals("bla", (LayoutEntry.parseMethodsCalls("bla,").getFirst()).getFirst()); + assertEquals("bla", LayoutEntry.parseMethodsCalls("bla,").getFirst().getFirst()); assertEquals(1, LayoutEntry.parseMethodsCalls("_bla.bla.blub,").size()); - assertEquals("_bla.bla.blub", (LayoutEntry.parseMethodsCalls("_bla.bla.blub,").getFirst()).getFirst()); + assertEquals("_bla.bla.blub", LayoutEntry.parseMethodsCalls("_bla.bla.blub,").getFirst().getFirst()); assertEquals(2, LayoutEntry.parseMethodsCalls("bla,foo").size()); - assertEquals("bla", (LayoutEntry.parseMethodsCalls("bla,foo").getFirst()).getFirst()); - assertEquals("foo", (LayoutEntry.parseMethodsCalls("bla,foo").get(1)).getFirst()); + assertEquals("bla", LayoutEntry.parseMethodsCalls("bla,foo").getFirst().getFirst()); + assertEquals("foo", LayoutEntry.parseMethodsCalls("bla,foo").get(1).getFirst()); assertEquals(2, LayoutEntry.parseMethodsCalls("bla(\"test\"),foo(\"fark\")").size()); - assertEquals("bla", (LayoutEntry.parseMethodsCalls("bla(\"test\"),foo(\"fark\")").getFirst()).getFirst()); - assertEquals("foo", (LayoutEntry.parseMethodsCalls("bla(\"test\"),foo(\"fark\")").get(1)).getFirst()); - assertEquals("test", (LayoutEntry.parseMethodsCalls("bla(\"test\"),foo(\"fark\")").getFirst()).get(1)); - assertEquals("fark", (LayoutEntry.parseMethodsCalls("bla(\"test\"),foo(\"fark\")").get(1)).get(1)); + assertEquals("bla", LayoutEntry.parseMethodsCalls("bla(\"test\"),foo(\"fark\")").getFirst().getFirst()); + assertEquals("foo", LayoutEntry.parseMethodsCalls("bla(\"test\"),foo(\"fark\")").get(1).getFirst()); + assertEquals("test", LayoutEntry.parseMethodsCalls("bla(\"test\"),foo(\"fark\")").getFirst().get(1)); + assertEquals("fark", LayoutEntry.parseMethodsCalls("bla(\"test\"),foo(\"fark\")").get(1).get(1)); assertEquals(2, LayoutEntry.parseMethodsCalls("bla(test),foo(fark)").size()); - assertEquals("bla", (LayoutEntry.parseMethodsCalls("bla(test),foo(fark)").getFirst()).getFirst()); - assertEquals("foo", (LayoutEntry.parseMethodsCalls("bla(test),foo(fark)").get(1)).getFirst()); - assertEquals("test", (LayoutEntry.parseMethodsCalls("bla(test),foo(fark)").getFirst()).get(1)); - assertEquals("fark", (LayoutEntry.parseMethodsCalls("bla(test),foo(fark)").get(1)).get(1)); + assertEquals("bla", LayoutEntry.parseMethodsCalls("bla(test),foo(fark)").getFirst().getFirst()); + assertEquals("foo", LayoutEntry.parseMethodsCalls("bla(test),foo(fark)").get(1).getFirst()); + assertEquals("test", LayoutEntry.parseMethodsCalls("bla(test),foo(fark)").getFirst().get(1)); + assertEquals("fark", LayoutEntry.parseMethodsCalls("bla(test),foo(fark)").get(1).get(1)); } @ParameterizedTest diff --git a/src/test/java/org/jabref/logic/layout/LayoutHelperTest.java b/jablib/src/test/java/org/jabref/logic/layout/LayoutHelperTest.java similarity index 55% rename from src/test/java/org/jabref/logic/layout/LayoutHelperTest.java rename to jablib/src/test/java/org/jabref/logic/layout/LayoutHelperTest.java index ec8d4667731..ec8de3f2184 100644 --- a/src/test/java/org/jabref/logic/layout/LayoutHelperTest.java +++ b/jablib/src/test/java/org/jabref/logic/layout/LayoutHelperTest.java @@ -1,7 +1,7 @@ package org.jabref.logic.layout; import java.io.IOException; -import java.io.StringReader; +import java.io.Reader; import org.jabref.logic.journals.JournalAbbreviationRepository; @@ -18,23 +18,23 @@ class LayoutHelperTest { @Test void backslashDoesNotTriggerException() { - StringReader stringReader = new StringReader("\\"); - LayoutHelper layoutHelper = new LayoutHelper(stringReader, layoutFormatterPreferences, abbreviationRepository); + Reader reader = Reader.of("\\"); + LayoutHelper layoutHelper = new LayoutHelper(reader, layoutFormatterPreferences, abbreviationRepository); assertThrows(IOException.class, layoutHelper::getLayoutFromText); } @Test - void unbalancedBeginEndIsParsed() throws Exception { - StringReader stringReader = new StringReader("\\begin{doi}, DOI: \\doi"); - LayoutHelper layoutHelper = new LayoutHelper(stringReader, layoutFormatterPreferences, abbreviationRepository); + void unbalancedBeginEndIsParsed() throws IOException { + Reader reader = Reader.of("\\begin{doi}, DOI: \\doi"); + LayoutHelper layoutHelper = new LayoutHelper(reader, layoutFormatterPreferences, abbreviationRepository); Layout layout = layoutHelper.getLayoutFromText(); assertNotNull(layout); } @Test - void minimalExampleWithDoiGetsParsed() throws Exception { - StringReader stringReader = new StringReader("\\begin{doi}, DOI: \\doi\\end{doi}"); - LayoutHelper layoutHelper = new LayoutHelper(stringReader, layoutFormatterPreferences, abbreviationRepository); + void minimalExampleWithDoiGetsParsed() throws IOException { + Reader reader = Reader.of("\\begin{doi}, DOI: \\doi\\end{doi}"); + LayoutHelper layoutHelper = new LayoutHelper(reader, layoutFormatterPreferences, abbreviationRepository); Layout layout = layoutHelper.getLayoutFromText(); assertNotNull(layout); } diff --git a/src/test/java/org/jabref/logic/layout/LayoutTest.java b/jablib/src/test/java/org/jabref/logic/layout/LayoutTest.java similarity index 90% rename from src/test/java/org/jabref/logic/layout/LayoutTest.java rename to jablib/src/test/java/org/jabref/logic/layout/LayoutTest.java index e27e75380b2..37a1e40f1aa 100644 --- a/src/test/java/org/jabref/logic/layout/LayoutTest.java +++ b/jablib/src/test/java/org/jabref/logic/layout/LayoutTest.java @@ -1,10 +1,8 @@ package org.jabref.logic.layout; -import java.io.File; import java.io.IOException; -import java.io.StringReader; +import java.io.Reader; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import org.jabref.logic.journals.JournalAbbreviationRepository; @@ -36,15 +34,15 @@ void setUp() { } private String layout(String layout, List fileDirForDatabase, BibEntry entry) throws IOException { - StringReader layoutStringReader = new StringReader(layout.replace("__NEWLINE__", "\n")); + Reader layoutReader = Reader.of(layout.replace("__NEWLINE__", "\n")); - return new LayoutHelper(layoutStringReader, fileDirForDatabase, layoutFormatterPreferences, abbreviationRepository) + return new LayoutHelper(layoutReader, fileDirForDatabase, layoutFormatterPreferences, abbreviationRepository) .getLayoutFromText() .doLayout(entry, null); } private String layout(String layout, BibEntry entry) throws IOException { - return layout(layout, Collections.emptyList(), entry); + return layout(layout, List.of(), entry); } @Test @@ -147,11 +145,11 @@ void wrapFileLinksExpandFile() throws IOException { String layoutText = layout( "\\begin{file}\\format[WrapFileLinks(\\i. \\d (\\p))]{\\file}\\end{file}", - Collections.singletonList(Path.of("src/test/resources/pdfs/")), + List.of(Path.of("src/test/resources/pdfs/")), entry); assertEquals( - "1. Test file (" + new File("src/test/resources/pdfs/encrypted.pdf").getCanonicalPath() + ")", + "1. Test file (" + Path.of("src/test/resources/pdfs/encrypted.pdf").toRealPath() + ")", layoutText); } @@ -167,7 +165,7 @@ void expandCommandIfTerminatedByMinus() throws IOException { @Test void customNameFormatter() throws IOException { when(layoutFormatterPreferences.getNameFormatterPreferences()).thenReturn( - new NameFormatterPreferences(Collections.singletonList("DCA"), Collections.singletonList("1@*@{ll}@@2@1..1@{ff}{ll}@2..2@ and {ff}{l}@@*@*@more"))); + new NameFormatterPreferences(List.of("DCA"), List.of("1@*@{ll}@@2@1..1@{ff}{ll}@2..2@ and {ff}{l}@@*@*@more"))); BibEntry entry = new BibEntry(StandardEntryType.Article).withField(StandardField.AUTHOR, "Joe Doe and Mary Jane"); String layoutText = layout("\\begin{author}\\format[DCA]{\\author}\\end{author}", entry); diff --git a/src/test/java/org/jabref/logic/layout/format/AbstractParamLayoutFormatterTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/AbstractParamLayoutFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/AbstractParamLayoutFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/AbstractParamLayoutFormatterTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorAbbreviatorTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/AuthorAbbreviatorTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/AuthorAbbreviatorTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/AuthorAbbreviatorTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorAndToSemicolonReplacerTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/AuthorAndToSemicolonReplacerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/AuthorAndToSemicolonReplacerTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/AuthorAndToSemicolonReplacerTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorAndsCommaReplacerTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/AuthorAndsCommaReplacerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/AuthorAndsCommaReplacerTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/AuthorAndsCommaReplacerTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorAndsReplacerTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/AuthorAndsReplacerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/AuthorAndsReplacerTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/AuthorAndsReplacerTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastCommasTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastCommasTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastCommasTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastCommasTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastOxfordCommasTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastOxfordCommasTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastOxfordCommasTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/AuthorFirstAbbrLastOxfordCommasTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorFirstFirstCommasTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/AuthorFirstFirstCommasTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/AuthorFirstFirstCommasTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/AuthorFirstFirstCommasTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorFirstFirstTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/AuthorFirstFirstTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/AuthorFirstFirstTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/AuthorFirstFirstTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorFirstLastCommasTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/AuthorFirstLastCommasTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/AuthorFirstLastCommasTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/AuthorFirstLastCommasTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorFirstLastOxfordCommasTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/AuthorFirstLastOxfordCommasTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/AuthorFirstLastOxfordCommasTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/AuthorFirstLastOxfordCommasTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorLF_FFAbbrTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/AuthorLF_FFAbbrTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/AuthorLF_FFAbbrTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/AuthorLF_FFAbbrTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorLF_FFTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/AuthorLF_FFTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/AuthorLF_FFTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/AuthorLF_FFTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrCommasTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrCommasTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrCommasTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrCommasTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrOxfordCommasTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrOxfordCommasTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrOxfordCommasTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstAbbrOxfordCommasTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstAbbreviatorTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstAbbreviatorTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/AuthorLastFirstAbbreviatorTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstAbbreviatorTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstCommasTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstCommasTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/AuthorLastFirstCommasTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstCommasTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstOxfordCommasTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstOxfordCommasTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/AuthorLastFirstOxfordCommasTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstOxfordCommasTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/AuthorLastFirstTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/AuthorLastFirstTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorNatBibTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/AuthorNatBibTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/AuthorNatBibTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/AuthorNatBibTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorOrgSciTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/AuthorOrgSciTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/AuthorOrgSciTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/AuthorOrgSciTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/AuthorsTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/AuthorsTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/AuthorsTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/AuthorsTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/CompositeFormatTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/CompositeFormatTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/CompositeFormatTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/CompositeFormatTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/DOICheckTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/DOICheckTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/DOICheckTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/DOICheckTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/DOIStripTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/DOIStripTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/DOIStripTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/DOIStripTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/DateFormatterTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/DateFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/DateFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/DateFormatterTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/DefaultTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/DefaultTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/DefaultTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/DefaultTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/EntryTypeFormatterTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/EntryTypeFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/EntryTypeFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/EntryTypeFormatterTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/FileLinkTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/FileLinkTest.java similarity index 91% rename from src/test/java/org/jabref/logic/layout/format/FileLinkTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/FileLinkTest.java index 1b58d4a07c7..a7bd41b7ade 100644 --- a/src/test/java/org/jabref/logic/layout/format/FileLinkTest.java +++ b/jablib/src/test/java/org/jabref/logic/layout/format/FileLinkTest.java @@ -1,6 +1,6 @@ package org.jabref.logic.layout.format; -import java.util.Collections; +import java.util.List; import java.util.stream.Stream; import org.jabref.logic.layout.ParamLayoutFormatter; @@ -17,8 +17,8 @@ class FileLinkTest { private ParamLayoutFormatter fileLinkLayoutFormatter; @BeforeEach - void setUp() throws Exception { - fileLinkLayoutFormatter = new FileLink(Collections.emptyList(), ""); + void setUp() { + fileLinkLayoutFormatter = new FileLink(List.of(), ""); } @ParameterizedTest diff --git a/src/test/java/org/jabref/logic/layout/format/FirstPageTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/FirstPageTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/FirstPageTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/FirstPageTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/HTMLCharsTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/HTMLCharsTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/HTMLCharsTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/HTMLCharsTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/HTMLParagraphsTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/HTMLParagraphsTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/HTMLParagraphsTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/HTMLParagraphsTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/IfPluralTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/IfPluralTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/IfPluralTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/IfPluralTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/LastPageTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/LastPageTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/LastPageTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/LastPageTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/LatexToUnicodeFormatterTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/LatexToUnicodeFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/LatexToUnicodeFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/LatexToUnicodeFormatterTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/MarkdownFormatterTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/MarkdownFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/MarkdownFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/MarkdownFormatterTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/NameFormatterTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/NameFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/NameFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/NameFormatterTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/NoSpaceBetweenAbbreviationsTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/NoSpaceBetweenAbbreviationsTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/NoSpaceBetweenAbbreviationsTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/NoSpaceBetweenAbbreviationsTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/OrdinalTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/OrdinalTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/OrdinalTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/OrdinalTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/RTFCharsTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/RTFCharsTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/RTFCharsTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/RTFCharsTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/RemoveBracketsAddCommaTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/RemoveBracketsAddCommaTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/RemoveBracketsAddCommaTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/RemoveBracketsAddCommaTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/RemoveBracketsTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/RemoveBracketsTest.java similarity index 71% rename from src/test/java/org/jabref/logic/layout/format/RemoveBracketsTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/RemoveBracketsTest.java index 589f45427f0..2f2e462a6c2 100644 --- a/src/test/java/org/jabref/logic/layout/format/RemoveBracketsTest.java +++ b/jablib/src/test/java/org/jabref/logic/layout/format/RemoveBracketsTest.java @@ -16,27 +16,27 @@ void setUp() { } @Test - void bracePairCorrectlyRemoved() throws Exception { + void bracePairCorrectlyRemoved() { assertEquals("some text", formatter.format("{some text}")); } @Test - void singleOpeningBraceCorrectlyRemoved() throws Exception { + void singleOpeningBraceCorrectlyRemoved() { assertEquals("some text", formatter.format("{some text")); } @Test - void singleClosingBraceCorrectlyRemoved() throws Exception { + void singleClosingBraceCorrectlyRemoved() { assertEquals("some text", formatter.format("some text}")); } @Test - void bracePairWithEscapedBackslashCorrectlyRemoved() throws Exception { + void bracePairWithEscapedBackslashCorrectlyRemoved() { assertEquals("\\some text\\", formatter.format("\\{some text\\}")); } @Test - void withoutBracketsUnmodified() throws Exception { + void withoutBracketsUnmodified() { assertEquals("some text", formatter.format("some text")); } } diff --git a/src/test/java/org/jabref/logic/layout/format/RemoveLatexCommandsFormatterTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/RemoveLatexCommandsFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/RemoveLatexCommandsFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/RemoveLatexCommandsFormatterTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/RemoveTildeTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/RemoveTildeTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/RemoveTildeTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/RemoveTildeTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/RemoveWhitespaceTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/RemoveWhitespaceTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/RemoveWhitespaceTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/RemoveWhitespaceTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/ReplaceTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/ReplaceTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/ReplaceTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/ReplaceTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/ReplaceUnicodeLigaturesFormatterTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/ReplaceUnicodeLigaturesFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/ReplaceUnicodeLigaturesFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/ReplaceUnicodeLigaturesFormatterTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/RisKeywordsTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/RisKeywordsTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/RisKeywordsTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/RisKeywordsTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/RisMonthTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/RisMonthTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/RisMonthTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/RisMonthTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/ShortMonthFormatterTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/ShortMonthFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/ShortMonthFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/ShortMonthFormatterTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/ToLowerCaseTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/ToLowerCaseTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/ToLowerCaseTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/ToLowerCaseTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/ToUpperCaseTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/ToUpperCaseTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/ToUpperCaseTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/ToUpperCaseTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/WrapContentTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/WrapContentTest.java similarity index 100% rename from src/test/java/org/jabref/logic/layout/format/WrapContentTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/WrapContentTest.java diff --git a/src/test/java/org/jabref/logic/layout/format/WrapFileLinksTest.java b/jablib/src/test/java/org/jabref/logic/layout/format/WrapFileLinksTest.java similarity index 82% rename from src/test/java/org/jabref/logic/layout/format/WrapFileLinksTest.java rename to jablib/src/test/java/org/jabref/logic/layout/format/WrapFileLinksTest.java index a09d2e78fde..d41dce19218 100644 --- a/src/test/java/org/jabref/logic/layout/format/WrapFileLinksTest.java +++ b/jablib/src/test/java/org/jabref/logic/layout/format/WrapFileLinksTest.java @@ -1,9 +1,8 @@ package org.jabref.logic.layout.format; -import java.io.File; import java.io.IOException; import java.nio.file.Path; -import java.util.Collections; +import java.util.List; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -17,7 +16,7 @@ class WrapFileLinksTest { @BeforeEach void setUp() { - formatter = new WrapFileLinks(Collections.emptyList(), ""); + formatter = new WrapFileLinks(List.of(), ""); } @Test @@ -97,23 +96,23 @@ void endingBracket() { @Test void path() throws IOException { - formatter = new WrapFileLinks(Collections.singletonList(Path.of("src/test/resources/pdfs/")), ""); + formatter = new WrapFileLinks(List.of(Path.of("src/test/resources/pdfs/")), ""); formatter.setArgument("\\p"); - assertEquals(new File("src/test/resources/pdfs/encrypted.pdf").getCanonicalPath(), + assertEquals(Path.of("src/test/resources/pdfs/encrypted.pdf").toRealPath().toString(), formatter.format("Preferences:encrypted.pdf:PDF")); } @Test void pathFallBackToGeneratedDir() throws IOException { - formatter = new WrapFileLinks(Collections.emptyList(), "src/test/resources/pdfs/"); + formatter = new WrapFileLinks(List.of(), "src/test/resources/pdfs/"); formatter.setArgument("\\p"); - assertEquals(new File("src/test/resources/pdfs/encrypted.pdf").getCanonicalPath(), + assertEquals(Path.of("src/test/resources/pdfs/encrypted.pdf").toRealPath().toString(), formatter.format("Preferences:encrypted.pdf:PDF")); } @Test void pathReturnsRelativePathIfNotFound() { - formatter = new WrapFileLinks(Collections.singletonList(Path.of("src/test/resources/pdfs/")), ""); + formatter = new WrapFileLinks(List.of(Path.of("src/test/resources/pdfs/")), ""); formatter.setArgument("\\p"); assertEquals("test.pdf", formatter.format("Preferences:test.pdf:PDF")); } diff --git a/src/test/java/org/jabref/logic/msbib/MSBibConverterTest.java b/jablib/src/test/java/org/jabref/logic/msbib/MSBibConverterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/msbib/MSBibConverterTest.java rename to jablib/src/test/java/org/jabref/logic/msbib/MSBibConverterTest.java diff --git a/src/test/java/org/jabref/logic/msbib/MsBibAuthorTest.java b/jablib/src/test/java/org/jabref/logic/msbib/MsBibAuthorTest.java similarity index 100% rename from src/test/java/org/jabref/logic/msbib/MsBibAuthorTest.java rename to jablib/src/test/java/org/jabref/logic/msbib/MsBibAuthorTest.java diff --git a/src/test/java/org/jabref/logic/msbib/MsBibMappingTest.java b/jablib/src/test/java/org/jabref/logic/msbib/MsBibMappingTest.java similarity index 100% rename from src/test/java/org/jabref/logic/msbib/MsBibMappingTest.java rename to jablib/src/test/java/org/jabref/logic/msbib/MsBibMappingTest.java diff --git a/src/test/java/org/jabref/logic/net/MimeTypeDetectorTest.java b/jablib/src/test/java/org/jabref/logic/net/MimeTypeDetectorTest.java similarity index 100% rename from src/test/java/org/jabref/logic/net/MimeTypeDetectorTest.java rename to jablib/src/test/java/org/jabref/logic/net/MimeTypeDetectorTest.java diff --git a/src/test/java/org/jabref/logic/net/ProxyTest.java b/jablib/src/test/java/org/jabref/logic/net/ProxyTest.java similarity index 100% rename from src/test/java/org/jabref/logic/net/ProxyTest.java rename to jablib/src/test/java/org/jabref/logic/net/ProxyTest.java diff --git a/src/test/java/org/jabref/logic/net/URLDownloadTest.java b/jablib/src/test/java/org/jabref/logic/net/URLDownloadTest.java similarity index 85% rename from src/test/java/org/jabref/logic/net/URLDownloadTest.java rename to jablib/src/test/java/org/jabref/logic/net/URLDownloadTest.java index 734820a94fe..5ffd91203d0 100644 --- a/src/test/java/org/jabref/logic/net/URLDownloadTest.java +++ b/jablib/src/test/java/org/jabref/logic/net/URLDownloadTest.java @@ -1,12 +1,14 @@ package org.jabref.logic.net; import java.io.File; +import java.io.IOException; import java.net.MalformedURLException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import org.jabref.logic.importer.FetcherClientException; +import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.FetcherServerException; import org.jabref.logic.util.URLUtil; import org.jabref.support.DisabledOnCIServer; @@ -35,21 +37,21 @@ class URLDownloadTest { private static final Logger LOGGER = LoggerFactory.getLogger(URLDownloadTest.class); @Test - void stringDownloadWithSetEncoding() throws Exception { + void stringDownloadWithSetEncoding() throws MalformedURLException, FetcherException { URLDownload dl = new URLDownload(URLUtil.create("http://www.google.com")); assertTrue(dl.asString().contains("Google"), "google.com should contain google"); } @Test - void stringDownload() throws Exception { + void stringDownload() throws MalformedURLException, FetcherException { URLDownload dl = new URLDownload(URLUtil.create("http://www.google.com")); assertTrue(dl.asString(StandardCharsets.UTF_8).contains("Google"), "google.com should contain google"); } @Test - void fileDownload() throws Exception { + void fileDownload() throws IOException, FetcherException { File destination = File.createTempFile("jabref-test", ".html"); try { URLDownload dl = new URLDownload(URLUtil.create("http://www.google.com")); @@ -64,14 +66,14 @@ void fileDownload() throws Exception { } @Test - void determineMimeType() throws Exception { + void determineMimeType() throws MalformedURLException { URLDownload dl = new URLDownload(URLUtil.create("http://www.google.com")); assertTrue(dl.getMimeType().get().startsWith("text/html")); } @Test - void downloadToTemporaryFilePathWithoutFileSavesAsTmpFile() throws Exception { + void downloadToTemporaryFilePathWithoutFileSavesAsTmpFile() throws MalformedURLException, FetcherException { URLDownload google = new URLDownload(URLUtil.create("http://www.google.com")); String path = google.toTemporaryFile().toString(); @@ -79,7 +81,7 @@ void downloadToTemporaryFilePathWithoutFileSavesAsTmpFile() throws Exception { } @Test - void downloadToTemporaryFileKeepsName() throws Exception { + void downloadToTemporaryFileKeepsName() throws MalformedURLException, FetcherException { URLDownload google = new URLDownload(URLUtil.create("https://github.com/JabRef/jabref/blob/main/LICENSE")); String path = google.toTemporaryFile().toString(); @@ -88,7 +90,7 @@ void downloadToTemporaryFileKeepsName() throws Exception { @Test @DisabledOnCIServer("CI Server is apparently blocked") - void downloadOfFTPSucceeds() throws Exception { + void downloadOfFTPSucceeds() throws MalformedURLException, FetcherException { URLDownload ftp = new URLDownload(URLUtil.create("ftp://ftp.informatik.uni-stuttgart.de/pub/library/ncstrl.ustuttgart_fi/INPROC-2016-15/INPROC-2016-15.pdf")); Path path = ftp.toTemporaryFile(); @@ -96,7 +98,7 @@ void downloadOfFTPSucceeds() throws Exception { } @Test - void downloadOfHttpSucceeds() throws Exception { + void downloadOfHttpSucceeds() throws MalformedURLException, FetcherException { URLDownload ftp = new URLDownload(URLUtil.create("http://www.jabref.org")); Path path = ftp.toTemporaryFile(); @@ -104,7 +106,7 @@ void downloadOfHttpSucceeds() throws Exception { } @Test - void downloadOfHttpsSucceeds() throws Exception { + void downloadOfHttpsSucceeds() throws MalformedURLException, FetcherException { URLDownload ftp = new URLDownload(URLUtil.create("https://www.jabref.org")); Path path = ftp.toTemporaryFile(); @@ -135,19 +137,19 @@ void connectTimeoutIsNeverNull() throws MalformedURLException { } @Test - void test503ErrorThrowsFetcherServerException() throws Exception { + void test503ErrorThrowsFetcherServerException() throws MalformedURLException { URLDownload urlDownload = new URLDownload(URLUtil.create("http://httpstat.us/503")); assertThrows(FetcherServerException.class, urlDownload::asString); } @Test - void test429ErrorThrowsFetcherClientException() throws Exception { + void test429ErrorThrowsFetcherClientException() throws MalformedURLException { URLDownload urlDownload = new URLDownload(URLUtil.create("http://httpstat.us/429")); assertThrows(FetcherClientException.class, urlDownload::asString); } @Test - void redirectWorks(@TempDir Path tempDir) throws Exception { + void redirectWorks(@TempDir Path tempDir) throws IOException, FetcherException { WireMockServer wireMockServer = new WireMockServer(2222); wireMockServer.start(); configureFor("localhost", 2222); diff --git a/src/test/java/org/jabref/logic/net/URLUtilTest.java b/jablib/src/test/java/org/jabref/logic/net/URLUtilTest.java similarity index 99% rename from src/test/java/org/jabref/logic/net/URLUtilTest.java rename to jablib/src/test/java/org/jabref/logic/net/URLUtilTest.java index 7de7b641fc5..1728c8c898e 100644 --- a/src/test/java/org/jabref/logic/net/URLUtilTest.java +++ b/jablib/src/test/java/org/jabref/logic/net/URLUtilTest.java @@ -13,7 +13,7 @@ class URLUtilTest { @Test - void cleanGoogleSearchURL() throws Exception { + void cleanGoogleSearchURL() { // empty text assertEquals("", URLUtil.cleanGoogleSearchURL("")); assertEquals(" ", URLUtil.cleanGoogleSearchURL(" ")); diff --git a/src/test/java/org/jabref/logic/openoffice/ReferenceMarkTest.java b/jablib/src/test/java/org/jabref/logic/openoffice/ReferenceMarkTest.java similarity index 100% rename from src/test/java/org/jabref/logic/openoffice/ReferenceMarkTest.java rename to jablib/src/test/java/org/jabref/logic/openoffice/ReferenceMarkTest.java diff --git a/src/test/java/org/jabref/logic/openoffice/oocsltext/CSLFormatUtilsTest.java b/jablib/src/test/java/org/jabref/logic/openoffice/oocsltext/CSLFormatUtilsTest.java similarity index 100% rename from src/test/java/org/jabref/logic/openoffice/oocsltext/CSLFormatUtilsTest.java rename to jablib/src/test/java/org/jabref/logic/openoffice/oocsltext/CSLFormatUtilsTest.java diff --git a/src/test/java/org/jabref/logic/openoffice/style/JStyleLoaderTest.java b/jablib/src/test/java/org/jabref/logic/openoffice/style/JStyleLoaderTest.java similarity index 80% rename from src/test/java/org/jabref/logic/openoffice/style/JStyleLoaderTest.java rename to jablib/src/test/java/org/jabref/logic/openoffice/style/JStyleLoaderTest.java index 1ebffafd98a..7ba02ad9208 100644 --- a/src/test/java/org/jabref/logic/openoffice/style/JStyleLoaderTest.java +++ b/jablib/src/test/java/org/jabref/logic/openoffice/style/JStyleLoaderTest.java @@ -1,9 +1,10 @@ package org.jabref.logic.openoffice.style; -import java.net.URISyntaxException; +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import javafx.collections.FXCollections; @@ -14,6 +15,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; import org.mockito.Answers; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -26,17 +28,28 @@ class JStyleLoaderTest { private static final int NUMBER_OF_INTERNAL_STYLES = 2; + private static final String JSTYLE_NAME = "test.jstyle"; + private JStyleLoader loader; private OpenOfficePreferences preferences; private LayoutFormatterPreferences layoutPreferences; private JournalAbbreviationRepository abbreviationRepository; + @TempDir + private Path styleFolder; + + private Path jStyleFile; + @BeforeEach - void setUp() { + void setUp() throws IOException { preferences = mock(OpenOfficePreferences.class, Answers.RETURNS_DEEP_STUBS); layoutPreferences = mock(LayoutFormatterPreferences.class, Answers.RETURNS_DEEP_STUBS); abbreviationRepository = mock(JournalAbbreviationRepository.class); + try (InputStream stream = JStyleLoader.class.getResourceAsStream(JStyleLoader.DEFAULT_AUTHORYEAR_STYLE_PATH)) { + jStyleFile = styleFolder.resolve(JSTYLE_NAME); + Files.copy(stream, jStyleFile); + } } @Test @@ -63,13 +76,11 @@ void getStylesWithEmptyExternal() { } @Test - void addStyleLeadsToOneMoreStyle() throws URISyntaxException { + void addStyleLeadsToOneMoreStyle() { preferences.setExternalStyles(List.of()); loader = new JStyleLoader(preferences, layoutPreferences, abbreviationRepository); - String filename = Path.of(JStyleLoader.class.getResource(JStyleLoader.DEFAULT_AUTHORYEAR_STYLE_PATH).toURI()) - .toFile().getPath(); - loader.addStyleIfValid(filename); + loader.addStyleIfValid(jStyleFile); assertEquals(NUMBER_OF_INTERNAL_STYLES + 1, loader.getStyles().size()); } @@ -78,32 +89,28 @@ void addInvalidStyleLeadsToNoMoreStyle() { preferences.setExternalStyles(List.of()); loader = new JStyleLoader(preferences, layoutPreferences, abbreviationRepository); int beforeAdding = loader.getStyles().size(); - loader.addStyleIfValid("DefinitelyNotAValidFileNameOrWeAreExtremelyUnlucky"); + loader.addStyleIfValid(Path.of("DefinitelyNotAValidFileNameOrWeAreExtremelyUnlucky")); assertEquals(beforeAdding, loader.getStyles().size()); } @Test - void initalizeWithOneExternalFile() throws URISyntaxException { - String filename = Path.of(JStyleLoader.class.getResource(JStyleLoader.DEFAULT_AUTHORYEAR_STYLE_PATH).toURI()) - .toFile().getPath(); - when(preferences.getExternalStyles()).thenReturn(FXCollections.singletonObservableList(filename)); + void initalizeWithOneExternalFile() { + when(preferences.getExternalStyles()).thenReturn(FXCollections.singletonObservableList(jStyleFile.toString())); loader = new JStyleLoader(preferences, layoutPreferences, abbreviationRepository); assertEquals(NUMBER_OF_INTERNAL_STYLES + 1, loader.getStyles().size()); } @Test void initalizeWithIncorrectExternalFile() { - preferences.setExternalStyles(Collections.singletonList("DefinitelyNotAValidFileNameOrWeAreExtremelyUnlucky")); + preferences.setExternalStyles(List.of("DefinitelyNotAValidFileNameOrWeAreExtremelyUnlucky")); loader = new JStyleLoader(preferences, layoutPreferences, abbreviationRepository); assertEquals(NUMBER_OF_INTERNAL_STYLES, loader.getStyles().size()); } @Test - void initalizeWithOneExternalFileRemoveStyle() throws URISyntaxException { - String filename = Path.of(JStyleLoader.class.getResource(JStyleLoader.DEFAULT_AUTHORYEAR_STYLE_PATH).toURI()) - .toFile().getPath(); - when(preferences.getExternalStyles()).thenReturn(FXCollections.singletonObservableList(filename)); + void initalizeWithOneExternalFileRemoveStyle() { + when(preferences.getExternalStyles()).thenReturn(FXCollections.singletonObservableList(jStyleFile.toString())); loader = new JStyleLoader(preferences, layoutPreferences, abbreviationRepository); List toremove = new ArrayList<>(); @@ -121,10 +128,8 @@ void initalizeWithOneExternalFileRemoveStyle() throws URISyntaxException { } @Test - void initalizeWithOneExternalFileRemoveStyleUpdatesPreferences() throws URISyntaxException { - String filename = Path.of(JStyleLoader.class.getResource(JStyleLoader.DEFAULT_AUTHORYEAR_STYLE_PATH).toURI()) - .toFile().getPath(); - when(preferences.getExternalStyles()).thenReturn(FXCollections.singletonObservableList(filename)); + void initalizeWithOneExternalFileRemoveStyleUpdatesPreferences() { + when(preferences.getExternalStyles()).thenReturn(FXCollections.singletonObservableList(jStyleFile.toString())); loader = new JStyleLoader(preferences, layoutPreferences, abbreviationRepository); List toremove = new ArrayList<>(); @@ -142,14 +147,12 @@ void initalizeWithOneExternalFileRemoveStyleUpdatesPreferences() throws URISynta } @Test - void addSameStyleTwiceLeadsToOneMoreStyle() throws URISyntaxException { + void addSameStyleTwiceLeadsToOneMoreStyle() { preferences.setExternalStyles(List.of()); loader = new JStyleLoader(preferences, layoutPreferences, abbreviationRepository); int beforeAdding = loader.getStyles().size(); - String filename = Path.of(JStyleLoader.class.getResource(JStyleLoader.DEFAULT_AUTHORYEAR_STYLE_PATH).toURI()) - .toFile().getPath(); - loader.addStyleIfValid(filename); - loader.addStyleIfValid(filename); + loader.addStyleIfValid(jStyleFile); + loader.addStyleIfValid(jStyleFile); assertEquals(beforeAdding + 1, loader.getStyles().size()); } diff --git a/src/test/java/org/jabref/logic/openoffice/style/JStyleTest.java b/jablib/src/test/java/org/jabref/logic/openoffice/style/JStyleTest.java similarity index 97% rename from src/test/java/org/jabref/logic/openoffice/style/JStyleTest.java rename to jablib/src/test/java/org/jabref/logic/openoffice/style/JStyleTest.java index 40e82961f3b..27826c49e34 100644 --- a/src/test/java/org/jabref/logic/openoffice/style/JStyleTest.java +++ b/jablib/src/test/java/org/jabref/logic/openoffice/style/JStyleTest.java @@ -1,10 +1,7 @@ package org.jabref.logic.openoffice.style; import java.io.IOException; -import java.net.URISyntaxException; -import java.nio.file.Path; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -53,21 +50,6 @@ void authorYear() throws IOException { assertFalse(style.isSortByPosition()); } - @Test - void authorYearAsFile() throws URISyntaxException, IOException { - Path defFile = Path.of(JStyleTest.class.getResource(JStyleLoader.DEFAULT_AUTHORYEAR_STYLE_PATH).toURI()); - - JStyle style = new JStyle(defFile, layoutFormatterPreferences, abbreviationRepository); - assertTrue(style.isValid()); - assertFalse(style.isInternalStyle()); - assertFalse(style.isCitationKeyCiteMarkers()); - assertFalse(style.isBoldCitations()); - assertFalse(style.isFormatCitations()); - assertFalse(style.isItalicCitations()); - assertFalse(style.isNumberEntries()); - assertFalse(style.isSortByPosition()); - } - @Test void numerical() throws IOException { JStyle style = new JStyle( @@ -83,9 +65,8 @@ void numerical() throws IOException { assertTrue(style.isSortByPosition()); } - /* - * begin helpers - */ + // region: helpers + static String runGetNumCitationMarker2a(JStyle style, List num, int minGroupingCount, boolean inList) { return OOBibStyleTestHelper.runGetNumCitationMarker2a(style, num, minGroupingCount, inList); @@ -155,9 +136,7 @@ static String getCitationMarker2b(JStyle style, pageInfo); } - /* - * end helpers - */ + // endregion @Test void getNumCitationMarker() throws IOException { @@ -275,17 +254,17 @@ void getCitationMarker() throws IOException { assertEquals("[Boström et al., 2006]", getCitationMarker2(style, - Collections.singletonList(entry), entryDBMap, + List.of(entry), entryDBMap, true, null, null, null)); assertEquals("Boström et al. [2006]", getCitationMarker2(style, - Collections.singletonList(entry), entryDBMap, + List.of(entry), entryDBMap, false, null, new Boolean[]{false}, null)); assertEquals("[Boström, Wäyrynen, Bodén, Beznosov & Kruchten, 2006]", getCitationMarker2(style, - Collections.singletonList(entry), entryDBMap, + List.of(entry), entryDBMap, true, null, new Boolean[]{true}, @@ -701,7 +680,7 @@ void compareToNotEqual() throws IOException { } @Test - void emptyStringPropertyAndOxfordComma() throws Exception { + void emptyStringPropertyAndOxfordComma() throws IOException { JStyle style = new JStyle("test.jstyle", layoutFormatterPreferences, abbreviationRepository); Map entryDBMap = new HashMap<>(); List entries = new ArrayList<>(); @@ -721,7 +700,7 @@ void emptyStringPropertyAndOxfordComma() throws Exception { } @Test - void isValidWithDefaultSectionAtTheStart() throws Exception { + void isValidWithDefaultSectionAtTheStart() throws IOException { JStyle style = new JStyle("testWithDefaultAtFirstLIne.jstyle", layoutFormatterPreferences, abbreviationRepository); assertTrue(style.isValid()); } diff --git a/src/test/java/org/jabref/logic/openoffice/style/OOBibStyleTestHelper.java b/jablib/src/test/java/org/jabref/logic/openoffice/style/OOBibStyleTestHelper.java similarity index 100% rename from src/test/java/org/jabref/logic/openoffice/style/OOBibStyleTestHelper.java rename to jablib/src/test/java/org/jabref/logic/openoffice/style/OOBibStyleTestHelper.java diff --git a/src/test/java/org/jabref/logic/openoffice/style/OOPreFormatterTest.java b/jablib/src/test/java/org/jabref/logic/openoffice/style/OOPreFormatterTest.java similarity index 100% rename from src/test/java/org/jabref/logic/openoffice/style/OOPreFormatterTest.java rename to jablib/src/test/java/org/jabref/logic/openoffice/style/OOPreFormatterTest.java diff --git a/src/test/java/org/jabref/logic/pdf/EntryAnnotationImporterTest.java b/jablib/src/test/java/org/jabref/logic/pdf/EntryAnnotationImporterTest.java similarity index 94% rename from src/test/java/org/jabref/logic/pdf/EntryAnnotationImporterTest.java rename to jablib/src/test/java/org/jabref/logic/pdf/EntryAnnotationImporterTest.java index 1859f48729d..978cb9a005d 100644 --- a/src/test/java/org/jabref/logic/pdf/EntryAnnotationImporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/pdf/EntryAnnotationImporterTest.java @@ -1,7 +1,6 @@ package org.jabref.logic.pdf; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.Map; @@ -27,7 +26,7 @@ class EntryAnnotationImporterTest { @BeforeEach void setUp() { entry = new BibEntry(); - when(databaseContext.getFileDirectories(any())).thenReturn(Collections.singletonList(Path.of("src/test/resources/pdfs/"))); + when(databaseContext.getFileDirectories(any())).thenReturn(List.of(Path.of("src/test/resources/pdfs/"))); } @Test diff --git a/src/test/java/org/jabref/logic/pdf/PdfAnnotationImporterTest.java b/jablib/src/test/java/org/jabref/logic/pdf/PdfAnnotationImporterTest.java similarity index 81% rename from src/test/java/org/jabref/logic/pdf/PdfAnnotationImporterTest.java rename to jablib/src/test/java/org/jabref/logic/pdf/PdfAnnotationImporterTest.java index df4d76b4195..ae1f65bf163 100644 --- a/src/test/java/org/jabref/logic/pdf/PdfAnnotationImporterTest.java +++ b/jablib/src/test/java/org/jabref/logic/pdf/PdfAnnotationImporterTest.java @@ -2,7 +2,7 @@ import java.nio.file.Path; import java.time.LocalDateTime; -import java.util.Collections; +import java.util.List; import java.util.Optional; import org.jabref.model.pdf.FileAnnotation; @@ -18,27 +18,27 @@ class PdfAnnotationImporterTest { @Test void invalidPath() { - assertEquals(Collections.emptyList(), importer.importAnnotations(Path.of("/asdf/does/not/exist.pdf"))); + assertEquals(List.of(), importer.importAnnotations(Path.of("/asdf/does/not/exist.pdf"))); } @Test void invalidDirectory() { - assertEquals(Collections.emptyList(), importer.importAnnotations(Path.of("src/test/resources/pdfs"))); + assertEquals(List.of(), importer.importAnnotations(Path.of("src/test/resources/pdfs"))); } @Test void invalidDocumentType() { - assertEquals(Collections.emptyList(), importer.importAnnotations(Path.of("src/test/resources/pdfs/write-protected.docx"))); + assertEquals(List.of(), importer.importAnnotations(Path.of("src/test/resources/pdfs/write-protected.docx"))); } @Test void noAnnotationsWriteProtected() { - assertEquals(Collections.emptyList(), importer.importAnnotations(Path.of("src/test/resources/pdfs/write-protected.pdf"))); + assertEquals(List.of(), importer.importAnnotations(Path.of("src/test/resources/pdfs/write-protected.pdf"))); } @Test void noAnnotationsEncrypted() { - assertEquals(Collections.emptyList(), importer.importAnnotations(Path.of("src/test/resources/pdfs/encrypted.pdf"))); + assertEquals(List.of(), importer.importAnnotations(Path.of("src/test/resources/pdfs/encrypted.pdf"))); } @Test @@ -48,7 +48,7 @@ void twoAnnotationsThesisExample() { @Test void noAnnotationsMinimal() { - assertEquals(Collections.emptyList(), importer.importAnnotations(Path.of("src/test/resources/pdfs/minimal.pdf"))); + assertEquals(List.of(), importer.importAnnotations(Path.of("src/test/resources/pdfs/minimal.pdf"))); } @Test @@ -56,7 +56,7 @@ void inlineNoteMinimal() { final FileAnnotation expected = new FileAnnotation("Linus Dietz", LocalDateTime.of(2017, 3, 12, 20, 25), 1, "inline note annotation", FileAnnotationType.FREETEXT, Optional.empty()); - assertEquals(Collections.singletonList(expected), + assertEquals(List.of(expected), importer.importAnnotations(Path.of("src/test/resources/pdfs/minimal-inlinenote.pdf"))); } @@ -65,7 +65,7 @@ void popupNoteMinimal() { final FileAnnotation expected = new FileAnnotation("Linus Dietz", LocalDateTime.of(2017, 3, 12, 20, 17, 24), 1, "A simple pop-up note", FileAnnotationType.TEXT, Optional.empty()); - assertEquals(Collections.singletonList(expected), + assertEquals(List.of(expected), importer.importAnnotations(Path.of("src/test/resources/pdfs/minimal-popup.pdf"))); } @@ -75,7 +75,7 @@ void highlightMinimalFoxit() { "this is a foxit highlight", FileAnnotationType.HIGHLIGHT, Optional.empty()); final FileAnnotation expected = new FileAnnotation("lynyus", LocalDateTime.of(2017, 5, 31, 15, 16, 1), 1, "Hello", FileAnnotationType.HIGHLIGHT, Optional.of(expectedLinkedAnnotation)); - assertEquals(Collections.singletonList(expected), + assertEquals(List.of(expected), importer.importAnnotations(Path.of("src/test/resources/pdfs/minimal-foxithighlight.pdf"))); } @@ -86,7 +86,7 @@ void highlightNoNoteMinimal() { final FileAnnotation expected = new FileAnnotation("Linus Dietz", LocalDateTime.of(2017, 3, 12, 20, 28, 39), 1, "World", FileAnnotationType.HIGHLIGHT, Optional.of(expectedLinkedAnnotation)); - assertEquals(Collections.singletonList(expected), + assertEquals(List.of(expected), importer.importAnnotations(Path.of("src/test/resources/pdfs/minimal-highlight-no-note.pdf"))); } @@ -97,7 +97,7 @@ void squigglyWithNoteMinimal() { final FileAnnotation expected = new FileAnnotation("lynyus", LocalDateTime.of(2017, 6, 1, 2, 40, 25), 1, "ello", FileAnnotationType.SQUIGGLY, Optional.of(expectedLinkedAnnotation)); - assertEquals(Collections.singletonList(expected), + assertEquals(List.of(expected), importer.importAnnotations(Path.of("src/test/resources/pdfs/minimal-squiggly.pdf"))); } @@ -108,7 +108,7 @@ void strikeoutWithNoteMinimal() { final FileAnnotation expected = new FileAnnotation("lynyus", LocalDateTime.of(2017, 6, 1, 13, 2, 3), 1, "World", FileAnnotationType.STRIKEOUT, Optional.of(expectedLinkedAnnotation)); - assertEquals(Collections.singletonList(expected), + assertEquals(List.of(expected), importer.importAnnotations(Path.of("src/test/resources/pdfs/minimal-strikeout.pdf"))); } @@ -119,7 +119,7 @@ void highlightWithNoteMinimal() { final FileAnnotation expected = new FileAnnotation("Linus Dietz", LocalDateTime.of(2017, 3, 12, 20, 32, 2), 1, "World", FileAnnotationType.HIGHLIGHT, Optional.of(expectedLinkedAnnotation)); - assertEquals(Collections.singletonList(expected), + assertEquals(List.of(expected), importer.importAnnotations(Path.of("src/test/resources/pdfs/minimal-highlight-with-note.pdf"))); } @@ -130,7 +130,7 @@ void underlineWithNoteMinimal() { final FileAnnotation expected = new FileAnnotation("Linus Dietz", LocalDateTime.of(2017, 3, 12, 20, 36, 9), 1, "Hello", FileAnnotationType.UNDERLINE, Optional.of(expectedLinkedAnnotation)); - assertEquals(Collections.singletonList(expected), + assertEquals(List.of(expected), importer.importAnnotations(Path.of("src/test/resources/pdfs/minimal-underline.pdf"))); } @@ -139,7 +139,7 @@ void polygonNoNoteMinimal() { final FileAnnotation expected = new FileAnnotation("Linus Dietz", LocalDateTime.of(2017, 3, 16, 9, 21, 1), 1, "polygon annotation", FileAnnotationType.POLYGON, Optional.empty()); - assertEquals(Collections.singletonList(expected), + assertEquals(List.of(expected), importer.importAnnotations(Path.of("src/test/resources/pdfs/minimal-polygon.pdf"))); } } diff --git a/src/test/java/org/jabref/logic/preferences/JabRefGuiPreferencesTest.java b/jablib/src/test/java/org/jabref/logic/preferences/JabRefGuiPreferencesTest.java similarity index 100% rename from src/test/java/org/jabref/logic/preferences/JabRefGuiPreferencesTest.java rename to jablib/src/test/java/org/jabref/logic/preferences/JabRefGuiPreferencesTest.java diff --git a/src/test/java/org/jabref/logic/protectedterms/ProtectedTermsListTest.java b/jablib/src/test/java/org/jabref/logic/protectedterms/ProtectedTermsListTest.java similarity index 100% rename from src/test/java/org/jabref/logic/protectedterms/ProtectedTermsListTest.java rename to jablib/src/test/java/org/jabref/logic/protectedterms/ProtectedTermsListTest.java diff --git a/src/test/java/org/jabref/logic/protectedterms/ProtectedTermsLoaderTest.java b/jablib/src/test/java/org/jabref/logic/protectedterms/ProtectedTermsLoaderTest.java similarity index 83% rename from src/test/java/org/jabref/logic/protectedterms/ProtectedTermsLoaderTest.java rename to jablib/src/test/java/org/jabref/logic/protectedterms/ProtectedTermsLoaderTest.java index b3fdacd0dd7..bbf0bc8f18c 100644 --- a/src/test/java/org/jabref/logic/protectedterms/ProtectedTermsLoaderTest.java +++ b/jablib/src/test/java/org/jabref/logic/protectedterms/ProtectedTermsLoaderTest.java @@ -3,7 +3,6 @@ import java.net.URISyntaxException; import java.nio.file.Path; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import org.jabref.logic.l10n.Localization; @@ -23,7 +22,7 @@ class ProtectedTermsLoaderTest { @BeforeEach void setUp() { loader = new ProtectedTermsLoader(new ProtectedTermsPreferences(ProtectedTermsLoader.getInternalLists(), - Collections.emptyList(), Collections.emptyList(), Collections.emptyList())); + List.of(), List.of(), List.of())); } @Test @@ -100,20 +99,20 @@ void readProtectedTermsListFromFileNoDescriptionGivesDefaultDescription() @Test void newListsAreIncluded() { ProtectedTermsLoader localLoader = new ProtectedTermsLoader(new ProtectedTermsPreferences( - Collections.emptyList(), - Collections.emptyList(), - Collections.emptyList(), - Collections.emptyList())); + List.of(), + List.of(), + List.of(), + List.of())); assertEquals(ProtectedTermsLoader.getInternalLists().size(), localLoader.getProtectedTermsLists().size()); } @Test void newListsAreEnabled() { ProtectedTermsLoader localLoader = new ProtectedTermsLoader(new ProtectedTermsPreferences( - Collections.emptyList(), - Collections.emptyList(), - Collections.emptyList(), - Collections.emptyList())); + List.of(), + List.of(), + List.of(), + List.of())); for (ProtectedTermsList list : localLoader.getProtectedTermsLists()) { assertTrue(list.isEnabled()); } @@ -122,10 +121,10 @@ void newListsAreEnabled() { @Test void initalizedAllInternalDisabled() { ProtectedTermsLoader localLoader = new ProtectedTermsLoader(new ProtectedTermsPreferences( - Collections.emptyList(), - Collections.emptyList(), + List.of(), + List.of(), ProtectedTermsLoader.getInternalLists(), - Collections.emptyList())); + List.of())); for (ProtectedTermsList list : localLoader.getProtectedTermsLists()) { assertFalse(list.isEnabled()); } @@ -135,20 +134,20 @@ void initalizedAllInternalDisabled() { void unknownExternalFileWillNotLoad() { ProtectedTermsLoader localLoader = new ProtectedTermsLoader(new ProtectedTermsPreferences( ProtectedTermsLoader.getInternalLists(), - Collections.singletonList("someUnlikelyNameThatNeverWillExist"), - Collections.emptyList(), - Collections.emptyList())); + List.of("someUnlikelyNameThatNeverWillExist"), + List.of(), + List.of())); assertEquals(ProtectedTermsLoader.getInternalLists().size(), localLoader.getProtectedTermsLists().size()); } @Test void allDisabledNoWords() { ProtectedTermsLoader localLoader = new ProtectedTermsLoader(new ProtectedTermsPreferences( - Collections.emptyList(), - Collections.emptyList(), + List.of(), + List.of(), ProtectedTermsLoader.getInternalLists(), - Collections.emptyList())); - assertEquals(Collections.emptyList(), localLoader.getProtectedTerms()); + List.of())); + assertEquals(List.of(), localLoader.getProtectedTerms()); } @Test @@ -156,19 +155,19 @@ void doNotLoadTheSameInternalListTwice() { ProtectedTermsLoader localLoader = new ProtectedTermsLoader( new ProtectedTermsPreferences( ProtectedTermsLoader.getInternalLists(), - Collections.emptyList(), + List.of(), ProtectedTermsLoader.getInternalLists(), - Collections.emptyList())); + List.of())); assertEquals(ProtectedTermsLoader.getInternalLists().size(), localLoader.getProtectedTermsLists().size()); } @Test void addNewTermListAddsList(@TempDir Path tempDir) { ProtectedTermsLoader localLoader = new ProtectedTermsLoader(new ProtectedTermsPreferences( - Collections.emptyList(), - Collections.emptyList(), + List.of(), + List.of(), ProtectedTermsLoader.getInternalLists(), - Collections.emptyList())); + List.of())); localLoader.addNewProtectedTermsList("My new list", tempDir.resolve("MyNewList.terms").toAbsolutePath().toString()); assertEquals(ProtectedTermsLoader.getInternalLists().size() + 1, localLoader.getProtectedTermsLists().size()); } @@ -177,10 +176,10 @@ void addNewTermListAddsList(@TempDir Path tempDir) { void addNewTermListNewListInList(@TempDir Path tempDir) { ProtectedTermsLoader localLoader = new ProtectedTermsLoader( new ProtectedTermsPreferences( - Collections.emptyList(), - Collections.emptyList(), + List.of(), + List.of(), ProtectedTermsLoader.getInternalLists(), - Collections.emptyList())); + List.of())); ProtectedTermsList newList = localLoader.addNewProtectedTermsList("My new list", tempDir.resolve("MyNewList.terms") .toAbsolutePath() .toString()); @@ -191,10 +190,10 @@ void addNewTermListNewListInList(@TempDir Path tempDir) { void removeTermList(@TempDir Path tempDir) { ProtectedTermsLoader localLoader = new ProtectedTermsLoader( new ProtectedTermsPreferences( - Collections.emptyList(), - Collections.emptyList(), + List.of(), + List.of(), ProtectedTermsLoader.getInternalLists(), - Collections.emptyList())); + List.of())); ProtectedTermsList newList = localLoader.addNewProtectedTermsList("My new list", tempDir.resolve("MyNewList.terms").toAbsolutePath().toString()); assertTrue(localLoader.removeProtectedTermsList(newList)); } @@ -202,10 +201,10 @@ void removeTermList(@TempDir Path tempDir) { @Test void removeTermListReduceTheCount(@TempDir Path tempDir) { ProtectedTermsLoader localLoader = new ProtectedTermsLoader(new ProtectedTermsPreferences( - Collections.emptyList(), - Collections.emptyList(), + List.of(), + List.of(), ProtectedTermsLoader.getInternalLists(), - Collections.emptyList())); + List.of())); ProtectedTermsList newList = localLoader.addNewProtectedTermsList("My new list", tempDir.resolve("MyNewList.terms").toAbsolutePath().toString()); localLoader.removeProtectedTermsList(newList); assertEquals(ProtectedTermsLoader.getInternalLists().size(), localLoader.getProtectedTermsLists().size()); @@ -214,10 +213,10 @@ void removeTermListReduceTheCount(@TempDir Path tempDir) { @Test void addNewTermListSetsCorrectDescription(@TempDir Path tempDir) { ProtectedTermsLoader localLoader = new ProtectedTermsLoader(new ProtectedTermsPreferences( - Collections.emptyList(), - Collections.emptyList(), + List.of(), + List.of(), ProtectedTermsLoader.getInternalLists(), - Collections.emptyList())); + List.of())); ProtectedTermsList newList = localLoader.addNewProtectedTermsList("My new list", tempDir.resolve("MyNewList.terms").toAbsolutePath().toString()); assertEquals("My new list", newList.getDescription()); } diff --git a/src/test/java/org/jabref/logic/pseudonymization/PseudonymizationTest.java b/jablib/src/test/java/org/jabref/logic/pseudonymization/PseudonymizationTest.java similarity index 94% rename from src/test/java/org/jabref/logic/pseudonymization/PseudonymizationTest.java rename to jablib/src/test/java/org/jabref/logic/pseudonymization/PseudonymizationTest.java index 0f2fb51decf..9a70905f1f3 100644 --- a/src/test/java/org/jabref/logic/pseudonymization/PseudonymizationTest.java +++ b/jablib/src/test/java/org/jabref/logic/pseudonymization/PseudonymizationTest.java @@ -1,9 +1,10 @@ package org.jabref.logic.pseudonymization; +import java.io.IOException; import java.io.StringWriter; +import java.net.URISyntaxException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.Map; @@ -52,7 +53,7 @@ void setUp() { stringWriter = new StringWriter(); bibWriter = new BibWriter(stringWriter, "\n"); saveConfiguration = new SelfContainedSaveConfiguration(SaveOrder.getDefaultSaveOrder(), false, BibDatabaseWriter.SaveType.WITH_JABREF_META_DATA, false); - fieldPreferences = new FieldPreferences(true, Collections.emptyList(), Collections.emptyList()); + fieldPreferences = new FieldPreferences(true, List.of(), List.of()); citationKeyPatternPreferences = mock(CitationKeyPatternPreferences.class, Answers.RETURNS_DEEP_STUBS); entryTypesManager = new BibEntryTypesManager(); @@ -65,7 +66,7 @@ void setUp() { } @Test - void pseudonymizeTwoEntries() throws Exception { + void pseudonymizeTwoEntries() { BibEntry first = new BibEntry("first") .withField(StandardField.AUTHOR, "Author One") .withField(StandardField.PAGES, "some pages"); @@ -94,7 +95,7 @@ void pseudonymizeTwoEntries() throws Exception { } @Test - void pseudonymizeLibrary() throws Exception { + void pseudonymizeLibrary() throws URISyntaxException, IOException { Path path = Path.of(PseudonymizationTest.class.getResource("Chocolate.bib").toURI()); BibDatabaseContext databaseContext = importer.importDatabase(path).getDatabaseContext(); @@ -110,7 +111,7 @@ void pseudonymizeLibrary() throws Exception { * This test can be used to anonymize a library. */ @Test - void pseudonymizeLibraryFile(@TempDir Path tempDir) throws Exception { + void pseudonymizeLibraryFile(@TempDir Path tempDir) throws URISyntaxException, IOException { // modify path to the file to be anonymized Path path = Path.of(PseudonymizationTest.class.getResource("Chocolate.bib").toURI()); // modify target to the files to be created diff --git a/src/test/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultCsvWriterTest.java b/jablib/src/test/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultCsvWriterTest.java similarity index 96% rename from src/test/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultCsvWriterTest.java rename to jablib/src/test/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultCsvWriterTest.java index 204f5c3e0dd..20304e8170e 100644 --- a/src/test/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultCsvWriterTest.java +++ b/jablib/src/test/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultCsvWriterTest.java @@ -1,5 +1,6 @@ package org.jabref.logic.quality.consistency; +import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Writer; import java.nio.file.Files; @@ -28,7 +29,7 @@ class BibliographyConsistencyCheckResultCsvWriterTest { private BibtexImporter importer = new BibtexImporter(mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS), new DummyFileUpdateMonitor()); @Test - void checkSimpleLibrary(@TempDir Path tempDir) throws Exception { + void checkSimpleLibrary(@TempDir Path tempDir) throws IOException { BibEntry first = new BibEntry(StandardEntryType.Article, "first") .withField(StandardField.AUTHOR, "Author One") .withField(StandardField.PAGES, "some pages"); @@ -50,7 +51,7 @@ void checkSimpleLibrary(@TempDir Path tempDir) throws Exception { } @Test - void checkDifferentOutputSymbols(@TempDir Path tempDir) throws Exception { + void checkDifferentOutputSymbols(@TempDir Path tempDir) throws IOException { UnknownField customField = new UnknownField("custom"); BibEntry first = new BibEntry(StandardEntryType.Article, "first") .withField(StandardField.AUTHOR, "Author One") // required @@ -73,7 +74,7 @@ void checkDifferentOutputSymbols(@TempDir Path tempDir) throws Exception { } @Test - void checkComplexLibrary(@TempDir Path tempDir) throws Exception { + void checkComplexLibrary(@TempDir Path tempDir) throws IOException { BibEntry first = new BibEntry(StandardEntryType.Article, "first") .withField(StandardField.AUTHOR, "Author One") .withField(StandardField.PAGES, "some pages"); @@ -111,7 +112,7 @@ void checkComplexLibrary(@TempDir Path tempDir) throws Exception { } @Test - void checkLibraryWithoutIssues(@TempDir Path tempDir) throws Exception { + void checkLibraryWithoutIssues(@TempDir Path tempDir) throws IOException { BibEntry first = new BibEntry(StandardEntryType.Article, "first") .withField(StandardField.AUTHOR, "Author One") .withField(StandardField.PAGES, "some pages"); @@ -132,7 +133,7 @@ void checkLibraryWithoutIssues(@TempDir Path tempDir) throws Exception { @Test @Disabled("This test is only for manual generation of a report") - void checkManualInput() throws Exception { + void checkManualInput() throws IOException { Path file = Path.of("C:\\TEMP\\JabRef\\biblio-anon.bib"); Path csvFile = file.resolveSibling("biblio-cited.csv"); BibDatabaseContext databaseContext = importer.importDatabase(file).getDatabaseContext(); diff --git a/src/test/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultTxtWriterTest.java b/jablib/src/test/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultTxtWriterTest.java similarity index 97% rename from src/test/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultTxtWriterTest.java rename to jablib/src/test/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultTxtWriterTest.java index 07f8daeeca5..596ba6cc47e 100644 --- a/src/test/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultTxtWriterTest.java +++ b/jablib/src/test/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultTxtWriterTest.java @@ -1,5 +1,6 @@ package org.jabref.logic.quality.consistency; +import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Writer; import java.nio.file.Files; @@ -27,7 +28,7 @@ class BibliographyConsistencyCheckResultTxtWriterTest { private BibtexImporter importer = new BibtexImporter(mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS), new DummyFileUpdateMonitor()); @Test - void checkSimpleLibrary(@TempDir Path tempDir) throws Exception { + void checkSimpleLibrary(@TempDir Path tempDir) throws IOException { BibEntry first = new BibEntry(StandardEntryType.Article, "first") .withField(StandardField.AUTHOR, "Author One") .withField(StandardField.PAGES, "some pages"); @@ -57,7 +58,7 @@ void checkSimpleLibrary(@TempDir Path tempDir) throws Exception { } @Test - void checkDifferentOutputSymbols(@TempDir Path tempDir) throws Exception { + void checkDifferentOutputSymbols(@TempDir Path tempDir) throws IOException { UnknownField customField = new UnknownField("custom"); BibEntry first = new BibEntry(StandardEntryType.Article, "first") .withField(StandardField.AUTHOR, "Author One") // required @@ -88,7 +89,7 @@ void checkDifferentOutputSymbols(@TempDir Path tempDir) throws Exception { } @Test - void checkComplexLibrary(@TempDir Path tempDir) throws Exception { + void checkComplexLibrary(@TempDir Path tempDir) throws IOException { BibEntry first = new BibEntry(StandardEntryType.Article, "first") .withField(StandardField.AUTHOR, "Author One") .withField(StandardField.PAGES, "some pages"); @@ -134,7 +135,7 @@ void checkComplexLibrary(@TempDir Path tempDir) throws Exception { } @Test - void checkLibraryWithoutIssuesWithOutPorcelain(@TempDir Path tempDir) throws Exception { + void checkLibraryWithoutIssuesWithOutPorcelain(@TempDir Path tempDir) throws IOException { BibEntry first = new BibEntry(StandardEntryType.Article, "first") .withField(StandardField.AUTHOR, "Author One") .withField(StandardField.PAGES, "some pages"); @@ -156,7 +157,7 @@ void checkLibraryWithoutIssuesWithOutPorcelain(@TempDir Path tempDir) throws Exc } @Test - void checkLibraryWithoutIssuesWithPorcelain(@TempDir Path tempDir) throws Exception { + void checkLibraryWithoutIssuesWithPorcelain(@TempDir Path tempDir) throws IOException { BibEntry first = new BibEntry(StandardEntryType.Article, "first") .withField(StandardField.AUTHOR, "Author One") .withField(StandardField.PAGES, "some pages"); @@ -175,7 +176,7 @@ void checkLibraryWithoutIssuesWithPorcelain(@TempDir Path tempDir) throws Except @Test @Disabled("This test is only for manual generation of a report") - void checkManualInput() throws Exception { + void checkManualInput() throws IOException { Path file = Path.of("C:\\TEMP\\JabRef\\biblio-anon.bib"); Path txtFile = file.resolveSibling("biblio-cited.txt"); BibDatabaseContext databaseContext = importer.importDatabase(file).getDatabaseContext(); diff --git a/src/test/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckTest.java b/jablib/src/test/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckTest.java similarity index 95% rename from src/test/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckTest.java rename to jablib/src/test/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckTest.java index d20e45216d3..244ded5cf60 100644 --- a/src/test/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckTest.java +++ b/jablib/src/test/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckTest.java @@ -25,7 +25,7 @@ class BibliographyConsistencyCheckTest { private BibtexImporter importer = new BibtexImporter(mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS), new DummyFileUpdateMonitor()); @Test - void checkSimpleLibrary(@TempDir Path tempDir) throws Exception { + void checkSimpleLibrary(@TempDir Path tempDir) { BibEntry first = new BibEntry(StandardEntryType.Article, "first") .withField(StandardField.AUTHOR, "Author One") .withField(StandardField.PAGES, "some pages"); @@ -40,7 +40,7 @@ void checkSimpleLibrary(@TempDir Path tempDir) throws Exception { } @Test - void checkDifferentOutputSymbols(@TempDir Path tempDir) throws Exception { + void checkDifferentOutputSymbols(@TempDir Path tempDir) { UnknownField customField = new UnknownField("custom"); BibEntry first = new BibEntry(StandardEntryType.Article, "first") .withField(StandardField.AUTHOR, "Author One") // required @@ -57,7 +57,7 @@ void checkDifferentOutputSymbols(@TempDir Path tempDir) throws Exception { } @Test - void checkComplexLibrary(@TempDir Path tempDir) throws Exception { + void checkComplexLibrary(@TempDir Path tempDir) { BibEntry first = new BibEntry(StandardEntryType.Article, "first") .withField(StandardField.AUTHOR, "Author One") .withField(StandardField.PAGES, "some pages"); @@ -90,7 +90,7 @@ void checkComplexLibrary(@TempDir Path tempDir) throws Exception { } @Test - void checkLibraryWithoutIssues(@TempDir Path tempDir) throws Exception { + void checkLibraryWithoutIssues(@TempDir Path tempDir) { BibEntry first = new BibEntry(StandardEntryType.Article, "first") .withField(StandardField.AUTHOR, "Author One") .withField(StandardField.PAGES, "some pages"); diff --git a/src/test/java/org/jabref/logic/remote/RemoteCommunicationTest.java b/jablib/src/test/java/org/jabref/logic/remote/RemoteCommunicationTest.java similarity index 100% rename from src/test/java/org/jabref/logic/remote/RemoteCommunicationTest.java rename to jablib/src/test/java/org/jabref/logic/remote/RemoteCommunicationTest.java diff --git a/src/test/java/org/jabref/logic/remote/RemoteGuiPreferencesTest.java b/jablib/src/test/java/org/jabref/logic/remote/RemoteGuiPreferencesTest.java similarity index 100% rename from src/test/java/org/jabref/logic/remote/RemoteGuiPreferencesTest.java rename to jablib/src/test/java/org/jabref/logic/remote/RemoteGuiPreferencesTest.java diff --git a/src/test/java/org/jabref/logic/remote/RemoteSetupTest.java b/jablib/src/test/java/org/jabref/logic/remote/RemoteSetupTest.java similarity index 100% rename from src/test/java/org/jabref/logic/remote/RemoteSetupTest.java rename to jablib/src/test/java/org/jabref/logic/remote/RemoteSetupTest.java diff --git a/src/test/java/org/jabref/logic/remote/RemoteUtilTest.java b/jablib/src/test/java/org/jabref/logic/remote/RemoteUtilTest.java similarity index 100% rename from src/test/java/org/jabref/logic/remote/RemoteUtilTest.java rename to jablib/src/test/java/org/jabref/logic/remote/RemoteUtilTest.java diff --git a/src/test/java/org/jabref/logic/search/DatabaseSearcherTest.java b/jablib/src/test/java/org/jabref/logic/search/DatabaseSearcherTest.java similarity index 93% rename from src/test/java/org/jabref/logic/search/DatabaseSearcherTest.java rename to jablib/src/test/java/org/jabref/logic/search/DatabaseSearcherTest.java index a6a57396d76..b43dec53d6a 100644 --- a/src/test/java/org/jabref/logic/search/DatabaseSearcherTest.java +++ b/jablib/src/test/java/org/jabref/logic/search/DatabaseSearcherTest.java @@ -18,6 +18,7 @@ import org.jabref.model.entry.types.StandardEntryType; import org.jabref.model.search.query.SearchQuery; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.io.TempDir; import org.junit.jupiter.params.ParameterizedTest; @@ -35,6 +36,8 @@ public class DatabaseSearcherTest { private final CliPreferences preferences = mock(CliPreferences.class); private final FilePreferences filePreferences = mock(FilePreferences.class); private final BibEntryPreferences bibEntryPreferences = mock(BibEntryPreferences.class); + private PostgreServer postgreServer; + @TempDir private Path indexDir; @@ -49,6 +52,13 @@ void setUp() { when(filePreferences.fulltextIndexLinkedFilesProperty()).thenReturn(mock(BooleanProperty.class)); databaseContext = spy(new BibDatabaseContext()); when(databaseContext.getFulltextIndexPath()).thenReturn(indexDir); + + postgreServer = new PostgreServer(); + } + + @AfterEach + void tearDown() { + postgreServer.shutdown(); } @ParameterizedTest @@ -57,7 +67,7 @@ void databaseSearcher(List expectedMatches, SearchQuery query, List matches = new DatabaseSearcher(query, databaseContext, TASK_EXECUTOR, preferences).getMatches(); + List matches = new DatabaseSearcher(query, databaseContext, TASK_EXECUTOR, preferences, postgreServer).getMatches(); assertEquals(expectedMatches, matches); } diff --git a/src/test/java/org/jabref/logic/search/DatabaseSearcherWithBibFilesTest.java b/jablib/src/test/java/org/jabref/logic/search/DatabaseSearcherWithBibFilesTest.java similarity index 93% rename from src/test/java/org/jabref/logic/search/DatabaseSearcherWithBibFilesTest.java rename to jablib/src/test/java/org/jabref/logic/search/DatabaseSearcherWithBibFilesTest.java index 3fe3a3edfdd..86208137876 100644 --- a/src/test/java/org/jabref/logic/search/DatabaseSearcherWithBibFilesTest.java +++ b/jablib/src/test/java/org/jabref/logic/search/DatabaseSearcherWithBibFilesTest.java @@ -1,5 +1,7 @@ package org.jabref.logic.search; +import java.io.IOException; +import java.net.URISyntaxException; import java.nio.file.Path; import java.util.EnumSet; import java.util.List; @@ -27,6 +29,8 @@ import org.jabref.model.util.DummyFileUpdateMonitor; import org.hamcrest.Matchers; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.io.TempDir; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; @@ -38,6 +42,7 @@ import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; +/// Note: Postgres is `new`ed at each test - maybe put it tgo `@BeforeAll` class DatabaseSearcherWithBibFilesTest { private static final TaskExecutor TASK_EXECUTOR = new CurrentThreadTaskExecutor(); private static final BibEntry TITLE_SENTENCE_CASED = new BibEntry(StandardEntryType.Misc) @@ -73,14 +78,26 @@ class DatabaseSearcherWithBibFilesTest { private final FilePreferences filePreferences = mock(FilePreferences.class); private final BibEntryPreferences bibEntryPreferences = mock(BibEntryPreferences.class); + private PostgreServer postgreServer; + @TempDir private Path indexDir; - private BibDatabaseContext initializeDatabaseFromPath(String testFile) throws Exception { + @BeforeEach + void setUp() { + postgreServer = new PostgreServer(); + } + + @AfterEach + void tearDown() { + postgreServer.shutdown(); + } + + private BibDatabaseContext initializeDatabaseFromPath(String testFile) throws URISyntaxException, IOException { return initializeDatabaseFromPath(Path.of(Objects.requireNonNull(DatabaseSearcherWithBibFilesTest.class.getResource(testFile)).toURI())); } - private BibDatabaseContext initializeDatabaseFromPath(Path testFile) throws Exception { + private BibDatabaseContext initializeDatabaseFromPath(Path testFile) throws IOException { ParserResult result = new BibtexImporter(mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS), new DummyFileUpdateMonitor()).importDatabase(testFile); BibDatabaseContext databaseContext = spy(result.getDatabaseContext()); @@ -131,10 +148,10 @@ private static Stream searchLibrary() { @ParameterizedTest @MethodSource - void searchLibrary(List expected, String testFile, String query, boolean isFullText) throws Exception { + void searchLibrary(List expected, String testFile, String query, boolean isFullText) throws URISyntaxException, IOException { BibDatabaseContext databaseContext = initializeDatabaseFromPath(testFile); EnumSet flags = isFullText ? EnumSet.of(SearchFlags.FULLTEXT) : EnumSet.noneOf(SearchFlags.class); - List matches = new DatabaseSearcher(new SearchQuery(query, flags), databaseContext, TASK_EXECUTOR, preferences).getMatches(); + List matches = new DatabaseSearcher(new SearchQuery(query, flags), databaseContext, TASK_EXECUTOR, preferences, postgreServer).getMatches(); assertThat(expected, Matchers.containsInAnyOrder(matches.toArray())); } } diff --git a/src/test/java/org/jabref/logic/search/indexing/DocumentReaderTest.java b/jablib/src/test/java/org/jabref/logic/search/indexing/DocumentReaderTest.java similarity index 100% rename from src/test/java/org/jabref/logic/search/indexing/DocumentReaderTest.java rename to jablib/src/test/java/org/jabref/logic/search/indexing/DocumentReaderTest.java diff --git a/src/test/java/org/jabref/logic/search/indexing/LinkedFilesIndexerTest.java b/jablib/src/test/java/org/jabref/logic/search/indexing/LinkedFilesIndexerTest.java similarity index 82% rename from src/test/java/org/jabref/logic/search/indexing/LinkedFilesIndexerTest.java rename to jablib/src/test/java/org/jabref/logic/search/indexing/LinkedFilesIndexerTest.java index 220f53d4bf3..73e9679f054 100644 --- a/src/test/java/org/jabref/logic/search/indexing/LinkedFilesIndexerTest.java +++ b/jablib/src/test/java/org/jabref/logic/search/indexing/LinkedFilesIndexerTest.java @@ -2,7 +2,6 @@ import java.io.IOException; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import java.util.Optional; @@ -39,7 +38,7 @@ void setUp(@TempDir Path indexDir) throws IOException { BibDatabaseContext context = mock(BibDatabaseContext.class); when(context.getDatabasePath()).thenReturn(Optional.of(Path.of("src/test/resources/pdfs/"))); - when(context.getFileDirectories(Mockito.any())).thenReturn(Collections.singletonList(Path.of("src/test/resources/pdfs"))); + when(context.getFileDirectories(Mockito.any())).thenReturn(List.of(Path.of("src/test/resources/pdfs"))); when(context.getFulltextIndexPath()).thenReturn(indexDir); this.indexer = new DefaultLinkedFilesIndexer(context, filePreferences); @@ -49,7 +48,7 @@ void setUp(@TempDir Path indexDir) throws IOException { void exampleThesisIndex() throws IOException { // given BibEntry entry = new BibEntry(StandardEntryType.PhdThesis); - entry.setFiles(Collections.singletonList(new LinkedFile("Example Thesis", "thesis-example.pdf", StandardFileType.PDF.getName()))); + entry.setFiles(List.of(new LinkedFile("Example Thesis", "thesis-example.pdf", StandardFileType.PDF.getName()))); // when indexer.addToIndex(List.of(entry), mock(BackgroundTask.class)); @@ -65,7 +64,7 @@ void exampleThesisIndex() throws IOException { void dontIndexNonPdf() throws IOException { // given BibEntry entry = new BibEntry(StandardEntryType.PhdThesis); - entry.setFiles(Collections.singletonList(new LinkedFile("Example Thesis", "thesis-example.pdf", StandardFileType.AUX.getName()))); + entry.setFiles(List.of(new LinkedFile("Example Thesis", "thesis-example.pdf", StandardFileType.AUX.getName()))); // when indexer.addToIndex(List.of(entry), mock(BackgroundTask.class)); @@ -81,7 +80,7 @@ void dontIndexNonPdf() throws IOException { void dontIndexOnlineLinks() throws IOException { // given BibEntry entry = new BibEntry(StandardEntryType.PhdThesis); - entry.setFiles(Collections.singletonList(new LinkedFile("Example Thesis", "https://raw.githubusercontent.com/JabRef/jabref/main/src/test/resources/pdfs/thesis-example.pdf", StandardFileType.PDF.getName()))); + entry.setFiles(List.of(new LinkedFile("Example Thesis", "https://raw.githubusercontent.com/JabRef/jabref/main/src/test/resources/pdfs/thesis-example.pdf", StandardFileType.PDF.getName()))); // when indexer.addToIndex(List.of(entry), mock(BackgroundTask.class)); @@ -98,7 +97,7 @@ void exampleThesisIndexWithKey() throws IOException { // given BibEntry entry = new BibEntry(StandardEntryType.PhdThesis); entry.setCitationKey("Example2017"); - entry.setFiles(Collections.singletonList(new LinkedFile("Example Thesis", "thesis-example.pdf", StandardFileType.PDF.getName()))); + entry.setFiles(List.of(new LinkedFile("Example Thesis", "thesis-example.pdf", StandardFileType.PDF.getName()))); // when indexer.addToIndex(List.of(entry), mock(BackgroundTask.class)); @@ -114,7 +113,7 @@ void exampleThesisIndexWithKey() throws IOException { void metaDataIndex() throws IOException { // given BibEntry entry = new BibEntry(StandardEntryType.Article); - entry.setFiles(Collections.singletonList(new LinkedFile("Example Thesis", "metaData.pdf", StandardFileType.PDF.getName()))); + entry.setFiles(List.of(new LinkedFile("Example Thesis", "metaData.pdf", StandardFileType.PDF.getName()))); // when indexer.addToIndex(List.of(entry), mock(BackgroundTask.class)); @@ -131,7 +130,7 @@ void exampleThesisIndexAppendMetaData() throws IOException { // given BibEntry exampleThesis = new BibEntry(StandardEntryType.PhdThesis); exampleThesis.setCitationKey("ExampleThesis2017"); - exampleThesis.setFiles(Collections.singletonList(new LinkedFile("Example Thesis", "thesis-example.pdf", StandardFileType.PDF.getName()))); + exampleThesis.setFiles(List.of(new LinkedFile("Example Thesis", "thesis-example.pdf", StandardFileType.PDF.getName()))); // when indexer.addToIndex(List.of(exampleThesis), mock(BackgroundTask.class)); @@ -144,7 +143,7 @@ void exampleThesisIndexAppendMetaData() throws IOException { BibEntry metadata = new BibEntry(StandardEntryType.Article); metadata.setCitationKey("MetaData2017"); - metadata.setFiles(Collections.singletonList(new LinkedFile("Metadata file", "metaData.pdf", StandardFileType.PDF.getName()))); + metadata.setFiles(List.of(new LinkedFile("Metadata file", "metaData.pdf", StandardFileType.PDF.getName()))); // when indexer.addToIndex(List.of(metadata), mock(BackgroundTask.class)); @@ -161,7 +160,7 @@ public void flushIndex() throws IOException { // given BibEntry entry = new BibEntry(StandardEntryType.PhdThesis); entry.setCitationKey("Example2017"); - entry.setFiles(Collections.singletonList(new LinkedFile("Example Thesis", "thesis-example.pdf", StandardFileType.PDF.getName()))); + entry.setFiles(List.of(new LinkedFile("Example Thesis", "thesis-example.pdf", StandardFileType.PDF.getName()))); indexer.addToIndex(List.of(entry), mock(BackgroundTask.class)); diff --git a/src/test/java/org/jabref/logic/search/query/SearchQueryExtractorConversionTest.java b/jablib/src/test/java/org/jabref/logic/search/query/SearchQueryExtractorConversionTest.java similarity index 100% rename from src/test/java/org/jabref/logic/search/query/SearchQueryExtractorConversionTest.java rename to jablib/src/test/java/org/jabref/logic/search/query/SearchQueryExtractorConversionTest.java diff --git a/src/test/java/org/jabref/logic/search/query/SearchQueryFlagsConversionTest.java b/jablib/src/test/java/org/jabref/logic/search/query/SearchQueryFlagsConversionTest.java similarity index 100% rename from src/test/java/org/jabref/logic/search/query/SearchQueryFlagsConversionTest.java rename to jablib/src/test/java/org/jabref/logic/search/query/SearchQueryFlagsConversionTest.java diff --git a/src/test/java/org/jabref/logic/search/query/SearchQueryLuceneConversionTest.java b/jablib/src/test/java/org/jabref/logic/search/query/SearchQueryLuceneConversionTest.java similarity index 100% rename from src/test/java/org/jabref/logic/search/query/SearchQueryLuceneConversionTest.java rename to jablib/src/test/java/org/jabref/logic/search/query/SearchQueryLuceneConversionTest.java diff --git a/src/test/java/org/jabref/logic/search/query/SearchQuerySQLConversionTest.java b/jablib/src/test/java/org/jabref/logic/search/query/SearchQuerySQLConversionTest.java similarity index 100% rename from src/test/java/org/jabref/logic/search/query/SearchQuerySQLConversionTest.java rename to jablib/src/test/java/org/jabref/logic/search/query/SearchQuerySQLConversionTest.java diff --git a/src/test/java/org/jabref/logic/search/query/SearchQueryTest.java b/jablib/src/test/java/org/jabref/logic/search/query/SearchQueryTest.java similarity index 100% rename from src/test/java/org/jabref/logic/search/query/SearchQueryTest.java rename to jablib/src/test/java/org/jabref/logic/search/query/SearchQueryTest.java diff --git a/jablib/src/test/java/org/jabref/logic/shared/ConnectorTest.java b/jablib/src/test/java/org/jabref/logic/shared/ConnectorTest.java new file mode 100644 index 00000000000..c1542264dab --- /dev/null +++ b/jablib/src/test/java/org/jabref/logic/shared/ConnectorTest.java @@ -0,0 +1,22 @@ +package org.jabref.logic.shared; + +import java.sql.SQLException; + +import org.jabref.logic.shared.exception.InvalidDBMSConnectionPropertiesException; +import org.jabref.testutils.category.DatabaseTest; + +/** + * Stores the credentials for the test systems + */ +@DatabaseTest +public class ConnectorTest { + + public static DBMSConnection getTestDBMSConnection(DBMSType dbmsType) throws SQLException, InvalidDBMSConnectionPropertiesException { + DBMSConnectionProperties properties = getTestConnectionProperties(dbmsType); + return new DBMSConnection(properties); + } + + public static DBMSConnectionProperties getTestConnectionProperties(DBMSType dbmsType) { + return new DBMSConnectionPropertiesBuilder().setType(dbmsType).setHost("localhost").setPort(dbmsType.getDefaultPort()).setDatabase("postgres").setUser("postgres").setPassword("postgres").setUseSSL(false).createDBMSConnectionProperties(); + } +} diff --git a/src/test/java/org/jabref/logic/shared/DBMSConnectionTest.java b/jablib/src/test/java/org/jabref/logic/shared/DBMSConnectionTest.java similarity index 100% rename from src/test/java/org/jabref/logic/shared/DBMSConnectionTest.java rename to jablib/src/test/java/org/jabref/logic/shared/DBMSConnectionTest.java diff --git a/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java b/jablib/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java similarity index 97% rename from src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java rename to jablib/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java index 8f0b4625daa..28fa5b70360 100644 --- a/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java +++ b/jablib/src/test/java/org/jabref/logic/shared/DBMSProcessorTest.java @@ -4,13 +4,13 @@ import java.sql.SQLException; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; +import org.jabref.logic.shared.exception.InvalidDBMSConnectionPropertiesException; import org.jabref.logic.shared.exception.OfflineLockException; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.InternalField; @@ -41,7 +41,7 @@ class DBMSProcessorTest { private DBMSType dbmsType; @BeforeEach - void setup() throws Exception { + void setup() throws SQLException, InvalidDBMSConnectionPropertiesException { this.dbmsType = TestManager.getDBMSTypeTestParameter(); this.dbmsConnection = ConnectorTest.getTestDBMSConnection(dbmsType); this.dbmsProcessor = DBMSProcessor.getProcessorInstance(ConnectorTest.getTestDBMSConnection(dbmsType)); @@ -126,7 +126,7 @@ private static BibEntry getBibEntryExample() { } @Test - void updateEntry() throws Exception { + void updateEntry() throws SQLException, OfflineLockException { BibEntry expectedEntry = getBibEntryExample(); dbmsProcessor.insertEntry(expectedEntry); @@ -141,7 +141,7 @@ void updateEntry() throws Exception { } @Test - void updateEmptyEntry() throws Exception { + void updateEmptyEntry() throws SQLException, OfflineLockException { BibEntry expectedEntry = new BibEntry(StandardEntryType.Article); dbmsProcessor.insertEntry(expectedEntry); @@ -155,7 +155,7 @@ void updateEmptyEntry() throws Exception { } @Test - void getEntriesByIdList() throws Exception { + void getEntriesByIdList() { BibEntry firstEntry = getBibEntryExample(); firstEntry.setField(InternalField.INTERNAL_ID_FIELD, "00001"); BibEntry secondEntry = getBibEntryExample(); @@ -236,7 +236,7 @@ void removeSomeEntries() throws SQLException { void removeSingleEntry() throws SQLException { BibEntry entryToRemove = getBibEntryExample(); dbmsProcessor.insertEntry(entryToRemove); - dbmsProcessor.removeEntries(Collections.singletonList(entryToRemove)); + dbmsProcessor.removeEntries(List.of(entryToRemove)); try (ResultSet entryResultSet = selectFrom("ENTRY", dbmsConnection, dbmsProcessor)) { assertFalse(entryResultSet.next()); @@ -250,7 +250,7 @@ void removeEntriesOnNullThrows() { @Test void removeEmptyEntryList() throws SQLException { - dbmsProcessor.removeEntries(Collections.emptyList()); + dbmsProcessor.removeEntries(List.of()); try (ResultSet entryResultSet = selectFrom("ENTRY", dbmsConnection, dbmsProcessor)) { assertFalse(entryResultSet.next()); diff --git a/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java b/jablib/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java similarity index 87% rename from src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java rename to jablib/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java index 5983b345ade..a63dc0305bb 100644 --- a/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java +++ b/jablib/src/test/java/org/jabref/logic/shared/DBMSSynchronizerTest.java @@ -1,7 +1,7 @@ package org.jabref.logic.shared; +import java.sql.SQLException; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Map; @@ -13,6 +13,8 @@ import org.jabref.logic.cleanup.FieldFormatterCleanups; import org.jabref.logic.exporter.MetaDataSerializer; import org.jabref.logic.formatter.casechanger.LowerCaseFormatter; +import org.jabref.logic.shared.exception.InvalidDBMSConnectionPropertiesException; +import org.jabref.logic.shared.exception.OfflineLockException; import org.jabref.model.database.BibDatabase; import org.jabref.model.database.BibDatabaseContext; import org.jabref.model.database.BibDatabaseMode; @@ -56,7 +58,7 @@ private BibEntry createExampleBibEntry(int index) { } @BeforeEach - void setup() throws Exception { + void setup() throws SQLException, InvalidDBMSConnectionPropertiesException, DatabaseNotSupportedException { this.dbmsType = TestManager.getDBMSTypeTestParameter(); this.dbmsConnection = ConnectorTest.getTestDBMSConnection(dbmsType); this.dbmsProcessor = DBMSProcessor.getProcessorInstance(this.dbmsConnection); @@ -81,7 +83,7 @@ void clear() { } @Test - void entryAddedEventListener() throws Exception { + void entryAddedEventListener() { BibEntry expectedEntry = createExampleBibEntry(1); BibEntry furtherEntry = createExampleBibEntry(1); @@ -95,7 +97,7 @@ void entryAddedEventListener() throws Exception { } @Test - void twoLocalFieldChangesAreSynchronizedCorrectly() throws Exception { + void twoLocalFieldChangesAreSynchronizedCorrectly() { BibEntry expectedEntry = createExampleBibEntry(1); expectedEntry.registerListener(dbmsSynchronizer); @@ -104,11 +106,11 @@ void twoLocalFieldChangesAreSynchronizedCorrectly() throws Exception { expectedEntry.setField(StandardField.TITLE, "The micro multiplexer"); List actualEntries = dbmsProcessor.getSharedEntries(); - assertEquals(Collections.singletonList(expectedEntry), actualEntries); + assertEquals(List.of(expectedEntry), actualEntries); } @Test - void oneLocalAndOneSharedFieldChangeIsSynchronizedCorrectly() throws Exception { + void oneLocalAndOneSharedFieldChangeIsSynchronizedCorrectly() { BibEntry exampleBibEntry = createExampleBibEntry(1); exampleBibEntry.registerListener(dbmsSynchronizer); @@ -122,11 +124,11 @@ void oneLocalAndOneSharedFieldChangeIsSynchronizedCorrectly() throws Exception { BibEntry expectedBibEntry = createExampleBibEntry(1) .withField(StandardField.AUTHOR, "Brad L and Gilson"); - assertEquals(Collections.singletonList(expectedBibEntry), actualEntries); + assertEquals(List.of(expectedBibEntry), actualEntries); } @Test - void entriesRemovedEventListener() throws Exception { + void entriesRemovedEventListener() { BibEntry bibEntry = createExampleBibEntry(1); bibDatabase.insertEntry(bibEntry); @@ -148,7 +150,7 @@ void entriesRemovedEventListener() throws Exception { } @Test - void metaDataChangedEventListener() throws Exception { + void metaDataChangedEventListener() { MetaData testMetaData = new MetaData(); testMetaData.registerListener(dbmsSynchronizer); dbmsSynchronizer.setMetaData(testMetaData); @@ -162,7 +164,7 @@ void metaDataChangedEventListener() throws Exception { } @Test - void initializeDatabases() throws Exception { + void initializeDatabases() throws DatabaseNotSupportedException, SQLException { dbmsSynchronizer.initializeDatabases(); assertTrue(dbmsProcessor.checkBaseIntegrity()); dbmsSynchronizer.initializeDatabases(); @@ -170,7 +172,7 @@ void initializeDatabases() throws Exception { } @Test - void synchronizeLocalDatabaseWithEntryRemoval() throws Exception { + void synchronizeLocalDatabaseWithEntryRemoval() { List expectedBibEntries = Arrays.asList(createExampleBibEntry(1), createExampleBibEntry(2)); dbmsProcessor.insertEntry(expectedBibEntries.getFirst()); @@ -182,9 +184,9 @@ void synchronizeLocalDatabaseWithEntryRemoval() throws Exception { assertEquals(expectedBibEntries, bibDatabase.getEntries()); - dbmsProcessor.removeEntries(Collections.singletonList(expectedBibEntries.getFirst())); + dbmsProcessor.removeEntries(List.of(expectedBibEntries.getFirst())); - expectedBibEntries = Collections.singletonList(expectedBibEntries.get(1)); + expectedBibEntries = List.of(expectedBibEntries.get(1)); dbmsSynchronizer.synchronizeLocalDatabase(); @@ -192,7 +194,7 @@ void synchronizeLocalDatabaseWithEntryRemoval() throws Exception { } @Test - void synchronizeLocalDatabaseWithEntryUpdate() throws Exception { + void synchronizeLocalDatabaseWithEntryUpdate() throws SQLException, OfflineLockException { BibEntry bibEntry = createExampleBibEntry(1); bibDatabase.insertEntry(bibEntry); assertEquals(List.of(bibEntry), bibDatabase.getEntries()); @@ -211,7 +213,7 @@ void synchronizeLocalDatabaseWithEntryUpdate() throws Exception { } @Test - void updateEntryDoesNotModifyLocalDatabase() throws Exception { + void updateEntryDoesNotModifyLocalDatabase() throws SQLException, OfflineLockException { BibEntry bibEntry = createExampleBibEntry(1); bibDatabase.insertEntry(bibEntry); assertEquals(List.of(bibEntry), bibDatabase.getEntries()); @@ -228,12 +230,12 @@ void updateEntryDoesNotModifyLocalDatabase() throws Exception { } @Test - void applyMetaData() throws Exception { + void applyMetaData() { BibEntry bibEntry = createExampleBibEntry(1); bibDatabase.insertEntry(bibEntry); MetaData testMetaData = new MetaData(); - testMetaData.setSaveActions(new FieldFormatterCleanups(true, Collections.singletonList(new FieldFormatterCleanup(StandardField.AUTHOR, new LowerCaseFormatter())))); + testMetaData.setSaveActions(new FieldFormatterCleanups(true, List.of(new FieldFormatterCleanup(StandardField.AUTHOR, new LowerCaseFormatter())))); dbmsSynchronizer.setMetaData(testMetaData); dbmsSynchronizer.applyMetaData(); diff --git a/src/test/java/org/jabref/logic/shared/DBMSTypeTest.java b/jablib/src/test/java/org/jabref/logic/shared/DBMSTypeTest.java similarity index 52% rename from src/test/java/org/jabref/logic/shared/DBMSTypeTest.java rename to jablib/src/test/java/org/jabref/logic/shared/DBMSTypeTest.java index 04abaf58939..5ef22cd4dec 100644 --- a/src/test/java/org/jabref/logic/shared/DBMSTypeTest.java +++ b/jablib/src/test/java/org/jabref/logic/shared/DBMSTypeTest.java @@ -12,26 +12,11 @@ @DatabaseTest class DBMSTypeTest { - @Test - void toStringCorrectForMysql() { - assertEquals("MySQL", DBMSType.MYSQL.toString()); - } - - @Test - void toStringCorrectForOracle() { - assertEquals("Oracle", DBMSType.ORACLE.toString()); - } - @Test void toStringCorrectForPostgres() { assertEquals("PostgreSQL", DBMSType.POSTGRESQL.toString()); } - @Test - void fromStringWorksForMySQL() { - assertEquals(Optional.of(DBMSType.MYSQL), DBMSType.fromString("MySQL")); - } - @Test void fromStringWorksForPostgreSQL() { assertEquals(Optional.of(DBMSType.POSTGRESQL), DBMSType.fromString("PostgreSQL")); @@ -52,31 +37,11 @@ void fromStringWorksForUnkownString() { assertEquals(Optional.empty(), DBMSType.fromString("unknown")); } - @Test - void driverClassForMysqlIsCorrect() { - assertEquals("org.mariadb.jdbc.Driver", DBMSType.MYSQL.getDriverClassPath()); - } - - @Test - void driverClassForOracleIsCorrect() { - assertEquals("oracle.jdbc.driver.OracleDriver", DBMSType.ORACLE.getDriverClassPath()); - } - @Test void driverClassForPostgresIsCorrect() { assertEquals("org.postgresql.Driver", DBMSType.POSTGRESQL.getDriverClassPath()); } - @Test - void fromStringForMysqlReturnsCorrectValue() { - assertEquals(DBMSType.MYSQL, DBMSType.fromString("MySQL").get()); - } - - @Test - void fromStringForOracleRturnsCorrectValue() { - assertEquals(DBMSType.ORACLE, DBMSType.fromString("Oracle").get()); - } - @Test void fromStringForPostgresReturnsCorrectValue() { assertEquals(DBMSType.POSTGRESQL, DBMSType.fromString("PostgreSQL").get()); @@ -87,31 +52,11 @@ void fromStringFromInvalidStringReturnsOptionalEmpty() { assertFalse(DBMSType.fromString("XXX").isPresent()); } - @Test - void getUrlForMysqlHasCorrectFormat() { - assertEquals("jdbc:mariadb://localhost:3306/xe", DBMSType.MYSQL.getUrl("localhost", 3306, "xe")); - } - - @Test - void getUrlForOracleHasCorrectFormat() { - assertEquals("jdbc:oracle:thin:@localhost:1521/xe", DBMSType.ORACLE.getUrl("localhost", 1521, "xe")); - } - @Test void getUrlForPostgresHasCorrectFormat() { assertEquals("jdbc:postgresql://localhost:5432/xe", DBMSType.POSTGRESQL.getUrl("localhost", 5432, "xe")); } - @Test - void getDefaultPortForMysqlHasCorrectValue() { - assertEquals(3306, DBMSType.MYSQL.getDefaultPort()); - } - - @Test - void getDefaultPortForOracleHasCorrectValue() { - assertEquals(1521, DBMSType.ORACLE.getDefaultPort()); - } - @Test void getDefaultPortForPostgresHasCorrectValue() { assertEquals(5432, DBMSType.POSTGRESQL.getDefaultPort()); diff --git a/src/test/java/org/jabref/logic/shared/SynchronizationEventListenerTest.java b/jablib/src/test/java/org/jabref/logic/shared/SynchronizationEventListenerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/shared/SynchronizationEventListenerTest.java rename to jablib/src/test/java/org/jabref/logic/shared/SynchronizationEventListenerTest.java diff --git a/src/test/java/org/jabref/logic/shared/SynchronizationSimulatorTest.java b/jablib/src/test/java/org/jabref/logic/shared/SynchronizationSimulatorTest.java similarity index 95% rename from src/test/java/org/jabref/logic/shared/SynchronizationSimulatorTest.java rename to jablib/src/test/java/org/jabref/logic/shared/SynchronizationSimulatorTest.java index f4d09b06904..e14072821e4 100644 --- a/src/test/java/org/jabref/logic/shared/SynchronizationSimulatorTest.java +++ b/jablib/src/test/java/org/jabref/logic/shared/SynchronizationSimulatorTest.java @@ -7,6 +7,7 @@ import org.jabref.logic.bibtex.FieldPreferences; import org.jabref.logic.citationkeypattern.GlobalCitationKeyPatterns; +import org.jabref.logic.shared.exception.InvalidDBMSConnectionPropertiesException; import org.jabref.model.database.BibDatabaseContext; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; @@ -48,7 +49,7 @@ private BibEntry getBibEntryExample(int index) { } @BeforeEach - void setup() throws Exception { + void setup() throws SQLException, InvalidDBMSConnectionPropertiesException, DatabaseNotSupportedException { DBMSConnection dbmsConnection = ConnectorTest.getTestDBMSConnection(TestManager.getDBMSTypeTestParameter()); TestManager.clearTables(dbmsConnection); @@ -70,13 +71,13 @@ void setup() throws Exception { } @AfterEach - void clear() throws SQLException { + void clear() { clientContextA.getDBMSSynchronizer().closeSharedDatabase(); clientContextB.getDBMSSynchronizer().closeSharedDatabase(); } @Test - void simulateEntryInsertionAndManualPull() throws Exception { + void simulateEntryInsertionAndManualPull() { // client A inserts an entry clientContextA.getDatabase().insertEntry(getBibEntryExample(1)); // client A inserts another entry @@ -88,7 +89,7 @@ void simulateEntryInsertionAndManualPull() throws Exception { } @Test - void simulateEntryUpdateAndManualPull() throws Exception { + void simulateEntryUpdateAndManualPull() { BibEntry bibEntry = getBibEntryExample(1); // client A inserts an entry clientContextA.getDatabase().insertEntry(bibEntry); @@ -103,7 +104,7 @@ void simulateEntryUpdateAndManualPull() throws Exception { } @Test - void simulateEntryDelitionAndManualPull() throws Exception { + void simulateEntryDelitionAndManualPull() { BibEntry bibEntry = getBibEntryExample(1); // client A inserts an entry clientContextA.getDatabase().insertEntry(bibEntry); @@ -124,7 +125,7 @@ void simulateEntryDelitionAndManualPull() throws Exception { } @Test - void simulateUpdateOnNoLongerExistingEntry() throws Exception { + void simulateUpdateOnNoLongerExistingEntry() { BibEntry bibEntryOfClientA = getBibEntryExample(1); // client A inserts an entry clientContextA.getDatabase().insertEntry(bibEntryOfClientA); diff --git a/jablib/src/test/java/org/jabref/logic/shared/TestManager.java b/jablib/src/test/java/org/jabref/logic/shared/TestManager.java new file mode 100644 index 00000000000..8c110ab9b5b --- /dev/null +++ b/jablib/src/test/java/org/jabref/logic/shared/TestManager.java @@ -0,0 +1,26 @@ +package org.jabref.logic.shared; + +import java.sql.SQLException; +import java.util.Objects; + +/** + * This class provides helping methods for database tests. Furthermore, it determines database systems which are ready to + * be used for tests. + */ +public class TestManager { + + /** + * Determine the DBMSType to test from the environment variable "DMBS". In case that variable is not set, use "PostgreSQL" as default + */ + public static DBMSType getDBMSTypeTestParameter() { + return DBMSType.fromString(System.getenv("DBMS")).orElse(DBMSType.POSTGRESQL); + } + + public static void clearTables(DBMSConnection dbmsConnection) throws SQLException { + Objects.requireNonNull(dbmsConnection); + dbmsConnection.getConnection().createStatement().executeUpdate("DROP TABLE IF EXISTS jabref.\"FIELD\""); + dbmsConnection.getConnection().createStatement().executeUpdate("DROP TABLE IF EXISTS jabref.\"ENTRY\""); + dbmsConnection.getConnection().createStatement().executeUpdate("DROP TABLE IF EXISTS jabref.\"METADATA\""); + dbmsConnection.getConnection().createStatement().executeUpdate("DROP SCHEMA IF EXISTS jabref"); + } +} diff --git a/src/test/java/org/jabref/logic/shared/security/PasswordTest.java b/jablib/src/test/java/org/jabref/logic/shared/security/PasswordTest.java similarity index 100% rename from src/test/java/org/jabref/logic/shared/security/PasswordTest.java rename to jablib/src/test/java/org/jabref/logic/shared/security/PasswordTest.java diff --git a/src/test/java/org/jabref/logic/texparser/DefaultTexParserTest.java b/jablib/src/test/java/org/jabref/logic/texparser/DefaultTexParserTest.java similarity index 100% rename from src/test/java/org/jabref/logic/texparser/DefaultTexParserTest.java rename to jablib/src/test/java/org/jabref/logic/texparser/DefaultTexParserTest.java diff --git a/src/test/java/org/jabref/logic/texparser/LatexParserTest.java b/jablib/src/test/java/org/jabref/logic/texparser/LatexParserTest.java similarity index 100% rename from src/test/java/org/jabref/logic/texparser/LatexParserTest.java rename to jablib/src/test/java/org/jabref/logic/texparser/LatexParserTest.java diff --git a/src/test/java/org/jabref/logic/texparser/TexBibEntriesResolverTest.java b/jablib/src/test/java/org/jabref/logic/texparser/TexBibEntriesResolverTest.java similarity index 100% rename from src/test/java/org/jabref/logic/texparser/TexBibEntriesResolverTest.java rename to jablib/src/test/java/org/jabref/logic/texparser/TexBibEntriesResolverTest.java diff --git a/src/test/java/org/jabref/logic/util/BuildInfoTest.java b/jablib/src/test/java/org/jabref/logic/util/BuildInfoTest.java similarity index 100% rename from src/test/java/org/jabref/logic/util/BuildInfoTest.java rename to jablib/src/test/java/org/jabref/logic/util/BuildInfoTest.java diff --git a/src/test/java/org/jabref/logic/util/DevelopmentStageTest.java b/jablib/src/test/java/org/jabref/logic/util/DevelopmentStageTest.java similarity index 100% rename from src/test/java/org/jabref/logic/util/DevelopmentStageTest.java rename to jablib/src/test/java/org/jabref/logic/util/DevelopmentStageTest.java diff --git a/src/test/java/org/jabref/logic/util/ExternalLinkCreatorTest.java b/jablib/src/test/java/org/jabref/logic/util/ExternalLinkCreatorTest.java similarity index 100% rename from src/test/java/org/jabref/logic/util/ExternalLinkCreatorTest.java rename to jablib/src/test/java/org/jabref/logic/util/ExternalLinkCreatorTest.java diff --git a/src/test/java/org/jabref/logic/util/FileNameCleanerTest.java b/jablib/src/test/java/org/jabref/logic/util/FileNameCleanerTest.java similarity index 100% rename from src/test/java/org/jabref/logic/util/FileNameCleanerTest.java rename to jablib/src/test/java/org/jabref/logic/util/FileNameCleanerTest.java diff --git a/src/test/java/org/jabref/logic/util/StandardFileTypeTest.java b/jablib/src/test/java/org/jabref/logic/util/StandardFileTypeTest.java similarity index 100% rename from src/test/java/org/jabref/logic/util/StandardFileTypeTest.java rename to jablib/src/test/java/org/jabref/logic/util/StandardFileTypeTest.java diff --git a/src/test/java/org/jabref/logic/util/UpdateFieldTest.java b/jablib/src/test/java/org/jabref/logic/util/UpdateFieldTest.java similarity index 99% rename from src/test/java/org/jabref/logic/util/UpdateFieldTest.java rename to jablib/src/test/java/org/jabref/logic/util/UpdateFieldTest.java index d9804b126ce..6cf706ab2dd 100644 --- a/src/test/java/org/jabref/logic/util/UpdateFieldTest.java +++ b/jablib/src/test/java/org/jabref/logic/util/UpdateFieldTest.java @@ -25,7 +25,7 @@ class UpdateFieldTest { private BibEntry entry; @BeforeEach - void setUp() throws Exception { + void setUp() { entry = new BibEntry(); entry.setChanged(false); } diff --git a/src/test/java/org/jabref/logic/util/VersionTest.java b/jablib/src/test/java/org/jabref/logic/util/VersionTest.java similarity index 98% rename from src/test/java/org/jabref/logic/util/VersionTest.java rename to jablib/src/test/java/org/jabref/logic/util/VersionTest.java index 2193784b7c6..13e4d3fa24e 100644 --- a/src/test/java/org/jabref/logic/util/VersionTest.java +++ b/jablib/src/test/java/org/jabref/logic/util/VersionTest.java @@ -1,7 +1,7 @@ package org.jabref.logic.util; +import java.io.IOException; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Optional; @@ -329,7 +329,7 @@ void ciSuffixShouldBeRemovedIfDateIsPresent() { @Test @FetcherTest @DisabledOnCIServer("GitHub puts a low rate limit on unauthenticated calls") - void getAllAvailableVersionsReturnsSomething() throws Exception { - assertNotEquals(Collections.emptyList(), Version.getAllAvailableVersions()); + void getAllAvailableVersionsReturnsSomething() throws IOException { + assertNotEquals(List.of(), Version.getAllAvailableVersions()); } } diff --git a/src/test/java/org/jabref/logic/util/io/BackupFileUtilTest.java b/jablib/src/test/java/org/jabref/logic/util/io/BackupFileUtilTest.java similarity index 100% rename from src/test/java/org/jabref/logic/util/io/BackupFileUtilTest.java rename to jablib/src/test/java/org/jabref/logic/util/io/BackupFileUtilTest.java diff --git a/src/test/java/org/jabref/logic/util/io/CitationKeyBasedFileFinderTest.java b/jablib/src/test/java/org/jabref/logic/util/io/CitationKeyBasedFileFinderTest.java similarity index 82% rename from src/test/java/org/jabref/logic/util/io/CitationKeyBasedFileFinderTest.java rename to jablib/src/test/java/org/jabref/logic/util/io/CitationKeyBasedFileFinderTest.java index 3f29211f4e0..1e7bc65b30f 100644 --- a/src/test/java/org/jabref/logic/util/io/CitationKeyBasedFileFinderTest.java +++ b/jablib/src/test/java/org/jabref/logic/util/io/CitationKeyBasedFileFinderTest.java @@ -4,7 +4,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; -import java.util.Collections; import java.util.List; import org.jabref.model.entry.BibEntry; @@ -60,7 +59,7 @@ void setUp(@TempDir Path temporaryFolder) throws IOException { } @Test - void findAssociatedFilesInSubDirectories() throws Exception { + void findAssociatedFilesInSubDirectories() throws IOException { List extensions = Arrays.asList("jpg", "pdf"); List dirs = Arrays.asList(graphicsDir, pdfsDir); FileFinder fileFinder = new CitationKeyBasedFileFinder(false); @@ -71,59 +70,59 @@ void findAssociatedFilesInSubDirectories() throws Exception { } @Test - void findAssociatedFilesIgnoresFilesStartingWithKeyButContinueWithText() throws Exception { + void findAssociatedFilesIgnoresFilesStartingWithKeyButContinueWithText() throws IOException { Files.createFile(pdfsDir.resolve("HipKro03a - Hello second paper.pdf")); FileFinder fileFinder = new CitationKeyBasedFileFinder(false); - List results = fileFinder.findAssociatedFiles(entry, Collections.singletonList(pdfsDir), Collections.singletonList("pdf")); + List results = fileFinder.findAssociatedFiles(entry, List.of(pdfsDir), List.of("pdf")); - assertEquals(Collections.singletonList(pdfFile), results); + assertEquals(List.of(pdfFile), results); } @Test - void findAssociatedFilesFindsFilesStartingWithKey() throws Exception { + void findAssociatedFilesFindsFilesStartingWithKey() throws IOException { Path secondPdfFile = Files.createFile(pdfsDir.resolve("HipKro03_Hello second paper.pdf")); FileFinder fileFinder = new CitationKeyBasedFileFinder(false); - List results = fileFinder.findAssociatedFiles(entry, Collections.singletonList(pdfsDir), Collections.singletonList("pdf")); + List results = fileFinder.findAssociatedFiles(entry, List.of(pdfsDir), List.of("pdf")); assertEquals(Arrays.asList(secondPdfFile, pdfFile), results); } @Test - void findAssociatedFilesInNonExistingDirectoryFindsNothing() throws Exception { + void findAssociatedFilesInNonExistingDirectoryFindsNothing() throws IOException { List extensions = Arrays.asList("jpg", "pdf"); - List dirs = Collections.singletonList(rootDir.resolve("asdfasdf/asdfasdf")); + List dirs = List.of(rootDir.resolve("asdfasdf/asdfasdf")); CitationKeyBasedFileFinder fileFinder = new CitationKeyBasedFileFinder(false); List results = fileFinder.findAssociatedFiles(entry, dirs, extensions); - assertEquals(Collections.emptyList(), results); + assertEquals(List.of(), results); } @Test - void findAssociatedFilesWithUnsafeCharactersStartWithSearch() throws Exception { + void findAssociatedFilesWithUnsafeCharactersStartWithSearch() throws IOException { BibEntry entryWithUnsafeCitationKey = new BibEntry(StandardEntryType.Article); entryWithUnsafeCitationKey.setCitationKey("?test"); Path testFile = Files.createFile(pdfsDir.resolve("_test_file.pdf")); FileFinder fileFinder = new CitationKeyBasedFileFinder(false); - List results = fileFinder.findAssociatedFiles(entryWithUnsafeCitationKey, Collections.singletonList(pdfsDir), Collections.singletonList("pdf")); + List results = fileFinder.findAssociatedFiles(entryWithUnsafeCitationKey, List.of(pdfsDir), List.of("pdf")); - assertEquals(Collections.singletonList(testFile), results); + assertEquals(List.of(testFile), results); } @Test - void findAssociatedFilesWithUnsafeCharactersExactSearch() throws Exception { + void findAssociatedFilesWithUnsafeCharactersExactSearch() throws IOException { BibEntry entryWithUnsafeCitationKey = new BibEntry(StandardEntryType.Article); entryWithUnsafeCitationKey.setCitationKey("test:test/*test?"); Path testFile = Files.createFile(pdfsDir.resolve("test_test__test_.pdf")); FileFinder fileFinder = new CitationKeyBasedFileFinder(true); - List results = fileFinder.findAssociatedFiles(entryWithUnsafeCitationKey, Collections.singletonList(pdfsDir), Collections.singletonList("pdf")); + List results = fileFinder.findAssociatedFiles(entryWithUnsafeCitationKey, List.of(pdfsDir), List.of("pdf")); - assertNotEquals(Collections.singletonList(testFile), results); + assertNotEquals(List.of(testFile), results); } } diff --git a/src/test/java/org/jabref/logic/util/io/FileHistoryTest.java b/jablib/src/test/java/org/jabref/logic/util/io/FileHistoryTest.java similarity index 95% rename from src/test/java/org/jabref/logic/util/io/FileHistoryTest.java rename to jablib/src/test/java/org/jabref/logic/util/io/FileHistoryTest.java index 6d37300cfa3..be0c8eefb66 100644 --- a/src/test/java/org/jabref/logic/util/io/FileHistoryTest.java +++ b/jablib/src/test/java/org/jabref/logic/util/io/FileHistoryTest.java @@ -2,7 +2,7 @@ import java.nio.file.Path; import java.util.Arrays; -import java.util.Collections; +import java.util.List; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -16,7 +16,7 @@ class FileHistoryTest { @BeforeEach void setUp() { - history = FileHistory.of(Collections.emptyList()); + history = FileHistory.of(List.of()); } @Test diff --git a/src/test/java/org/jabref/logic/util/io/FileNameUniquenessTest.java b/jablib/src/test/java/org/jabref/logic/util/io/FileNameUniquenessTest.java similarity index 100% rename from src/test/java/org/jabref/logic/util/io/FileNameUniquenessTest.java rename to jablib/src/test/java/org/jabref/logic/util/io/FileNameUniquenessTest.java diff --git a/src/test/java/org/jabref/logic/util/io/FileUtilTest.java b/jablib/src/test/java/org/jabref/logic/util/io/FileUtilTest.java similarity index 99% rename from src/test/java/org/jabref/logic/util/io/FileUtilTest.java rename to jablib/src/test/java/org/jabref/logic/util/io/FileUtilTest.java index 124587c2837..7321c84f495 100644 --- a/src/test/java/org/jabref/logic/util/io/FileUtilTest.java +++ b/jablib/src/test/java/org/jabref/logic/util/io/FileUtilTest.java @@ -407,7 +407,7 @@ void fileNameIllegal(String fileName) { } @Test - void findsFileInDirectory(@TempDir Path temp) throws Exception { + void findsFileInDirectory(@TempDir Path temp) throws IOException { Path firstFilePath = temp.resolve("files"); Files.createDirectories(firstFilePath); Path firstFile = Files.createFile(firstFilePath.resolve("test.pdf")); @@ -416,7 +416,7 @@ void findsFileInDirectory(@TempDir Path temp) throws Exception { } @Test - void findsFileStartingWithTheSameDirectory(@TempDir Path temp) throws Exception { + void findsFileStartingWithTheSameDirectory(@TempDir Path temp) throws IOException { Path firstFilePath = temp.resolve("files"); Files.createDirectories(firstFilePath); Path firstFile = Files.createFile(firstFilePath.resolve("test.pdf")); @@ -425,7 +425,7 @@ void findsFileStartingWithTheSameDirectory(@TempDir Path temp) throws Exception } @Test - void doesNotFindsFileStartingWithTheSameDirectoryHasASubdirectory(@TempDir Path temp) throws Exception { + void doesNotFindsFileStartingWithTheSameDirectoryHasASubdirectory(@TempDir Path temp) throws IOException { Path firstFilesPath = temp.resolve("files"); Path secondFilesPath = firstFilesPath.resolve("files"); Files.createDirectories(secondFilesPath); @@ -434,7 +434,8 @@ void doesNotFindsFileStartingWithTheSameDirectoryHasASubdirectory(@TempDir Path assertEquals(Optional.of(testFile.toAbsolutePath()), FileUtil.find("files/test.pdf", firstFilesPath)); } - public void testCTemp() { + @Test + public void cTemp() { String fileName = "c:\\temp.pdf"; if (OS.WINDOWS) { assertFalse(FileUtil.detectBadFileName(fileName)); diff --git a/src/test/java/org/jabref/logic/util/io/RegExpBasedFileFinderTest.java b/jablib/src/test/java/org/jabref/logic/util/io/RegExpBasedFileFinderTest.java similarity index 93% rename from src/test/java/org/jabref/logic/util/io/RegExpBasedFileFinderTest.java rename to jablib/src/test/java/org/jabref/logic/util/io/RegExpBasedFileFinderTest.java index e6da7216596..63b8847f77c 100644 --- a/src/test/java/org/jabref/logic/util/io/RegExpBasedFileFinderTest.java +++ b/jablib/src/test/java/org/jabref/logic/util/io/RegExpBasedFileFinderTest.java @@ -1,8 +1,8 @@ package org.jabref.logic.util.io; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import org.jabref.model.entry.BibEntry; @@ -17,7 +17,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; class RegExpBasedFileFinderTest { - private static final List PDF_EXTENSION = Collections.singletonList("pdf"); + private static final List PDF_EXTENSION = List.of("pdf"); private static final List FILE_NAMES = List.of( "ACM_IEEE-CS.pdf", "pdfInDatabase.pdf", @@ -31,7 +31,7 @@ class RegExpBasedFileFinderTest { private BibEntry entry; @BeforeEach - void setUp(@TempDir Path tempDir) throws Exception { + void setUp(@TempDir Path tempDir) throws IOException { entry = new BibEntry(); entry.setType(StandardEntryType.Article); entry.setCitationKey("HipKro03"); @@ -56,7 +56,7 @@ void setUp(@TempDir Path tempDir) throws Exception { } @Test - void findFiles() throws Exception { + void findFiles() throws IOException { // given BibEntry localEntry = new BibEntry(StandardEntryType.Article).withCitationKey("pdfInDatabase"); @@ -71,7 +71,7 @@ void findFiles() throws Exception { } @Test - void yearAuthFirstPageFindFiles() throws Exception { + void yearAuthFirstPageFindFiles() throws IOException { // given RegExpBasedFileFinder fileFinder = new RegExpBasedFileFinder("**/[year]_[auth]_[firstpage].*\\\\.[extension]", ','); @@ -84,7 +84,7 @@ void yearAuthFirstPageFindFiles() throws Exception { } @Test - void findAssociatedFilesFindFileContainingBracketsFromBracketedExpression() throws Exception { + void findAssociatedFilesFindFileContainingBracketsFromBracketedExpression() throws IOException { var bibEntry = new BibEntry().withField(StandardField.TITLE, "Regexp from [A-Z]"); RegExpBasedFileFinder fileFinder = new RegExpBasedFileFinder("[TITLE]\\\\.[extension]", ','); @@ -96,7 +96,7 @@ void findAssociatedFilesFindFileContainingBracketsFromBracketedExpression() thro } @Test - void findAssociatedFilesFindCleanedFileFromBracketedExpression() throws Exception { + void findAssociatedFilesFindCleanedFileFromBracketedExpression() throws IOException { var bibEntry = new BibEntry().withField(StandardField.JOURNAL, "ACM/IEEE-CS"); RegExpBasedFileFinder fileFinder = new RegExpBasedFileFinder("[JOURNAL]\\\\.[extension]", ','); @@ -108,7 +108,7 @@ void findAssociatedFilesFindCleanedFileFromBracketedExpression() throws Exceptio } @Test - void findAssociatedFilesFindFileContainingParenthesizesFromBracketedExpression() throws Exception { + void findAssociatedFilesFindFileContainingParenthesizesFromBracketedExpression() throws IOException { var bibEntry = new BibEntry().withCitationKey("Guo_ICC_2010") .withField(StandardField.TITLE, "Ferroelectric Metal Organic Framework (MOF)") .withField(StandardField.AUTHOR, "Guo, M. and Cai, H.-L. and Xiong, R.-G.") @@ -124,7 +124,7 @@ void findAssociatedFilesFindFileContainingParenthesizesFromBracketedExpression() } @Test - void authorWithDiacritics() throws Exception { + void authorWithDiacritics() throws IOException { // given BibEntry localEntry = new BibEntry(StandardEntryType.Article).withCitationKey("Grazulis2017"); localEntry.setField(StandardField.YEAR, "2017"); @@ -142,7 +142,7 @@ void authorWithDiacritics() throws Exception { } @Test - void findFileInSubdirectory() throws Exception { + void findFileInSubdirectory() throws IOException { // given BibEntry localEntry = new BibEntry(StandardEntryType.Article); localEntry.setCitationKey("pdfInSubdirectory"); @@ -159,7 +159,7 @@ void findFileInSubdirectory() throws Exception { } @Test - void findFileNonRecursive() throws Exception { + void findFileNonRecursive() throws IOException { // given BibEntry localEntry = new BibEntry(StandardEntryType.Article); localEntry.setCitationKey("pdfInSubdirectory"); diff --git a/src/test/java/org/jabref/logic/util/strings/StringLengthComparatorTest.java b/jablib/src/test/java/org/jabref/logic/util/strings/StringLengthComparatorTest.java similarity index 100% rename from src/test/java/org/jabref/logic/util/strings/StringLengthComparatorTest.java rename to jablib/src/test/java/org/jabref/logic/util/strings/StringLengthComparatorTest.java diff --git a/src/test/java/org/jabref/logic/util/strings/StringManipulatorTest.java b/jablib/src/test/java/org/jabref/logic/util/strings/StringManipulatorTest.java similarity index 100% rename from src/test/java/org/jabref/logic/util/strings/StringManipulatorTest.java rename to jablib/src/test/java/org/jabref/logic/util/strings/StringManipulatorTest.java diff --git a/src/test/java/org/jabref/logic/util/strings/StringSimilarityTest.java b/jablib/src/test/java/org/jabref/logic/util/strings/StringSimilarityTest.java similarity index 100% rename from src/test/java/org/jabref/logic/util/strings/StringSimilarityTest.java rename to jablib/src/test/java/org/jabref/logic/util/strings/StringSimilarityTest.java diff --git a/src/test/java/org/jabref/logic/xmp/XmpUtilReaderTest.java b/jablib/src/test/java/org/jabref/logic/xmp/XmpUtilReaderTest.java similarity index 97% rename from src/test/java/org/jabref/logic/xmp/XmpUtilReaderTest.java rename to jablib/src/test/java/org/jabref/logic/xmp/XmpUtilReaderTest.java index 3e32c75a196..8f47fed66ec 100644 --- a/src/test/java/org/jabref/logic/xmp/XmpUtilReaderTest.java +++ b/jablib/src/test/java/org/jabref/logic/xmp/XmpUtilReaderTest.java @@ -4,7 +4,6 @@ import java.net.URISyntaxException; import java.nio.file.Path; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Optional; @@ -90,7 +89,7 @@ void readArticleDublinCoreReadXmpPartialDate() throws IOException, URISyntaxExce @Test void readEmtpyMetadata() throws IOException, URISyntaxException { List entries = xmpUtilReader.readXmp(Path.of(XmpUtilShared.class.getResource("empty_metadata.pdf").toURI()), xmpPreferences); - assertEquals(Collections.emptyList(), entries); + assertEquals(List.of(), entries); } /** @@ -117,6 +116,6 @@ void readPDMetadataNonXmp() throws IOException, URISyntaxException { @Test void readNoDescriptionMetadata() throws IOException, URISyntaxException { List entries = xmpUtilReader.readXmp(Path.of(XmpUtilShared.class.getResource("no_description_metadata.pdf").toURI()), xmpPreferences); - assertEquals(Collections.emptyList(), entries); + assertEquals(List.of(), entries); } } diff --git a/src/test/java/org/jabref/logic/xmp/XmpUtilWriterTest.java b/jablib/src/test/java/org/jabref/logic/xmp/XmpUtilWriterTest.java similarity index 92% rename from src/test/java/org/jabref/logic/xmp/XmpUtilWriterTest.java rename to jablib/src/test/java/org/jabref/logic/xmp/XmpUtilWriterTest.java index 1e06c9ad895..0a417dbf6fe 100644 --- a/src/test/java/org/jabref/logic/xmp/XmpUtilWriterTest.java +++ b/jablib/src/test/java/org/jabref/logic/xmp/XmpUtilWriterTest.java @@ -1,8 +1,11 @@ package org.jabref.logic.xmp; +import java.io.IOException; import java.nio.file.Path; import java.util.List; +import javax.xml.transform.TransformerException; + import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.Date; import org.jabref.model.entry.Month; @@ -86,7 +89,7 @@ void setUp() { /** * Test for writing a PDF file with a single DublinCore metadata entry. */ - void singleEntryWorks(BibEntry entry) throws Exception { + void singleEntryWorks(BibEntry entry) throws IOException, TransformerException { Path pdfFile = this.createDefaultFile("JabRef_writeSingle.pdf", tempDir); new XmpUtilWriter(xmpPreferences).writeXmp(pdfFile.toAbsolutePath(), entry, null); @@ -101,22 +104,22 @@ void singleEntryWorks(BibEntry entry) throws Exception { } @Test - void olly2018Works() throws Exception { + void olly2018Works() throws IOException, TransformerException { singleEntryWorks(olly2018); } @Test - void toral2006Works() throws Exception { + void toral2006Works() throws IOException, TransformerException { singleEntryWorks(toral2006); } @Test - void vapnik2000Works() throws Exception { + void vapnik2000Works() throws IOException, TransformerException { singleEntryWorks(vapnik2000); } @Test - void writeTwoBibEntries(@TempDir Path tempDir) throws Exception { + void writeTwoBibEntries(@TempDir Path tempDir) throws IOException, TransformerException { Path pdfFile = this.createDefaultFile("JabRef_writeTwo.pdf", tempDir); List entries = List.of(olly2018, toral2006); new XmpUtilWriter(xmpPreferences).writeXmp(pdfFile.toAbsolutePath(), entries, null); @@ -131,7 +134,7 @@ void writeTwoBibEntries(@TempDir Path tempDir) throws Exception { } @Test - void writeThreeBibEntries(@TempDir Path tempDir) throws Exception { + void writeThreeBibEntries(@TempDir Path tempDir) throws IOException, TransformerException { Path pdfFile = this.createDefaultFile("JabRef_writeThree.pdf", tempDir); List entries = List.of(olly2018, vapnik2000, toral2006); new XmpUtilWriter(xmpPreferences).writeXmp(pdfFile.toAbsolutePath(), entries, null); @@ -146,7 +149,7 @@ void writeThreeBibEntries(@TempDir Path tempDir) throws Exception { } @Test - void proctingBracesAreRemovedAtTitle(@TempDir Path tempDir) throws Exception { + void proctingBracesAreRemovedAtTitle(@TempDir Path tempDir) throws IOException, TransformerException { Path pdfFile = this.createDefaultFile("JabRef_writeBraces.pdf", tempDir); BibEntry original = new BibEntry() .withField(StandardField.TITLE, "Some {P}rotected {T}erm"); @@ -161,7 +164,7 @@ void proctingBracesAreRemovedAtTitle(@TempDir Path tempDir) throws Exception { } @Test - void proctingBracesAreKeptAtPages(@TempDir Path tempDir) throws Exception { + void proctingBracesAreKeptAtPages(@TempDir Path tempDir) throws IOException, TransformerException { Path pdfFile = this.createDefaultFile("JabRef_writeBraces.pdf", tempDir); BibEntry original = new BibEntry() .withField(StandardField.PAGES, "{55}-{99}"); @@ -174,7 +177,7 @@ void proctingBracesAreKeptAtPages(@TempDir Path tempDir) throws Exception { } @Test - void doubleDashAtPageNumberIsKept(@TempDir Path tempDir) throws Exception { + void doubleDashAtPageNumberIsKept(@TempDir Path tempDir) throws IOException, TransformerException { Path pdfFile = this.createDefaultFile("JabRef_writeBraces.pdf", tempDir); BibEntry original = new BibEntry() .withField(StandardField.PAGES, "2--33"); @@ -187,7 +190,7 @@ void doubleDashAtPageNumberIsKept(@TempDir Path tempDir) throws Exception { } @Test - void singleEntry(@TempDir Path tempDir) throws Exception { + void singleEntry(@TempDir Path tempDir) throws IOException, TransformerException { Path pdfFile = this.createDefaultFile("JabRef.pdf", tempDir); new XmpUtilWriter(xmpPreferences).writeXmp(pdfFile.toAbsolutePath(), List.of(vapnik2000), null); List entryList = new XmpUtilReader().readXmp(pdfFile.toAbsolutePath(), xmpPreferences); @@ -200,7 +203,7 @@ void singleEntry(@TempDir Path tempDir) throws Exception { /** * Creates a temporary PDF-file with a single empty page. */ - private Path createDefaultFile(String fileName, Path tempDir) throws Exception { + private Path createDefaultFile(String fileName, Path tempDir) throws IOException { // create a default PDF Path pdfFile = tempDir.resolve(fileName); try (PDDocument pdf = new PDDocument()) { diff --git a/src/test/java/org/jabref/model/FieldChangeTest.java b/jablib/src/test/java/org/jabref/model/FieldChangeTest.java similarity index 100% rename from src/test/java/org/jabref/model/FieldChangeTest.java rename to jablib/src/test/java/org/jabref/model/FieldChangeTest.java diff --git a/src/test/java/org/jabref/model/TreeNodeTest.java b/jablib/src/test/java/org/jabref/model/TreeNodeTest.java similarity index 98% rename from src/test/java/org/jabref/model/TreeNodeTest.java rename to jablib/src/test/java/org/jabref/model/TreeNodeTest.java index 7044fa5cc0c..fd66cf17f6c 100644 --- a/src/test/java/org/jabref/model/TreeNodeTest.java +++ b/jablib/src/test/java/org/jabref/model/TreeNodeTest.java @@ -1,7 +1,6 @@ package org.jabref.model; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.function.Consumer; @@ -41,14 +40,14 @@ void constructorExceptsCorrectImplementation() { void newTreeNodeHasNoParentOrChildren() { TreeNodeTestData.TreeNodeMock treeNode = new TreeNodeTestData.TreeNodeMock(); assertEquals(Optional.empty(), treeNode.getParent()); - assertEquals(Collections.emptyList(), treeNode.getChildren()); + assertEquals(List.of(), treeNode.getChildren()); assertNotNull(treeNode); } @Test void getIndexedPathFromRootReturnsEmptyListForRoot() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock(); - assertEquals(Collections.emptyList(), root.getIndexedPathFromRoot()); + assertEquals(List.of(), root.getIndexedPathFromRoot()); } @Test @@ -401,7 +400,7 @@ void removeAllChildrenRemovesAllNodesFromChildrenCollection() { TreeNodeTestData.getNodeAsChild(root); root.removeAllChildren(); - assertEquals(Collections.emptyList(), root.getChildren()); + assertEquals(List.of(), root.getChildren()); } @Test @@ -614,7 +613,7 @@ void removeChildIndexSomewhereInTreeInvokesChangeEvent() { } @Test - void findChildrenWithSameName() throws Exception { + void findChildrenWithSameName() { TreeNodeTestData.TreeNodeMock root = new TreeNodeTestData.TreeNodeMock("A"); TreeNodeTestData.TreeNodeMock childB = root.addChild(new TreeNodeTestData.TreeNodeMock("B")); TreeNodeTestData.TreeNodeMock node = childB.addChild(new TreeNodeTestData.TreeNodeMock("A")); diff --git a/src/test/java/org/jabref/model/database/BibDatabaseContextTest.java b/jablib/src/test/java/org/jabref/model/database/BibDatabaseContextTest.java similarity index 89% rename from src/test/java/org/jabref/model/database/BibDatabaseContextTest.java rename to jablib/src/test/java/org/jabref/model/database/BibDatabaseContextTest.java index 698a939b204..791594add38 100644 --- a/src/test/java/org/jabref/model/database/BibDatabaseContextTest.java +++ b/jablib/src/test/java/org/jabref/model/database/BibDatabaseContextTest.java @@ -2,10 +2,7 @@ import java.nio.file.Path; import java.util.List; -import java.util.Optional; -import org.jabref.architecture.AllowedToUseLogic; -import org.jabref.gui.desktop.os.NativeDesktop; import org.jabref.logic.FilePreferences; import org.jabref.logic.util.Directories; import org.jabref.model.entry.BibEntry; @@ -20,7 +17,6 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -@AllowedToUseLogic("Needs access to OS class") class BibDatabaseContextTest { private Path currentWorkingDir; @@ -107,17 +103,6 @@ void getFileDirectoriesWithMetadata() { database.getFileDirectories(fileDirPrefs)); } - @Test - void getUserFileDirectoryIfAllAreEmpty() { - when(fileDirPrefs.shouldStoreFilesRelativeToBibFile()).thenReturn(false); - Path userDirJabRef = NativeDesktop.get().getDefaultFileChooserDirectory(); - - when(fileDirPrefs.getMainFileDirectory()).thenReturn(Optional.of(userDirJabRef)); - BibDatabaseContext database = new BibDatabaseContext(); - database.setDatabasePath(Path.of("biblio.bib")); - assertEquals(List.of(userDirJabRef), database.getFileDirectories(fileDirPrefs)); - } - @Test void typeBasedOnDefaultBiblatex() { BibDatabaseContext bibDatabaseContext = new BibDatabaseContext(new BibDatabase(), new MetaData()); diff --git a/src/test/java/org/jabref/model/database/BibDatabaseModeDetectionTest.java b/jablib/src/test/java/org/jabref/model/database/BibDatabaseModeDetectionTest.java similarity index 100% rename from src/test/java/org/jabref/model/database/BibDatabaseModeDetectionTest.java rename to jablib/src/test/java/org/jabref/model/database/BibDatabaseModeDetectionTest.java diff --git a/src/test/java/org/jabref/model/database/BibDatabaseTest.java b/jablib/src/test/java/org/jabref/model/database/BibDatabaseTest.java similarity index 96% rename from src/test/java/org/jabref/model/database/BibDatabaseTest.java rename to jablib/src/test/java/org/jabref/model/database/BibDatabaseTest.java index b3ce97fb440..aec12886682 100644 --- a/src/test/java/org/jabref/model/database/BibDatabaseTest.java +++ b/jablib/src/test/java/org/jabref/model/database/BibDatabaseTest.java @@ -3,7 +3,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.Comparator; import java.util.HashSet; import java.util.List; @@ -69,7 +68,7 @@ void removeEntryRemovesEntryFromEntriesList() { database.insertEntry(entry); database.removeEntry(entry); - assertEquals(Collections.emptyList(), database.getEntries()); + assertEquals(List.of(), database.getEntries()); assertFalse(database.containsEntryWithId(entry.getId())); } @@ -82,7 +81,7 @@ void removeSomeEntriesRemovesThoseEntriesFromEntriesList() { database.insertEntries(allEntries); List entriesToDelete = Arrays.asList(entry1, entry3); database.removeEntries(entriesToDelete); - assertEquals(Collections.singletonList(entry2), database.getEntries()); + assertEquals(List.of(entry2), database.getEntries()); assertFalse(database.containsEntryWithId(entry1.getId())); assertTrue(database.containsEntryWithId(entry2.getId())); assertFalse(database.containsEntryWithId(entry3.getId())); @@ -99,7 +98,7 @@ void removeAllEntriesRemovesAllEntriesFromEntriesList() { allEntries.add(entry3); database.removeEntries(allEntries); - assertEquals(Collections.emptyList(), database.getEntries()); + assertEquals(List.of(), database.getEntries()); assertFalse(database.containsEntryWithId(entry1.getId())); assertFalse(database.containsEntryWithId(entry2.getId())); assertFalse(database.containsEntryWithId(entry3.getId())); @@ -117,7 +116,7 @@ void removeNullEntryThrowsException() { @Test void emptyDatabaseHasNoStrings() { - assertEquals(Collections.emptySet(), database.getStringKeySet()); + assertEquals(Set.of(), database.getStringKeySet()); assertTrue(database.hasNoStrings()); } @@ -274,7 +273,7 @@ void insertEntryPostsAddedEntryEvent() { EventListenerTest tel = new EventListenerTest(); database.registerListener(tel); database.insertEntry(expectedEntry); - assertEquals(Collections.singletonList(expectedEntry), tel.getAddedEntries()); + assertEquals(List.of(expectedEntry), tel.getAddedEntries()); assertEquals(expectedEntry, tel.getFirstInsertedEntry()); } @@ -406,7 +405,7 @@ void getUsedStrings() { database.addString(tripleC); database.insertEntry(entry); - Set usedStrings = new HashSet<>(database.getUsedStrings(Collections.singletonList(entry))); + Set usedStrings = new HashSet<>(database.getUsedStrings(List.of(entry))); assertEquals(stringSet, usedStrings); } @@ -423,7 +422,7 @@ void getUsedStringsSingleString() { database.addString(tripleB); database.insertEntry(entry); - List usedStrings = (List) database.getUsedStrings(Collections.singletonList(entry)); + List usedStrings = database.getUsedStrings(List.of(entry)); assertEquals(strings, usedStrings); } @@ -434,8 +433,8 @@ void getUsedStringsNoString() { BibtexString string = new BibtexString("AAA", "Some other text"); database.addString(string); database.insertEntry(entry); - Collection usedStrings = database.getUsedStrings(Collections.singletonList(entry)); - assertEquals(Collections.emptyList(), usedStrings); + Collection usedStrings = database.getUsedStrings(List.of(entry)); + assertEquals(List.of(), usedStrings); } @Test diff --git a/src/test/java/org/jabref/model/database/DuplicationCheckerTest.java b/jablib/src/test/java/org/jabref/model/database/DuplicationCheckerTest.java similarity index 100% rename from src/test/java/org/jabref/model/database/DuplicationCheckerTest.java rename to jablib/src/test/java/org/jabref/model/database/DuplicationCheckerTest.java diff --git a/src/test/java/org/jabref/model/database/KeyChangeListenerTest.java b/jablib/src/test/java/org/jabref/model/database/KeyChangeListenerTest.java similarity index 100% rename from src/test/java/org/jabref/model/database/KeyChangeListenerTest.java rename to jablib/src/test/java/org/jabref/model/database/KeyChangeListenerTest.java diff --git a/src/test/java/org/jabref/model/entry/AuthorListTest.java b/jablib/src/test/java/org/jabref/model/entry/AuthorListTest.java similarity index 97% rename from src/test/java/org/jabref/model/entry/AuthorListTest.java rename to jablib/src/test/java/org/jabref/model/entry/AuthorListTest.java index 90216475e53..c251e3c5d3f 100644 --- a/src/test/java/org/jabref/model/entry/AuthorListTest.java +++ b/jablib/src/test/java/org/jabref/model/entry/AuthorListTest.java @@ -1,7 +1,7 @@ package org.jabref.model.entry; import java.util.Arrays; -import java.util.Collections; +import java.util.List; import java.util.Optional; import org.junit.jupiter.api.Disabled; @@ -32,7 +32,7 @@ public class AuthorListTest { new Author("Kurt", "K.", null, "G{\\\"{o}}del", null); private static final Author BANU_MOSA = new Author(null, null, null, "{The Ban\\={u} M\\={u}s\\={a} brothers}", null); - private static final AuthorList EMPTY_AUTHOR = AuthorList.of(Collections.emptyList()); + private static final AuthorList EMPTY_AUTHOR = AuthorList.of(List.of()); private static final AuthorList ONE_AUTHOR_WITH_LATEX = AuthorList.of(MUHAMMAD_ALKHWARIZMI); private static final AuthorList TWO_AUTHORS_WITH_LATEX = AuthorList.of(MUHAMMAD_ALKHWARIZMI, CORRADO_BOHM); private static final AuthorList THREE_AUTHORS_WITH_LATEX = AuthorList.of(MUHAMMAD_ALKHWARIZMI, CORRADO_BOHM, KURT_GODEL); @@ -1003,44 +1003,44 @@ void createCorrectInitials() { } @Test - void parseNameWithBracesAroundFirstName() throws Exception { + void parseNameWithBracesAroundFirstName() { // TODO: Be more intelligent and abbreviate the first name correctly Author expected = new Author("Tse-tung", "{Tse-tung}.", null, "Mao", null); assertEquals(AuthorList.of(expected), AuthorList.parse("{Tse-tung} Mao")); } @Test - void parseNameWithBracesAroundLastName() throws Exception { + void parseNameWithBracesAroundLastName() { Author expected = new Author("Hans", "H.", null, "van den Bergen", null); assertEquals(AuthorList.of(expected), AuthorList.parse("{van den Bergen}, Hans")); } @Test - void parseNameWithHyphenInFirstName() throws Exception { + void parseNameWithHyphenInFirstName() { Author expected = new Author("Tse-tung", "T.-t.", null, "Mao", null); assertEquals(AuthorList.of(expected), AuthorList.parse("Tse-tung Mao")); } @Test - void parseNameWithHyphenInLastName() throws Exception { + void parseNameWithHyphenInLastName() { Author expected = new Author("Firstname", "F.", null, "Bailey-Jones", null); assertEquals(AuthorList.of(expected), AuthorList.parse("Firstname Bailey-Jones")); } @Test - void parseNameWithHyphenInLastNameWithInitials() throws Exception { + void parseNameWithHyphenInLastNameWithInitials() { Author expected = new Author("E. S.", "E. S.", null, "El-{M}allah", null); assertEquals(AuthorList.of(expected), AuthorList.parse("E. S. El-{M}allah")); } @Test - void parseNameWithHyphenInLastNameWithEscaped() throws Exception { + void parseNameWithHyphenInLastNameWithEscaped() { Author expected = new Author("E. S.", "E. S.", null, "{K}ent-{B}oswell", null); assertEquals(AuthorList.of(expected), AuthorList.parse("E. S. {K}ent-{B}oswell")); } @Test - void parseNameWithHyphenInLastNameWhenLastNameGivenFirst() throws Exception { + void parseNameWithHyphenInLastNameWhenLastNameGivenFirst() { // TODO: Fix abbreviation to be "A." Author expected = new Author("ʿAbdallāh", "ʿ.", null, "al-Ṣāliḥ", null); assertEquals(AuthorList.of(expected), AuthorList.parse("al-Ṣāliḥ, ʿAbdallāh")); @@ -1048,7 +1048,7 @@ void parseNameWithHyphenInLastNameWhenLastNameGivenFirst() throws Exception { @Test @Disabled("Has issues with space character in W-P.") - void parseWithDash() throws Exception { + void parseWithDash() { assertEquals( AuthorList.of( new Author("Z.", "Z.", null, "Yao", null), @@ -1060,47 +1060,47 @@ void parseWithDash() throws Exception { } @Test - void parseNameWithBraces() throws Exception { + void parseNameWithBraces() { Author expected = new Author("H{e}lene", "H.", null, "Fiaux", null); assertEquals(AuthorList.of(expected), AuthorList.parse("H{e}lene Fiaux")); } @Test - void parseFirstNameFromFirstAuthorMultipleAuthorsWithLatexNames() throws Exception { + void parseFirstNameFromFirstAuthorMultipleAuthorsWithLatexNames() { assertEquals("Mu{\\d{h}}ammad", AuthorList.parse("Mu{\\d{h}}ammad al-Khw{\\={a}}rizm{\\={i}} and Corrado B{\\\"o}hm") .getAuthor(0).getGivenName().orElse(null)); } @Test - void parseFirstNameFromSecondAuthorMultipleAuthorsWithLatexNames() throws Exception { + void parseFirstNameFromSecondAuthorMultipleAuthorsWithLatexNames() { assertEquals("Corrado", AuthorList.parse("Mu{\\d{h}}ammad al-Khw{\\={a}}rizm{\\={i}} and Corrado B{\\\"o}hm") .getAuthor(1).getGivenName().orElse(null)); } @Test - void parseLastNameFromFirstAuthorMultipleAuthorsWithLatexNames() throws Exception { + void parseLastNameFromFirstAuthorMultipleAuthorsWithLatexNames() { assertEquals("al-Khw{\\={a}}rizm{\\={i}}", AuthorList.parse("Mu{\\d{h}}ammad al-Khw{\\={a}}rizm{\\={i}} and Corrado B{\\\"o}hm") .getAuthor(0).getFamilyName().orElse(null)); } @Test - void parseLastNameFromSecondAuthorMultipleAuthorsWithLatexNames() throws Exception { + void parseLastNameFromSecondAuthorMultipleAuthorsWithLatexNames() { assertEquals("B{\\\"o}hm", AuthorList.parse("Mu{\\d{h}}ammad al-Khw{\\={a}}rizm{\\={i}} and Corrado B{\\\"o}hm") .getAuthor(1).getFamilyName().orElse(null)); } @Test - void parseInstitutionAuthorWithLatexNames() throws Exception { + void parseInstitutionAuthorWithLatexNames() { assertEquals("{The Ban\\={u} M\\={u}s\\={a} brothers}", AuthorList.parse("{The Ban\\={u} M\\={u}s\\={a} brothers}").getAuthor(0).getFamilyName().orElse(null)); } @Test - void parseRetrieveCachedAuthorListAfterGarbageCollection() throws Exception { + void parseRetrieveCachedAuthorListAfterGarbageCollection() { final String uniqueAuthorName = "Osvaldo Iongi"; AuthorList author = AuthorList.parse(uniqueAuthorName); System.gc(); @@ -1108,7 +1108,7 @@ void parseRetrieveCachedAuthorListAfterGarbageCollection() throws Exception { } @Test - void parseGarbageCollectAuthorListForUnreachableKey() throws Exception { + void parseGarbageCollectAuthorListForUnreachableKey() { final String uniqueAuthorName = "Fleur Hornbach"; // Note that "new String()" is needed, uniqueAuthorName is a reference to a String literal AuthorList uniqueAuthor = AuthorList.parse(new String(uniqueAuthorName)); @@ -1117,9 +1117,9 @@ void parseGarbageCollectAuthorListForUnreachableKey() throws Exception { } @Test - void parseGarbageCollectUnreachableInstitution() throws Exception { + void parseGarbageCollectUnreachableInstitution() { final String uniqueInstitutionName = "{Unique LLC}"; - // Note that "new String()" is needed, uniqueAuthorName is a reference to a String literal + // Note that "new String()" is needed, uniqueInstitutionName is a reference to a String literal AuthorList uniqueInstitution = AuthorList.parse(new String(uniqueInstitutionName)); System.gc(); assertNotSame(uniqueInstitution, AuthorList.parse(uniqueInstitutionName)); @@ -1129,7 +1129,7 @@ void parseGarbageCollectUnreachableInstitution() throws Exception { * This tests an unreachable key issue addressed in [#6552](https://github.com/JabRef/jabref/pull/6552). The test is incorrect BibTeX but is handled by the parser and common in practice. */ @Test - void parseCacheAuthorsWithTwoOrMoreCommasAndWithSpaceInAllParts() throws Exception { + void parseCacheAuthorsWithTwoOrMoreCommasAndWithSpaceInAllParts() { final String uniqueAuthorsNames = "Basil Dankworth, Gianna Birdwhistle, Cosmo Berrycloth"; AuthorList uniqueAuthors = AuthorList.parse(uniqueAuthorsNames); System.gc(); @@ -1140,7 +1140,7 @@ void parseCacheAuthorsWithTwoOrMoreCommasAndWithSpaceInAllParts() throws Excepti * This tests an unreachable key issue addressed in [#6552](https://github.com/JabRef/jabref/pull/6552). */ @Test - void parseCacheAuthorsWithTwoOrMoreCommasAndWithoutSpaceInAllParts() throws Exception { + void parseCacheAuthorsWithTwoOrMoreCommasAndWithoutSpaceInAllParts() { final String uniqueAuthorsNames = "Dankworth, Jr., Braelynn"; AuthorList uniqueAuthors = AuthorList.parse(uniqueAuthorsNames); System.gc(); @@ -1151,7 +1151,7 @@ void parseCacheAuthorsWithTwoOrMoreCommasAndWithoutSpaceInAllParts() throws Exce * This tests the issue described at https://github.com/JabRef/jabref/pull/2669#issuecomment-288519458 */ @Test - void correctNamesWithOneComma() throws Exception { + void correctNamesWithOneComma() { Author expected = new Author("Alexander der Große", "A. d. G.", null, "Canon der Barbar", null); assertEquals(AuthorList.of(expected), AuthorList.parse("Canon der Barbar, Alexander der Große")); diff --git a/src/test/java/org/jabref/model/entry/AuthorTest.java b/jablib/src/test/java/org/jabref/model/entry/AuthorTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/AuthorTest.java rename to jablib/src/test/java/org/jabref/model/entry/AuthorTest.java diff --git a/src/test/java/org/jabref/model/entry/BibEntryTest.java b/jablib/src/test/java/org/jabref/model/entry/BibEntryTest.java similarity index 97% rename from src/test/java/org/jabref/model/entry/BibEntryTest.java rename to jablib/src/test/java/org/jabref/model/entry/BibEntryTest.java index a9910037379..9ea9844ce8e 100644 --- a/src/test/java/org/jabref/model/entry/BibEntryTest.java +++ b/jablib/src/test/java/org/jabref/model/entry/BibEntryTest.java @@ -1,9 +1,9 @@ package org.jabref.model.entry; +import java.net.MalformedURLException; import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; @@ -252,11 +252,11 @@ void getAndAddToLinkedFileList() { List files = entry.getFiles(); files.add(new LinkedFile("", Path.of(""), "")); entry.setFiles(files); - assertEquals(Arrays.asList(new LinkedFile("", Path.of(""), "")), entry.getFiles()); + assertEquals(List.of(new LinkedFile("", Path.of(""), "")), entry.getFiles()); } @Test - void replaceOfLinkWorks() throws Exception { + void replaceOfLinkWorks() throws MalformedURLException { List files = new ArrayList<>(); String urlAsString = "https://www.example.org/file.pdf"; files.add(new LinkedFile(URLUtil.create(urlAsString), "")); @@ -374,7 +374,7 @@ void compareToNullObjectIsFalse() { @Test void compareToDifferentClassIsFalse() { - assertNotEquals(entry, new Object()); + assertNotEquals(new Object(), entry); } @Test @@ -503,39 +503,39 @@ void putKeywordsHasChanged() { @Test void putKeywordsPutEmpyListErasesPreviousKeywords() { entry.setField(StandardField.KEYWORDS, "Foo, Bar"); - entry.putKeywords(Collections.emptyList(), ','); + entry.putKeywords(List.of(), ','); assertTrue(entry.getKeywords(',').isEmpty()); } @Test void putKeywordsPutEmpyListHasChanged() { entry.setField(StandardField.KEYWORDS, "Foo, Bar"); - entry.putKeywords(Collections.emptyList(), ','); + entry.putKeywords(List.of(), ','); assertTrue(entry.hasChanged()); } @Test void putKeywordsPutEmpyListToEmptyBibentry() { - entry.putKeywords(Collections.emptyList(), ','); + entry.putKeywords(List.of(), ','); assertTrue(entry.getKeywords(',').isEmpty()); } @Test void putKeywordsPutEmpyListToEmptyBibentryNotChanged() { - entry.putKeywords(Collections.emptyList(), ','); + entry.putKeywords(List.of(), ','); assertFalse(entry.hasChanged()); } @Test void putKeywordsToEmptyReturnsNoChange() { - Optional change = entry.putKeywords(Collections.emptyList(), ','); + Optional change = entry.putKeywords(List.of(), ','); assertEquals(Optional.empty(), change); } @Test void clearKeywordsReturnsChange() { entry.setField(StandardField.KEYWORDS, "Foo, Bar"); - Optional change = entry.putKeywords(Collections.emptyList(), ','); + Optional change = entry.putKeywords(List.of(), ','); assertEquals(Optional.of(new FieldChange(entry, StandardField.KEYWORDS, "Foo, Bar", null)), change); } diff --git a/src/test/java/org/jabref/model/entry/BibEntryTypeBuilderTest.java b/jablib/src/test/java/org/jabref/model/entry/BibEntryTypeBuilderTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/BibEntryTypeBuilderTest.java rename to jablib/src/test/java/org/jabref/model/entry/BibEntryTypeBuilderTest.java diff --git a/src/test/java/org/jabref/model/entry/BibEntryTypesManagerTest.java b/jablib/src/test/java/org/jabref/model/entry/BibEntryTypesManagerTest.java similarity index 92% rename from src/test/java/org/jabref/model/entry/BibEntryTypesManagerTest.java rename to jablib/src/test/java/org/jabref/model/entry/BibEntryTypesManagerTest.java index 2c6f252f351..22b3749fac2 100644 --- a/src/test/java/org/jabref/model/entry/BibEntryTypesManagerTest.java +++ b/jablib/src/test/java/org/jabref/model/entry/BibEntryTypesManagerTest.java @@ -1,8 +1,8 @@ package org.jabref.model.entry; -import java.util.Collections; import java.util.List; import java.util.Optional; +import java.util.Set; import java.util.TreeSet; import java.util.stream.Collectors; @@ -47,11 +47,11 @@ void setUp() { newCustomType = new BibEntryType( CUSTOM_TYPE, List.of(new BibField(StandardField.AUTHOR, FieldPriority.IMPORTANT)), - Collections.emptySet()); + Set.of()); overwrittenStandardType = new BibEntryType( StandardEntryType.Article, List.of(new BibField(StandardField.TITLE, FieldPriority.IMPORTANT)), - Collections.emptySet()); + Set.of()); entryTypesManager = new BibEntryTypesManager(); } @@ -101,7 +101,7 @@ void newCustomEntryTypeFound(BibDatabaseMode mode) { @EnumSource(BibDatabaseMode.class) void registeredBibEntryTypeIsContainedInListOfCustomizedEntryTypes(BibDatabaseMode mode) { entryTypesManager.addCustomOrModifiedType(newCustomType, mode); - assertEquals(Collections.singletonList(newCustomType), entryTypesManager.getAllCustomTypes(mode)); + assertEquals(List.of(newCustomType), entryTypesManager.getAllCustomTypes(mode)); } @Test @@ -116,8 +116,8 @@ void overwriteBibEntryTypeFields(BibDatabaseMode mode) { entryTypesManager.addCustomOrModifiedType(newCustomType, mode); BibEntryType newBibEntryTypeTitle = new BibEntryType( CUSTOM_TYPE, - Collections.singleton(new BibField(StandardField.TITLE, FieldPriority.IMPORTANT)), - Collections.emptySet()); + Set.of(new BibField(StandardField.TITLE, FieldPriority.IMPORTANT)), + Set.of()); entryTypesManager.addCustomOrModifiedType(newBibEntryTypeTitle, mode); assertEquals(Optional.of(newBibEntryTypeTitle), entryTypesManager.enrich(CUSTOM_TYPE, mode)); } @@ -133,7 +133,7 @@ void overwriteStandardTypeRequiredFields(BibDatabaseMode mode) { @EnumSource(BibDatabaseMode.class) void registeredCustomizedStandardEntryTypeIsNotContainedInListOfCustomEntryTypes(BibDatabaseMode mode) { entryTypesManager.addCustomOrModifiedType(overwrittenStandardType, mode); - assertEquals(Collections.emptyList(), entryTypesManager.getAllCustomTypes(mode)); + assertEquals(List.of(), entryTypesManager.getAllCustomTypes(mode)); } @ParameterizedTest @@ -177,10 +177,10 @@ void modifyingArticle(BibDatabaseMode mode) { new BibField(StandardField.NUMBER, FieldPriority.IMPORTANT), new BibField(StandardField.LANGUAGEID, FieldPriority.IMPORTANT), new BibField(StandardField.COMMENT, FieldPriority.IMPORTANT)), - Collections.emptySet()); + Set.of()); entryTypesManager.addCustomOrModifiedType(overwrittenStandardType, mode); - assertEquals(Collections.singletonList(overwrittenStandardType), entryTypesManager.getAllTypes(mode).stream().filter(t -> "article".equals(t.getType().getName())).collect(Collectors.toList())); + assertEquals(List.of(overwrittenStandardType), entryTypesManager.getAllTypes(mode).stream().filter(t -> "article".equals(t.getType().getName())).collect(Collectors.toList())); } @ParameterizedTest @@ -192,7 +192,7 @@ void modifyingArticleWithParsing(BibDatabaseMode mode) { new BibField(StandardField.NUMBER, FieldPriority.IMPORTANT), new BibField(StandardField.LANGUAGEID, FieldPriority.IMPORTANT), new BibField(StandardField.COMMENT, FieldPriority.IMPORTANT)), - Collections.emptySet()); + Set.of()); entryTypesManager.addCustomOrModifiedType(overwrittenStandardType, mode); String serialized = MetaDataSerializer.serializeCustomEntryTypes(overwrittenStandardType); @@ -210,7 +210,7 @@ void modifyingArticleWithParsingKeepsListOrder(BibDatabaseMode mode) { new BibField(StandardField.NUMBER, FieldPriority.IMPORTANT), new BibField(StandardField.LANGUAGEID, FieldPriority.IMPORTANT), new BibField(StandardField.COMMENT, FieldPriority.IMPORTANT)), - Collections.emptySet()); + Set.of()); entryTypesManager.addCustomOrModifiedType(overwrittenStandardType, mode); String serialized = MetaDataSerializer.serializeCustomEntryTypes(overwrittenStandardType); diff --git a/src/test/java/org/jabref/model/entry/BibtexStringTest.java b/jablib/src/test/java/org/jabref/model/entry/BibtexStringTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/BibtexStringTest.java rename to jablib/src/test/java/org/jabref/model/entry/BibtexStringTest.java diff --git a/src/test/java/org/jabref/model/entry/CanonicalBibEntryTest.java b/jablib/src/test/java/org/jabref/model/entry/CanonicalBibEntryTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/CanonicalBibEntryTest.java rename to jablib/src/test/java/org/jabref/model/entry/CanonicalBibEntryTest.java diff --git a/src/test/java/org/jabref/model/entry/CrossrefTest.java b/jablib/src/test/java/org/jabref/model/entry/CrossrefTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/CrossrefTest.java rename to jablib/src/test/java/org/jabref/model/entry/CrossrefTest.java diff --git a/src/test/java/org/jabref/model/entry/DateTest.java b/jablib/src/test/java/org/jabref/model/entry/DateTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/DateTest.java rename to jablib/src/test/java/org/jabref/model/entry/DateTest.java diff --git a/src/test/java/org/jabref/model/entry/EntryLinkListTest.java b/jablib/src/test/java/org/jabref/model/entry/EntryLinkListTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/EntryLinkListTest.java rename to jablib/src/test/java/org/jabref/model/entry/EntryLinkListTest.java diff --git a/src/test/java/org/jabref/model/entry/EntryTypeFactoryTest.java b/jablib/src/test/java/org/jabref/model/entry/EntryTypeFactoryTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/EntryTypeFactoryTest.java rename to jablib/src/test/java/org/jabref/model/entry/EntryTypeFactoryTest.java diff --git a/src/test/java/org/jabref/model/entry/IdGeneratorTest.java b/jablib/src/test/java/org/jabref/model/entry/IdGeneratorTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/IdGeneratorTest.java rename to jablib/src/test/java/org/jabref/model/entry/IdGeneratorTest.java diff --git a/src/test/java/org/jabref/model/entry/KeywordListTest.java b/jablib/src/test/java/org/jabref/model/entry/KeywordListTest.java similarity index 80% rename from src/test/java/org/jabref/model/entry/KeywordListTest.java rename to jablib/src/test/java/org/jabref/model/entry/KeywordListTest.java index b4c3edf57bc..033d2c26615 100644 --- a/src/test/java/org/jabref/model/entry/KeywordListTest.java +++ b/jablib/src/test/java/org/jabref/model/entry/KeywordListTest.java @@ -10,84 +10,84 @@ class KeywordListTest { private KeywordList keywords; @BeforeEach - void setUp() throws Exception { + void setUp() { keywords = new KeywordList(); keywords.add("keywordOne"); keywords.add("keywordTwo"); } @Test - void parseEmptyStringReturnsEmptyList() throws Exception { + void parseEmptyStringReturnsEmptyList() { assertEquals(new KeywordList(), KeywordList.parse("", ',')); } @Test - void parseOneWordReturnsOneKeyword() throws Exception { + void parseOneWordReturnsOneKeyword() { assertEquals(new KeywordList("keywordOne"), KeywordList.parse("keywordOne", ',')); } @Test - void parseTwoWordReturnsTwoKeywords() throws Exception { + void parseTwoWordReturnsTwoKeywords() { assertEquals(new KeywordList("keywordOne", "keywordTwo"), KeywordList.parse("keywordOne, keywordTwo", ',')); } @Test - void parseTwoWordReturnsTwoKeywordsWithoutSpace() throws Exception { + void parseTwoWordReturnsTwoKeywordsWithoutSpace() { assertEquals(new KeywordList("keywordOne", "keywordTwo"), KeywordList.parse("keywordOne,keywordTwo", ',')); } @Test - void parseTwoWordReturnsTwoKeywordsWithDifferentDelimiter() throws Exception { + void parseTwoWordReturnsTwoKeywordsWithDifferentDelimiter() { assertEquals(new KeywordList("keywordOne", "keywordTwo"), KeywordList.parse("keywordOne| keywordTwo", '|')); } @Test - void parseWordsWithWhitespaceReturnsOneKeyword() throws Exception { + void parseWordsWithWhitespaceReturnsOneKeyword() { assertEquals(new KeywordList("keyword and one"), KeywordList.parse("keyword and one", ',')); } @Test - void parseWordsWithWhitespaceAndCommaReturnsTwoKeyword() throws Exception { + void parseWordsWithWhitespaceAndCommaReturnsTwoKeyword() { assertEquals(new KeywordList("keyword and one", "and two"), KeywordList.parse("keyword and one, and two", ',')); } @Test - void parseIgnoresDuplicates() throws Exception { + void parseIgnoresDuplicates() { assertEquals(new KeywordList("keywordOne", "keywordTwo"), KeywordList.parse("keywordOne, keywordTwo, keywordOne", ',')); } @Test - void parseTakeDelimiterNotRegexWhite() throws Exception { + void parseTakeDelimiterNotRegexWhite() { assertEquals(new KeywordList("keywordOne keywordTwo", "keywordThree"), KeywordList.parse("keywordOne keywordTwoskeywordThree", 's')); } @Test - void parseWordsWithBracketsReturnsOneKeyword() throws Exception { + void parseWordsWithBracketsReturnsOneKeyword() { assertEquals(new KeywordList("[a] keyword"), KeywordList.parse("[a] keyword", ',')); } @Test - void asStringAddsSpaceAfterDelimiter() throws Exception { + void asStringAddsSpaceAfterDelimiter() { assertEquals("keywordOne, keywordTwo", keywords.getAsString(',')); } @Test - void parseHierarchicalChain() throws Exception { + void parseHierarchicalChain() { Keyword expected = Keyword.of("Parent", "Node", "Child"); assertEquals(new KeywordList(expected), KeywordList.parse("Parent > Node > Child", ',', '>')); } @Test - void parseTwoHierarchicalChains() throws Exception { + void parseTwoHierarchicalChains() { Keyword expectedOne = Keyword.of("Parent1", "Node1", "Child1"); Keyword expectedTwo = Keyword.of("Parent2", "Node2", "Child2"); diff --git a/src/test/java/org/jabref/model/entry/KeywordTest.java b/jablib/src/test/java/org/jabref/model/entry/KeywordTest.java similarity index 82% rename from src/test/java/org/jabref/model/entry/KeywordTest.java rename to jablib/src/test/java/org/jabref/model/entry/KeywordTest.java index 3557012ea4f..2651ba514f8 100644 --- a/src/test/java/org/jabref/model/entry/KeywordTest.java +++ b/jablib/src/test/java/org/jabref/model/entry/KeywordTest.java @@ -10,13 +10,13 @@ class KeywordTest { @Test - void getPathFromRootAsStringForSimpleChain() throws Exception { + void getPathFromRootAsStringForSimpleChain() { Keyword keywordChain = Keyword.of("A", "B", "C"); assertEquals("A > B", keywordChain.getChild().get().getPathFromRootAsString('>')); } @Test - void getAllSubchainsAsStringForSimpleChain() throws Exception { + void getAllSubchainsAsStringForSimpleChain() { Keyword keywordChain = Keyword.of("A", "B", "C"); Set expected = new HashSet<>(); expected.add("A"); diff --git a/src/test/java/org/jabref/model/entry/LangidTest.java b/jablib/src/test/java/org/jabref/model/entry/LangidTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/LangidTest.java rename to jablib/src/test/java/org/jabref/model/entry/LangidTest.java diff --git a/src/test/java/org/jabref/model/entry/MonthTest.java b/jablib/src/test/java/org/jabref/model/entry/MonthTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/MonthTest.java rename to jablib/src/test/java/org/jabref/model/entry/MonthTest.java diff --git a/src/test/java/org/jabref/model/entry/SeasonTest.java b/jablib/src/test/java/org/jabref/model/entry/SeasonTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/SeasonTest.java rename to jablib/src/test/java/org/jabref/model/entry/SeasonTest.java diff --git a/src/test/java/org/jabref/model/entry/field/BibFieldTest.java b/jablib/src/test/java/org/jabref/model/entry/field/BibFieldTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/field/BibFieldTest.java rename to jablib/src/test/java/org/jabref/model/entry/field/BibFieldTest.java diff --git a/src/test/java/org/jabref/model/entry/field/FieldFactoryTest.java b/jablib/src/test/java/org/jabref/model/entry/field/FieldFactoryTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/field/FieldFactoryTest.java rename to jablib/src/test/java/org/jabref/model/entry/field/FieldFactoryTest.java diff --git a/src/test/java/org/jabref/model/entry/field/SpecialFieldTest.java b/jablib/src/test/java/org/jabref/model/entry/field/SpecialFieldTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/field/SpecialFieldTest.java rename to jablib/src/test/java/org/jabref/model/entry/field/SpecialFieldTest.java diff --git a/src/test/java/org/jabref/model/entry/field/StandardFieldTest.java b/jablib/src/test/java/org/jabref/model/entry/field/StandardFieldTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/field/StandardFieldTest.java rename to jablib/src/test/java/org/jabref/model/entry/field/StandardFieldTest.java diff --git a/src/test/java/org/jabref/model/entry/field/UnknownFieldTest.java b/jablib/src/test/java/org/jabref/model/entry/field/UnknownFieldTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/field/UnknownFieldTest.java rename to jablib/src/test/java/org/jabref/model/entry/field/UnknownFieldTest.java diff --git a/src/test/java/org/jabref/model/entry/identifier/ArXivIdentifierTest.java b/jablib/src/test/java/org/jabref/model/entry/identifier/ArXivIdentifierTest.java similarity index 88% rename from src/test/java/org/jabref/model/entry/identifier/ArXivIdentifierTest.java rename to jablib/src/test/java/org/jabref/model/entry/identifier/ArXivIdentifierTest.java index fd395d54ee7..e51bf2cf4ac 100644 --- a/src/test/java/org/jabref/model/entry/identifier/ArXivIdentifierTest.java +++ b/jablib/src/test/java/org/jabref/model/entry/identifier/ArXivIdentifierTest.java @@ -1,6 +1,7 @@ package org.jabref.model.entry.identifier; import java.net.URI; +import java.net.URISyntaxException; import java.util.Optional; import org.junit.jupiter.api.Test; @@ -10,42 +11,42 @@ class ArXivIdentifierTest { @Test - void parse() throws Exception { + void parse() { Optional parsed = ArXivIdentifier.parse("0710.0994"); assertEquals(Optional.of(new ArXivIdentifier("0710.0994")), parsed); } @Test - void parseWithArXivPrefix() throws Exception { + void parseWithArXivPrefix() { Optional parsed = ArXivIdentifier.parse("arXiv:0710.0994"); assertEquals(Optional.of(new ArXivIdentifier("0710.0994")), parsed); } @Test - void parseWithArxivPrefix() throws Exception { + void parseWithArxivPrefix() { Optional parsed = ArXivIdentifier.parse("arxiv:0710.0994"); assertEquals(Optional.of(new ArXivIdentifier("0710.0994")), parsed); } @Test - void parseWithClassification() throws Exception { + void parseWithClassification() { Optional parsed = ArXivIdentifier.parse("0706.0001v1 [q-bio.CB]"); assertEquals(Optional.of(new ArXivIdentifier("0706.0001", "1", "q-bio.CB")), parsed); } @Test - void parseWithArXivPrefixAndClassification() throws Exception { + void parseWithArXivPrefixAndClassification() { Optional parsed = ArXivIdentifier.parse("arXiv:0706.0001v1 [q-bio.CB]"); assertEquals(Optional.of(new ArXivIdentifier("0706.0001", "1", "q-bio.CB")), parsed); } @Test - void parseOldIdentifier() throws Exception { + void parseOldIdentifier() { Optional parsed = ArXivIdentifier.parse("math.GT/0309136"); assertEquals(Optional.of(new ArXivIdentifier("math.GT/0309136", "math.GT")), parsed); @@ -64,49 +65,49 @@ void acceptLegacyMathEprint() { } @Test - void parseOldIdentifierWithArXivPrefix() throws Exception { + void parseOldIdentifierWithArXivPrefix() { Optional parsed = ArXivIdentifier.parse("arXiv:math.GT/0309136"); assertEquals(Optional.of(new ArXivIdentifier("math.GT/0309136", "math.GT")), parsed); } @Test - void parseUrl() throws Exception { + void parseUrl() { Optional parsed = ArXivIdentifier.parse("http://arxiv.org/abs/1502.05795"); assertEquals(Optional.of(new ArXivIdentifier("1502.05795", "")), parsed); } @Test - void parseHttpsUrl() throws Exception { + void parseHttpsUrl() { Optional parsed = ArXivIdentifier.parse("https://arxiv.org/abs/1502.05795"); assertEquals(Optional.of(new ArXivIdentifier("1502.05795", "")), parsed); } @Test - void parsePdfUrl() throws Exception { + void parsePdfUrl() { Optional parsed = ArXivIdentifier.parse("http://arxiv.org/pdf/1502.05795"); assertEquals(Optional.of(new ArXivIdentifier("1502.05795", "")), parsed); } @Test - void parseUrlWithVersion() throws Exception { + void parseUrlWithVersion() { Optional parsed = ArXivIdentifier.parse("http://arxiv.org/abs/1502.05795v1"); assertEquals(Optional.of(new ArXivIdentifier("1502.05795", "1", "")), parsed); } @Test - void parseOldUrlWithVersion() throws Exception { + void parseOldUrlWithVersion() { Optional parsed = ArXivIdentifier.parse("http://arxiv.org/pdf/hep-ex/0307015v1"); assertEquals(Optional.of(new ArXivIdentifier("hep-ex/0307015", "1", "hep-ex")), parsed); } @Test - void fourDigitDateIsInvalidInLegacyFormat() throws Exception { + void fourDigitDateIsInvalidInLegacyFormat() { Optional parsed = ArXivIdentifier.parse("2017/1118"); assertEquals(Optional.empty(), parsed); } @@ -166,7 +167,7 @@ void rejectUrlOtherDomainEprint() { } @Test - void constructCorrectURLForEprint() throws Exception { + void constructCorrectURLForEprint() throws URISyntaxException { Optional parsed = ArXivIdentifier.parse("0706.0001v1"); assertEquals(Optional.of(new URI("https://arxiv.org/abs/0706.0001v1")), parsed.get().getExternalURI()); } diff --git a/src/test/java/org/jabref/model/entry/identifier/DOITest.java b/jablib/src/test/java/org/jabref/model/entry/identifier/DOITest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/identifier/DOITest.java rename to jablib/src/test/java/org/jabref/model/entry/identifier/DOITest.java diff --git a/src/test/java/org/jabref/model/entry/identifier/ISBNTest.java b/jablib/src/test/java/org/jabref/model/entry/identifier/ISBNTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/identifier/ISBNTest.java rename to jablib/src/test/java/org/jabref/model/entry/identifier/ISBNTest.java diff --git a/src/test/java/org/jabref/model/entry/identifier/ISSNTest.java b/jablib/src/test/java/org/jabref/model/entry/identifier/ISSNTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/identifier/ISSNTest.java rename to jablib/src/test/java/org/jabref/model/entry/identifier/ISSNTest.java diff --git a/src/test/java/org/jabref/model/entry/identifier/IacrEprintTest.java b/jablib/src/test/java/org/jabref/model/entry/identifier/IacrEprintTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/identifier/IacrEprintTest.java rename to jablib/src/test/java/org/jabref/model/entry/identifier/IacrEprintTest.java diff --git a/src/test/java/org/jabref/model/entry/identifier/MathSciNetIdTest.java b/jablib/src/test/java/org/jabref/model/entry/identifier/MathSciNetIdTest.java similarity index 84% rename from src/test/java/org/jabref/model/entry/identifier/MathSciNetIdTest.java rename to jablib/src/test/java/org/jabref/model/entry/identifier/MathSciNetIdTest.java index f4d74245434..d2a06b981ae 100644 --- a/src/test/java/org/jabref/model/entry/identifier/MathSciNetIdTest.java +++ b/jablib/src/test/java/org/jabref/model/entry/identifier/MathSciNetIdTest.java @@ -9,7 +9,7 @@ class MathSciNetIdTest { @Test - void parseRemovesNewLineCharacterAtEnd() throws Exception { + void parseRemovesNewLineCharacterAtEnd() { Optional id = MathSciNetId.parse("3014184\n"); assertEquals(Optional.of(new MathSciNetId("3014184")), id); } diff --git a/src/test/java/org/jabref/model/entry/identifier/RFCTest.java b/jablib/src/test/java/org/jabref/model/entry/identifier/RFCTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/identifier/RFCTest.java rename to jablib/src/test/java/org/jabref/model/entry/identifier/RFCTest.java diff --git a/src/test/java/org/jabref/model/entry/identifier/SSRNTest.java b/jablib/src/test/java/org/jabref/model/entry/identifier/SSRNTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/identifier/SSRNTest.java rename to jablib/src/test/java/org/jabref/model/entry/identifier/SSRNTest.java diff --git a/src/test/java/org/jabref/model/entry/types/BiblatexAPAEntryTypeDefinitionsTest.java b/jablib/src/test/java/org/jabref/model/entry/types/BiblatexAPAEntryTypeDefinitionsTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/types/BiblatexAPAEntryTypeDefinitionsTest.java rename to jablib/src/test/java/org/jabref/model/entry/types/BiblatexAPAEntryTypeDefinitionsTest.java diff --git a/src/test/java/org/jabref/model/entry/types/BiblatexEntryTypeDefinitionsTest.java b/jablib/src/test/java/org/jabref/model/entry/types/BiblatexEntryTypeDefinitionsTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/types/BiblatexEntryTypeDefinitionsTest.java rename to jablib/src/test/java/org/jabref/model/entry/types/BiblatexEntryTypeDefinitionsTest.java diff --git a/src/test/java/org/jabref/model/entry/types/BiblatexSoftwareEntryTypeDefinitionsTest.java b/jablib/src/test/java/org/jabref/model/entry/types/BiblatexSoftwareEntryTypeDefinitionsTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/types/BiblatexSoftwareEntryTypeDefinitionsTest.java rename to jablib/src/test/java/org/jabref/model/entry/types/BiblatexSoftwareEntryTypeDefinitionsTest.java diff --git a/src/test/java/org/jabref/model/entry/types/BibtexEntryTypeDefinitionsTest.java b/jablib/src/test/java/org/jabref/model/entry/types/BibtexEntryTypeDefinitionsTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/types/BibtexEntryTypeDefinitionsTest.java rename to jablib/src/test/java/org/jabref/model/entry/types/BibtexEntryTypeDefinitionsTest.java diff --git a/src/test/java/org/jabref/model/entry/types/IEEETranEntryTypeDefinitionsTest.java b/jablib/src/test/java/org/jabref/model/entry/types/IEEETranEntryTypeDefinitionsTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/types/IEEETranEntryTypeDefinitionsTest.java rename to jablib/src/test/java/org/jabref/model/entry/types/IEEETranEntryTypeDefinitionsTest.java diff --git a/src/test/java/org/jabref/model/entry/types/SystematicLiteratureReviewStudyEntryTypeDefinitionsTest.java b/jablib/src/test/java/org/jabref/model/entry/types/SystematicLiteratureReviewStudyEntryTypeDefinitionsTest.java similarity index 100% rename from src/test/java/org/jabref/model/entry/types/SystematicLiteratureReviewStudyEntryTypeDefinitionsTest.java rename to jablib/src/test/java/org/jabref/model/entry/types/SystematicLiteratureReviewStudyEntryTypeDefinitionsTest.java diff --git a/src/test/java/org/jabref/model/event/EventListenerTest.java b/jablib/src/test/java/org/jabref/model/event/EventListenerTest.java similarity index 100% rename from src/test/java/org/jabref/model/event/EventListenerTest.java rename to jablib/src/test/java/org/jabref/model/event/EventListenerTest.java diff --git a/src/test/java/org/jabref/model/groups/AutomaticKeywordGroupTest.java b/jablib/src/test/java/org/jabref/model/groups/AutomaticKeywordGroupTest.java similarity index 92% rename from src/test/java/org/jabref/model/groups/AutomaticKeywordGroupTest.java rename to jablib/src/test/java/org/jabref/model/groups/AutomaticKeywordGroupTest.java index a6a84698ff2..45114a1103c 100644 --- a/src/test/java/org/jabref/model/groups/AutomaticKeywordGroupTest.java +++ b/jablib/src/test/java/org/jabref/model/groups/AutomaticKeywordGroupTest.java @@ -13,7 +13,7 @@ class AutomaticKeywordGroupTest { @Test - void createSubgroupsForTwoKeywords() throws Exception { + void createSubgroupsForTwoKeywords() { AutomaticKeywordGroup keywordsGroup = new AutomaticKeywordGroup("Keywords", GroupHierarchyType.INDEPENDENT, StandardField.KEYWORDS, ',', '>'); BibEntry entry = new BibEntry().withField(StandardField.KEYWORDS, "A, B"); @@ -23,7 +23,7 @@ void createSubgroupsForTwoKeywords() throws Exception { } @Test - void createSubgroupsIgnoresEmptyKeyword() throws Exception { + void createSubgroupsIgnoresEmptyKeyword() { AutomaticKeywordGroup keywordsGroup = new AutomaticKeywordGroup("Keywords", GroupHierarchyType.INDEPENDENT, StandardField.KEYWORDS, ',', '>'); BibEntry entry = new BibEntry().withField(StandardField.KEYWORDS, "A, ,B"); diff --git a/src/test/java/org/jabref/model/groups/AutomaticPersonsGroupTest.java b/jablib/src/test/java/org/jabref/model/groups/AutomaticPersonsGroupTest.java similarity index 100% rename from src/test/java/org/jabref/model/groups/AutomaticPersonsGroupTest.java rename to jablib/src/test/java/org/jabref/model/groups/AutomaticPersonsGroupTest.java diff --git a/src/test/java/org/jabref/model/groups/ExplicitGroupTest.java b/jablib/src/test/java/org/jabref/model/groups/ExplicitGroupTest.java similarity index 87% rename from src/test/java/org/jabref/model/groups/ExplicitGroupTest.java rename to jablib/src/test/java/org/jabref/model/groups/ExplicitGroupTest.java index e629b7dfc76..5c6831e5696 100644 --- a/src/test/java/org/jabref/model/groups/ExplicitGroupTest.java +++ b/jablib/src/test/java/org/jabref/model/groups/ExplicitGroupTest.java @@ -47,7 +47,7 @@ void addTwoGroupsToBibEntryChangesGroupsField() { } @Test - void addDuplicateGroupDoesNotChangeGroupsField() throws Exception { + void addDuplicateGroupDoesNotChangeGroupsField() { entry.setField(StandardField.GROUPS, "myExplicitGroup"); group.add(entry); assertEquals(Optional.of("myExplicitGroup"), entry.getField(StandardField.GROUPS)); @@ -55,7 +55,7 @@ void addDuplicateGroupDoesNotChangeGroupsField() throws Exception { @Test // For https://github.com/JabRef/jabref/issues/2334 - void removeDoesNotChangeFieldIfContainsNameAsPart() throws Exception { + void removeDoesNotChangeFieldIfContainsNameAsPart() { entry.setField(StandardField.GROUPS, "myExplicitGroup_alternative"); group.remove(entry); assertEquals(Optional.of("myExplicitGroup_alternative"), entry.getField(StandardField.GROUPS)); @@ -63,7 +63,7 @@ void removeDoesNotChangeFieldIfContainsNameAsPart() throws Exception { @Test // For https://github.com/JabRef/jabref/issues/2334 - void removeDoesNotChangeFieldIfContainsNameAsWord() throws Exception { + void removeDoesNotChangeFieldIfContainsNameAsWord() { entry.setField(StandardField.GROUPS, "myExplicitGroup alternative"); group.remove(entry); @@ -72,14 +72,14 @@ void removeDoesNotChangeFieldIfContainsNameAsWord() throws Exception { @Test // For https://github.com/JabRef/jabref/issues/1873 - void containsOnlyMatchesCompletePhraseWithWhitespace() throws Exception { + void containsOnlyMatchesCompletePhraseWithWhitespace() { entry.setField(StandardField.GROUPS, "myExplicitGroup b"); assertFalse(group.contains(entry)); } @Test // For https://github.com/JabRef/jabref/issues/1873 - void containsOnlyMatchesCompletePhraseWithSlash() throws Exception { + void containsOnlyMatchesCompletePhraseWithSlash() { entry.setField(StandardField.GROUPS, "myExplicitGroup/b"); assertFalse(group.contains(entry)); @@ -87,7 +87,7 @@ void containsOnlyMatchesCompletePhraseWithSlash() throws Exception { @Test // For https://github.com/JabRef/jabref/issues/2394 - void containsMatchesPhraseWithBrackets() throws Exception { + void containsMatchesPhraseWithBrackets() { entry.setField(StandardField.GROUPS, "[aa] Subgroup1"); ExplicitGroup explicitGroup = new ExplicitGroup("[aa] Subgroup1", GroupHierarchyType.INCLUDING, ','); diff --git a/src/test/java/org/jabref/model/groups/GroupTreeNodeTest.java b/jablib/src/test/java/org/jabref/model/groups/GroupTreeNodeTest.java similarity index 97% rename from src/test/java/org/jabref/model/groups/GroupTreeNodeTest.java rename to jablib/src/test/java/org/jabref/model/groups/GroupTreeNodeTest.java index 5ea7055e22b..ea9d473a941 100644 --- a/src/test/java/org/jabref/model/groups/GroupTreeNodeTest.java +++ b/jablib/src/test/java/org/jabref/model/groups/GroupTreeNodeTest.java @@ -2,7 +2,6 @@ import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.EnumSet; import java.util.List; import java.util.Optional; @@ -165,7 +164,7 @@ void getSearchRuleForIncludingGroupReturnsGroupOrSubgroupAsMatcher() { @Test void findMatchesReturnsEmptyForEmptyList() { - assertEquals(Collections.emptyList(), getNodeInSimpleTree().findMatches(Collections.emptyList())); + assertEquals(List.of(), getNodeInSimpleTree().findMatches(List.of())); } @Test @@ -308,7 +307,7 @@ void onlyRootAndChildNodeContainAtLeastOneEntry() { GroupTreeNode child = parent.addSubgroup(new ExplicitGroup("ExplicitNode", GroupHierarchyType.REFINING, ',')); BibEntry newEntry = new BibEntry().withField(StandardField.AUTHOR, "Stephen King"); - child.addEntriesToGroup(Collections.singletonList(newEntry)); + child.addEntriesToGroup(List.of(newEntry)); entries.add(newEntry); assertEquals(rootNode.getContainingGroups(entries, false), Arrays.asList(rootNode, child)); @@ -324,7 +323,7 @@ void onlySubgroupsContainAllEntries() { GroupTreeNode secondChild = parent.addSubgroup(new ExplicitGroup("ExplicitSecondNode", GroupHierarchyType.REFINING, ',')); GroupTreeNode grandChild = secondChild.addSubgroup(new ExplicitGroup("ExplicitNodeThirdLevel", GroupHierarchyType.REFINING, ',')); - parent.addEntriesToGroup(Collections.singletonList(entry)); + parent.addEntriesToGroup(List.of(entry)); firstChild.addEntriesToGroup(entries); secondChild.addEntriesToGroup(entries); grandChild.addEntriesToGroup(entries); @@ -336,7 +335,7 @@ void addEntriesToGroupWorksNotForGroupsNotSupportingExplicitAddingOfEntries() { GroupTreeNode searchGroup = new GroupTreeNode(new SearchGroup("Search A", GroupHierarchyType.INCLUDING, "searchExpression", EnumSet.of(SearchFlags.CASE_SENSITIVE))); List fieldChanges = searchGroup.addEntriesToGroup(entries); - assertEquals(Collections.emptyList(), fieldChanges); + assertEquals(List.of(), fieldChanges); } @Test @@ -344,6 +343,6 @@ void removeEntriesFromGroupWorksNotForGroupsNotSupportingExplicitRemovalOfEntrie GroupTreeNode searchGroup = new GroupTreeNode(new SearchGroup("Search A", GroupHierarchyType.INCLUDING, "searchExpression", EnumSet.of(SearchFlags.CASE_SENSITIVE))); List fieldChanges = searchGroup.removeEntriesFromGroup(entries); - assertEquals(Collections.emptyList(), fieldChanges); + assertEquals(List.of(), fieldChanges); } } diff --git a/src/test/java/org/jabref/model/groups/TexGroupTest.java b/jablib/src/test/java/org/jabref/model/groups/TexGroupTest.java similarity index 86% rename from src/test/java/org/jabref/model/groups/TexGroupTest.java rename to jablib/src/test/java/org/jabref/model/groups/TexGroupTest.java index c4ce616f6d3..a18915432a9 100644 --- a/src/test/java/org/jabref/model/groups/TexGroupTest.java +++ b/jablib/src/test/java/org/jabref/model/groups/TexGroupTest.java @@ -1,5 +1,7 @@ package org.jabref.model.groups; +import java.io.IOException; +import java.net.URISyntaxException; import java.nio.file.Path; import org.jabref.architecture.AllowedToUseLogic; @@ -22,12 +24,12 @@ class TexGroupTest { private MetaData metaData; @BeforeEach - void setUp() throws Exception { + void setUp() { metaData = new MetaData(); } @Test - void containsReturnsTrueForEntryInAux() throws Exception { + void containsReturnsTrueForEntryInAux() throws IOException, URISyntaxException { Path auxFile = Path.of(TexGroupTest.class.getResource("paper.aux").toURI()); TexGroup group = new TexGroup("paper", GroupHierarchyType.INDEPENDENT, auxFile, new DefaultAuxParser(new BibDatabase()), new DummyFileUpdateMonitor(), metaData); BibEntry inAux = new BibEntry(); @@ -37,7 +39,7 @@ void containsReturnsTrueForEntryInAux() throws Exception { } @Test - void containsReturnsTrueForEntryNotInAux() throws Exception { + void containsReturnsTrueForEntryNotInAux() throws IOException, URISyntaxException { Path auxFile = Path.of(TexGroupTest.class.getResource("paper.aux").toURI()); TexGroup group = new TexGroup("paper", GroupHierarchyType.INDEPENDENT, auxFile, new DefaultAuxParser(new BibDatabase()), new DummyFileUpdateMonitor(), metaData); BibEntry notInAux = new BibEntry(); @@ -47,7 +49,7 @@ void containsReturnsTrueForEntryNotInAux() throws Exception { } @Test - void getFilePathReturnsRelativePath() throws Exception { + void getFilePathReturnsRelativePath() throws URISyntaxException { Path auxFile = Path.of(TexGroupTest.class.getResource("paper.aux").toURI()); String user = "Darwin"; metaData.setLatexFileDirectory(user, auxFile.getParent()); diff --git a/src/test/java/org/jabref/model/groups/WordKeywordGroupTest.java b/jablib/src/test/java/org/jabref/model/groups/WordKeywordGroupTest.java similarity index 80% rename from src/test/java/org/jabref/model/groups/WordKeywordGroupTest.java rename to jablib/src/test/java/org/jabref/model/groups/WordKeywordGroupTest.java index a9b453a99c5..0fd6fbd4f90 100644 --- a/src/test/java/org/jabref/model/groups/WordKeywordGroupTest.java +++ b/jablib/src/test/java/org/jabref/model/groups/WordKeywordGroupTest.java @@ -35,63 +35,63 @@ void containsFindsSameWord() { } @Test - void containsFindsWordInSentence() throws Exception { + void containsFindsWordInSentence() { entry.setField(StandardField.KEYWORDS, "Some sentence containing test word"); assertTrue(testGroup.contains(entry)); } @Test - void containsFindsWordInCommaSeparatedList() throws Exception { + void containsFindsWordInCommaSeparatedList() { entry.setField(StandardField.KEYWORDS, "Some,list,containing,test,word"); assertTrue(testGroup.contains(entry)); } @Test - void containsFindsWordInSemicolonSeparatedList() throws Exception { + void containsFindsWordInSemicolonSeparatedList() { entry.setField(StandardField.KEYWORDS, "Some;list;containing;test;word"); assertTrue(testGroup.contains(entry)); } @Test - void containsFindsSameComplexWord() throws Exception { + void containsFindsSameComplexWord() { entry.setField(StandardField.KEYWORDS, "\\H2O"); assertTrue(waterGroup.contains(entry)); } @Test - void containsFindsComplexWordInSentence() throws Exception { + void containsFindsComplexWordInSentence() { entry.setField(StandardField.KEYWORDS, "Some sentence containing \\H2O word"); assertTrue(waterGroup.contains(entry)); } @Test - void containsDoesNotFindWordIfCaseDiffers() throws Exception { + void containsDoesNotFindWordIfCaseDiffers() { entry.setField(StandardField.KEYWORDS, "Test"); assertFalse(testCaseSensitiveGroup.contains(entry)); } @Test - void containsDoesNotFindsWordInSentenceIfCaseDiffers() throws Exception { + void containsDoesNotFindsWordInSentenceIfCaseDiffers() { entry.setField(StandardField.KEYWORDS, "Some sentence containing Test word"); assertFalse(testCaseSensitiveGroup.contains(entry)); } @Test - void addChangesFieldIfEmptyBefore() throws Exception { + void addChangesFieldIfEmptyBefore() { testGroup.add(entry); assertEquals(Optional.of("test"), entry.getField(StandardField.KEYWORDS)); } @Test - void addChangesFieldIfNotEmptyBefore() throws Exception { + void addChangesFieldIfNotEmptyBefore() { entry.setField(StandardField.KEYWORDS, "bla, blubb"); testGroup.add(entry); @@ -99,7 +99,7 @@ void addChangesFieldIfNotEmptyBefore() throws Exception { } @Test - void addDoesNotAddDuplicate() throws Exception { + void addDoesNotAddDuplicate() { entry.setField(StandardField.KEYWORDS, "test, blubb"); testGroup.add(entry); @@ -107,7 +107,7 @@ void addDoesNotAddDuplicate() throws Exception { } @Test - void removeDoesNothingIfEntryNotMatched() throws Exception { + void removeDoesNothingIfEntryNotMatched() { entry.setField(StandardField.KEYWORDS, "something"); testGroup.remove(entry); @@ -115,7 +115,7 @@ void removeDoesNothingIfEntryNotMatched() throws Exception { } @Test - void removeRemovesNameFromField() throws Exception { + void removeRemovesNameFromField() { entry.setField(StandardField.KEYWORDS, "test, blubb"); testGroup.remove(entry); diff --git a/src/test/java/org/jabref/model/metadata/MetaDataTest.java b/jablib/src/test/java/org/jabref/model/metadata/MetaDataTest.java similarity index 100% rename from src/test/java/org/jabref/model/metadata/MetaDataTest.java rename to jablib/src/test/java/org/jabref/model/metadata/MetaDataTest.java diff --git a/src/test/java/org/jabref/model/openoffice/CitationEntryTest.java b/jablib/src/test/java/org/jabref/model/openoffice/CitationEntryTest.java similarity index 100% rename from src/test/java/org/jabref/model/openoffice/CitationEntryTest.java rename to jablib/src/test/java/org/jabref/model/openoffice/CitationEntryTest.java diff --git a/src/test/java/org/jabref/model/paging/PageTest.java b/jablib/src/test/java/org/jabref/model/paging/PageTest.java similarity index 100% rename from src/test/java/org/jabref/model/paging/PageTest.java rename to jablib/src/test/java/org/jabref/model/paging/PageTest.java diff --git a/src/test/java/org/jabref/model/pdf/FileAnnotationTest.java b/jablib/src/test/java/org/jabref/model/pdf/FileAnnotationTest.java similarity index 100% rename from src/test/java/org/jabref/model/pdf/FileAnnotationTest.java rename to jablib/src/test/java/org/jabref/model/pdf/FileAnnotationTest.java diff --git a/src/test/java/org/jabref/model/search/matchers/MatcherSetsTest.java b/jablib/src/test/java/org/jabref/model/search/matchers/MatcherSetsTest.java similarity index 100% rename from src/test/java/org/jabref/model/search/matchers/MatcherSetsTest.java rename to jablib/src/test/java/org/jabref/model/search/matchers/MatcherSetsTest.java diff --git a/src/test/java/org/jabref/model/search/rules/MockSearchMatcher.java b/jablib/src/test/java/org/jabref/model/search/rules/MockSearchMatcher.java similarity index 100% rename from src/test/java/org/jabref/model/search/rules/MockSearchMatcher.java rename to jablib/src/test/java/org/jabref/model/search/rules/MockSearchMatcher.java diff --git a/src/test/java/org/jabref/model/strings/StringUtilTest.java b/jablib/src/test/java/org/jabref/model/strings/StringUtilTest.java similarity index 99% rename from src/test/java/org/jabref/model/strings/StringUtilTest.java rename to jablib/src/test/java/org/jabref/model/strings/StringUtilTest.java index 5adf4d6f9e3..accd5067e98 100644 --- a/src/test/java/org/jabref/model/strings/StringUtilTest.java +++ b/jablib/src/test/java/org/jabref/model/strings/StringUtilTest.java @@ -1,5 +1,6 @@ package org.jabref.model.strings; +import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; @@ -21,7 +22,7 @@ class StringUtilTest { @Test - void StringUtilClassIsSmall() throws Exception { + void StringUtilClassIsSmall() throws IOException { Path path = Path.of("src", "main", "java", StringUtil.class.getName().replace('.', '/') + ".java"); int lineCount = Files.readAllLines(path, StandardCharsets.UTF_8).size(); diff --git a/src/test/java/org/jabref/model/texparser/CitationTest.java b/jablib/src/test/java/org/jabref/model/texparser/CitationTest.java similarity index 100% rename from src/test/java/org/jabref/model/texparser/CitationTest.java rename to jablib/src/test/java/org/jabref/model/texparser/CitationTest.java diff --git a/src/test/java/org/jabref/performance/BibtexEntryGenerator.java b/jablib/src/test/java/org/jabref/performance/BibtexEntryGenerator.java similarity index 100% rename from src/test/java/org/jabref/performance/BibtexEntryGenerator.java rename to jablib/src/test/java/org/jabref/performance/BibtexEntryGenerator.java diff --git a/src/test/java/org/jabref/preferences/CitationCommandStringTest.java b/jablib/src/test/java/org/jabref/preferences/CitationCommandStringTest.java similarity index 100% rename from src/test/java/org/jabref/preferences/CitationCommandStringTest.java rename to jablib/src/test/java/org/jabref/preferences/CitationCommandStringTest.java diff --git a/src/test/java/org/jabref/testutils/category/DatabaseTest.java b/jablib/src/test/java/org/jabref/testutils/category/DatabaseTest.java similarity index 100% rename from src/test/java/org/jabref/testutils/category/DatabaseTest.java rename to jablib/src/test/java/org/jabref/testutils/category/DatabaseTest.java diff --git a/src/test/java/org/jabref/testutils/category/FetcherTest.java b/jablib/src/test/java/org/jabref/testutils/category/FetcherTest.java similarity index 100% rename from src/test/java/org/jabref/testutils/category/FetcherTest.java rename to jablib/src/test/java/org/jabref/testutils/category/FetcherTest.java diff --git a/src/test/resources/.gitignore b/jablib/src/test/resources/.gitignore similarity index 100% rename from src/test/resources/.gitignore rename to jablib/src/test/resources/.gitignore diff --git a/src/test/resources/junit-platform.properties b/jablib/src/test/resources/junit-platform.properties similarity index 100% rename from src/test/resources/junit-platform.properties rename to jablib/src/test/resources/junit-platform.properties diff --git a/src/test/resources/org/jabref/bibtexFiles/test.bib b/jablib/src/test/resources/org/jabref/bibtexFiles/test.bib similarity index 100% rename from src/test/resources/org/jabref/bibtexFiles/test.bib rename to jablib/src/test/resources/org/jabref/bibtexFiles/test.bib diff --git a/src/test/resources/org/jabref/customPreferences.xml b/jablib/src/test/resources/org/jabref/customPreferences.xml similarity index 100% rename from src/test/resources/org/jabref/customPreferences.xml rename to jablib/src/test/resources/org/jabref/customPreferences.xml diff --git a/src/test/resources/org/jabref/logic/auxparser/badpaper.aux b/jablib/src/test/resources/org/jabref/logic/auxparser/badpaper.aux similarity index 100% rename from src/test/resources/org/jabref/logic/auxparser/badpaper.aux rename to jablib/src/test/resources/org/jabref/logic/auxparser/badpaper.aux diff --git a/src/test/resources/org/jabref/logic/auxparser/config.bib b/jablib/src/test/resources/org/jabref/logic/auxparser/config.bib similarity index 100% rename from src/test/resources/org/jabref/logic/auxparser/config.bib rename to jablib/src/test/resources/org/jabref/logic/auxparser/config.bib diff --git a/src/test/resources/org/jabref/logic/auxparser/crossref.aux b/jablib/src/test/resources/org/jabref/logic/auxparser/crossref.aux similarity index 100% rename from src/test/resources/org/jabref/logic/auxparser/crossref.aux rename to jablib/src/test/resources/org/jabref/logic/auxparser/crossref.aux diff --git a/src/test/resources/org/jabref/logic/auxparser/nested.aux b/jablib/src/test/resources/org/jabref/logic/auxparser/nested.aux similarity index 100% rename from src/test/resources/org/jabref/logic/auxparser/nested.aux rename to jablib/src/test/resources/org/jabref/logic/auxparser/nested.aux diff --git a/src/test/resources/org/jabref/logic/auxparser/origin.bib b/jablib/src/test/resources/org/jabref/logic/auxparser/origin.bib similarity index 100% rename from src/test/resources/org/jabref/logic/auxparser/origin.bib rename to jablib/src/test/resources/org/jabref/logic/auxparser/origin.bib diff --git a/src/test/resources/org/jabref/logic/auxparser/paper.aux b/jablib/src/test/resources/org/jabref/logic/auxparser/paper.aux similarity index 100% rename from src/test/resources/org/jabref/logic/auxparser/paper.aux rename to jablib/src/test/resources/org/jabref/logic/auxparser/paper.aux diff --git a/src/test/resources/org/jabref/logic/auxparser/papertwoargmacro.aux b/jablib/src/test/resources/org/jabref/logic/auxparser/papertwoargmacro.aux similarity index 100% rename from src/test/resources/org/jabref/logic/auxparser/papertwoargmacro.aux rename to jablib/src/test/resources/org/jabref/logic/auxparser/papertwoargmacro.aux diff --git a/src/test/resources/org/jabref/logic/auxparser/result.bib b/jablib/src/test/resources/org/jabref/logic/auxparser/result.bib similarity index 100% rename from src/test/resources/org/jabref/logic/auxparser/result.bib rename to jablib/src/test/resources/org/jabref/logic/auxparser/result.bib diff --git a/src/test/resources/org/jabref/logic/blg/Chocolate.blg b/jablib/src/test/resources/org/jabref/logic/blg/Chocolate.blg similarity index 100% rename from src/test/resources/org/jabref/logic/blg/Chocolate.blg rename to jablib/src/test/resources/org/jabref/logic/blg/Chocolate.blg diff --git a/src/main/resources/bst/IEEEtran.bst b/jablib/src/test/resources/org/jabref/logic/bst/IEEEtran.bst similarity index 100% rename from src/main/resources/bst/IEEEtran.bst rename to jablib/src/test/resources/org/jabref/logic/bst/IEEEtran.bst diff --git a/src/test/resources/org/jabref/logic/bst/abbrv.bst b/jablib/src/test/resources/org/jabref/logic/bst/abbrv.bst similarity index 100% rename from src/test/resources/org/jabref/logic/bst/abbrv.bst rename to jablib/src/test/resources/org/jabref/logic/bst/abbrv.bst diff --git a/src/test/resources/org/jabref/logic/citationstyle/ieee-bold-author.csl b/jablib/src/test/resources/org/jabref/logic/citationstyle/ieee-bold-author.csl similarity index 100% rename from src/test/resources/org/jabref/logic/citationstyle/ieee-bold-author.csl rename to jablib/src/test/resources/org/jabref/logic/citationstyle/ieee-bold-author.csl diff --git a/src/test/resources/org/jabref/logic/citationstyle/literatura.csl b/jablib/src/test/resources/org/jabref/logic/citationstyle/literatura.csl similarity index 100% rename from src/test/resources/org/jabref/logic/citationstyle/literatura.csl rename to jablib/src/test/resources/org/jabref/logic/citationstyle/literatura.csl diff --git a/src/test/resources/org/jabref/logic/citationstyle/modified-apa.csl b/jablib/src/test/resources/org/jabref/logic/citationstyle/modified-apa.csl similarity index 100% rename from src/test/resources/org/jabref/logic/citationstyle/modified-apa.csl rename to jablib/src/test/resources/org/jabref/logic/citationstyle/modified-apa.csl diff --git a/src/test/resources/org/jabref/logic/crawler/ArXivQuantumMock.bib b/jablib/src/test/resources/org/jabref/logic/crawler/ArXivQuantumMock.bib similarity index 100% rename from src/test/resources/org/jabref/logic/crawler/ArXivQuantumMock.bib rename to jablib/src/test/resources/org/jabref/logic/crawler/ArXivQuantumMock.bib diff --git a/src/test/resources/org/jabref/logic/crawler/SpringerCloud ComputingMock.bib b/jablib/src/test/resources/org/jabref/logic/crawler/SpringerCloud ComputingMock.bib similarity index 100% rename from src/test/resources/org/jabref/logic/crawler/SpringerCloud ComputingMock.bib rename to jablib/src/test/resources/org/jabref/logic/crawler/SpringerCloud ComputingMock.bib diff --git a/src/test/resources/org/jabref/logic/crawler/SpringerQuantumMock.bib b/jablib/src/test/resources/org/jabref/logic/crawler/SpringerQuantumMock.bib similarity index 100% rename from src/test/resources/org/jabref/logic/crawler/SpringerQuantumMock.bib rename to jablib/src/test/resources/org/jabref/logic/crawler/SpringerQuantumMock.bib diff --git a/src/test/resources/org/jabref/logic/crawler/study-jabref-5.7.yml b/jablib/src/test/resources/org/jabref/logic/crawler/study-jabref-5.7.yml similarity index 100% rename from src/test/resources/org/jabref/logic/crawler/study-jabref-5.7.yml rename to jablib/src/test/resources/org/jabref/logic/crawler/study-jabref-5.7.yml diff --git a/src/test/resources/org/jabref/logic/crawler/study.yml b/jablib/src/test/resources/org/jabref/logic/crawler/study.yml similarity index 100% rename from src/test/resources/org/jabref/logic/crawler/study.yml rename to jablib/src/test/resources/org/jabref/logic/crawler/study.yml diff --git a/src/test/resources/org/jabref/logic/exporter/Docbook5ExportFormat.xml b/jablib/src/test/resources/org/jabref/logic/exporter/Docbook5ExportFormat.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/Docbook5ExportFormat.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/Docbook5ExportFormat.xml diff --git a/src/test/resources/org/jabref/logic/exporter/EndnoteXmlExportTestMultipleEntries.bib b/jablib/src/test/resources/org/jabref/logic/exporter/EndnoteXmlExportTestMultipleEntries.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/EndnoteXmlExportTestMultipleEntries.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/EndnoteXmlExportTestMultipleEntries.bib diff --git a/src/test/resources/org/jabref/logic/exporter/EndnoteXmlExportTestMultipleEntries.xml b/jablib/src/test/resources/org/jabref/logic/exporter/EndnoteXmlExportTestMultipleEntries.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/EndnoteXmlExportTestMultipleEntries.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/EndnoteXmlExportTestMultipleEntries.xml diff --git a/src/test/resources/org/jabref/logic/exporter/EndnoteXmlExportTestSingleBookEntry.bib b/jablib/src/test/resources/org/jabref/logic/exporter/EndnoteXmlExportTestSingleBookEntry.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/EndnoteXmlExportTestSingleBookEntry.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/EndnoteXmlExportTestSingleBookEntry.bib diff --git a/src/test/resources/org/jabref/logic/exporter/EndnoteXmlExportTestSingleBookEntry.xml b/jablib/src/test/resources/org/jabref/logic/exporter/EndnoteXmlExportTestSingleBookEntry.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/EndnoteXmlExportTestSingleBookEntry.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/EndnoteXmlExportTestSingleBookEntry.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MSBibXmlTest.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MSBibXmlTest.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MSBibXmlTest.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MSBibXmlTest.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MSBibXmlTest.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MSBibXmlTest.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MSBibXmlTest.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MSBibXmlTest.xml diff --git a/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestAllFields.bib b/jablib/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestAllFields.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestAllFields.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestAllFields.bib diff --git a/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestAllFields.xml b/jablib/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestAllFields.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestAllFields.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestAllFields.xml diff --git a/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestBook.bib b/jablib/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestBook.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestBook.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestBook.bib diff --git a/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestBook.xml b/jablib/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestBook.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestBook.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestBook.xml diff --git a/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestMultipleEntries.bib b/jablib/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestMultipleEntries.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestMultipleEntries.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestMultipleEntries.bib diff --git a/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestMultipleEntries.xml b/jablib/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestMultipleEntries.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestMultipleEntries.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestMultipleEntries.xml diff --git a/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestOnlyRequiredFields.bib b/jablib/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestOnlyRequiredFields.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestOnlyRequiredFields.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestOnlyRequiredFields.bib diff --git a/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestOnlyRequiredFields.xml b/jablib/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestOnlyRequiredFields.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestOnlyRequiredFields.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestOnlyRequiredFields.xml diff --git a/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestTotalPages.bib b/jablib/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestTotalPages.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestTotalPages.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestTotalPages.bib diff --git a/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestTotalPages.xml b/jablib/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestTotalPages.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestTotalPages.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/ModsExportFormatTestTotalPages.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest1.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest1.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest1.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest1.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest1.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest1.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest1.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest1.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest1BibTexString.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest1BibTexString.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest1BibTexString.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest1BibTexString.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest1BibTexString.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest1BibTexString.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest1BibTexString.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest1BibTexString.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest2.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest2.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest2.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest2.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest2.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest2.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest2.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest2.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest3.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest3.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest3.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest3.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest3.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest3.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest3.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest3.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest4.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest4.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest4.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest4.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest4.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest4.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest4.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest4.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest5.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest5.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest5.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest5.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest5.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest5.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest5.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest5.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest6.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest6.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest6.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest6.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest6.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest6.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest6.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest6.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest7.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest7.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest7.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest7.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest7.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest7.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest7.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTest7.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestAddressWithoutComma.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestAddressWithoutComma.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestAddressWithoutComma.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestAddressWithoutComma.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestAddressWithoutComma.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestAddressWithoutComma.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestAddressWithoutComma.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestAddressWithoutComma.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestCorporateAuthor.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestCorporateAuthor.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestCorporateAuthor.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestCorporateAuthor.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestCorporateAuthor.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestCorporateAuthor.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestCorporateAuthor.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestCorporateAuthor.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDateAcessed.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDateAcessed.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDateAcessed.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDateAcessed.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDateAcessed.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDateAcessed.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDateAcessed.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDateAcessed.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDay.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDay.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDay.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDay.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDay.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDay.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDay.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDay.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDayBiblatex.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDayBiblatex.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDayBiblatex.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDayBiblatex.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDayBiblatex.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDayBiblatex.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDayBiblatex.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestDayBiblatex.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestLatexFree.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestLatexFree.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestLatexFree.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestLatexFree.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestLatexFree.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestLatexFree.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestLatexFree.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatTestLatexFree.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatUmlauts.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatUmlauts.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatUmlauts.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatUmlauts.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatUmlauts.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatUmlauts.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibExportFormatUmlauts.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibExportFormatUmlauts.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibKeyTest.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibKeyTest.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibKeyTest.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibKeyTest.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibKeyTest.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibKeyTest.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibKeyTest.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibKeyTest.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibLCID.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibLCID.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibLCID.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibLCID.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibLCID.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibLCID.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibLCID.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibLCID.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibLocationTest.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibLocationTest.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibLocationTest.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibLocationTest.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibLocationTest.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibLocationTest.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibLocationTest.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibLocationTest.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibMultiAddressTest.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibMultiAddressTest.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibMultiAddressTest.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibMultiAddressTest.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibMultiAddressTest.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibMultiAddressTest.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibMultiAddressTest.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibMultiAddressTest.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibPatent.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibPatent.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibPatent.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibPatent.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibPatent.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibPatent.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibPatent.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibPatent.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibShorttitle.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibShorttitle.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibShorttitle.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibShorttitle.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibShorttitle.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibShorttitle.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibShorttitle.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibShorttitle.xml diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibUrlDate.bib b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibUrlDate.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibUrlDate.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibUrlDate.bib diff --git a/src/test/resources/org/jabref/logic/exporter/MsBibUrlDate.xml b/jablib/src/test/resources/org/jabref/logic/exporter/MsBibUrlDate.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/MsBibUrlDate.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/MsBibUrlDate.xml diff --git a/src/test/resources/org/jabref/logic/exporter/OldOpenOfficeCalcExportFormatContentSingleEntry.bib b/jablib/src/test/resources/org/jabref/logic/exporter/OldOpenOfficeCalcExportFormatContentSingleEntry.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/OldOpenOfficeCalcExportFormatContentSingleEntry.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/OldOpenOfficeCalcExportFormatContentSingleEntry.bib diff --git a/src/test/resources/org/jabref/logic/exporter/OldOpenOfficeCalcExportFormatContentSingleEntry.xml b/jablib/src/test/resources/org/jabref/logic/exporter/OldOpenOfficeCalcExportFormatContentSingleEntry.xml similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/OldOpenOfficeCalcExportFormatContentSingleEntry.xml rename to jablib/src/test/resources/org/jabref/logic/exporter/OldOpenOfficeCalcExportFormatContentSingleEntry.xml diff --git a/src/test/resources/org/jabref/logic/exporter/encoding-utf-8-with-header-with-databasetypecomment.bib b/jablib/src/test/resources/org/jabref/logic/exporter/encoding-utf-8-with-header-with-databasetypecomment.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/encoding-utf-8-with-header-with-databasetypecomment.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/encoding-utf-8-with-header-with-databasetypecomment.bib diff --git a/src/test/resources/org/jabref/logic/exporter/encoding-utf-8-without-header-with-databasetypecomment.bib b/jablib/src/test/resources/org/jabref/logic/exporter/encoding-utf-8-without-header-with-databasetypecomment.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/encoding-utf-8-without-header-with-databasetypecomment.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/encoding-utf-8-without-header-with-databasetypecomment.bib diff --git a/src/test/resources/org/jabref/logic/exporter/encoding-windows-1252-with-header.bib b/jablib/src/test/resources/org/jabref/logic/exporter/encoding-windows-1252-with-header.bib similarity index 100% rename from src/test/resources/org/jabref/logic/exporter/encoding-windows-1252-with-header.bib rename to jablib/src/test/resources/org/jabref/logic/exporter/encoding-windows-1252-with-header.bib diff --git a/src/test/resources/org/jabref/logic/importer/encoding-header.bib b/jablib/src/test/resources/org/jabref/logic/importer/encoding-header.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/encoding-header.bib rename to jablib/src/test/resources/org/jabref/logic/importer/encoding-header.bib diff --git a/src/test/resources/org/jabref/logic/importer/encodingWithoutNewline.bib b/jablib/src/test/resources/org/jabref/logic/importer/encodingWithoutNewline.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/encodingWithoutNewline.bib rename to jablib/src/test/resources/org/jabref/logic/importer/encodingWithoutNewline.bib diff --git a/src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_empty_result.xml b/jablib/src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_empty_result.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_empty_result.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_empty_result.xml diff --git a/src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_multiple_results.xml b/jablib/src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_multiple_results.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_multiple_results.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_multiple_results.xml diff --git a/src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_multiple_results_first_result.bib b/jablib/src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_multiple_results_first_result.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_multiple_results_first_result.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_multiple_results_first_result.bib diff --git a/src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_multiple_results_second_result.bib b/jablib/src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_multiple_results_second_result.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_multiple_results_second_result.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_multiple_results_second_result.bib diff --git a/src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_single_result.bib b/jablib/src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_single_result.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_single_result.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_single_result.bib diff --git a/src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_single_result.xml b/jablib/src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_single_result.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_single_result.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fetcher/collection_of_computer_science_bibliographies_single_result.xml diff --git a/src/test/resources/org/jabref/logic/importer/fetcher/gvk_artificial_subtitle_test.xml b/jablib/src/test/resources/org/jabref/logic/importer/fetcher/gvk_artificial_subtitle_test.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fetcher/gvk_artificial_subtitle_test.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fetcher/gvk_artificial_subtitle_test.xml diff --git a/src/test/resources/org/jabref/logic/importer/fetcher/gvk_empty_result_because_of_bad_query.xml b/jablib/src/test/resources/org/jabref/logic/importer/fetcher/gvk_empty_result_because_of_bad_query.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fetcher/gvk_empty_result_because_of_bad_query.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fetcher/gvk_empty_result_because_of_bad_query.xml diff --git a/src/test/resources/org/jabref/logic/importer/fetcher/gvk_gmp.1.bib b/jablib/src/test/resources/org/jabref/logic/importer/fetcher/gvk_gmp.1.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fetcher/gvk_gmp.1.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fetcher/gvk_gmp.1.bib diff --git a/src/test/resources/org/jabref/logic/importer/fetcher/gvk_gmp.2.bib b/jablib/src/test/resources/org/jabref/logic/importer/fetcher/gvk_gmp.2.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fetcher/gvk_gmp.2.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fetcher/gvk_gmp.2.bib diff --git a/src/test/resources/org/jabref/logic/importer/fetcher/gvk_gmp.xml b/jablib/src/test/resources/org/jabref/logic/importer/fetcher/gvk_gmp.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fetcher/gvk_gmp.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fetcher/gvk_gmp.xml diff --git a/src/test/resources/org/jabref/logic/importer/fetcher/gvk_result_for_797485368.bib b/jablib/src/test/resources/org/jabref/logic/importer/fetcher/gvk_result_for_797485368.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fetcher/gvk_result_for_797485368.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fetcher/gvk_result_for_797485368.bib diff --git a/src/test/resources/org/jabref/logic/importer/fetcher/gvk_result_for_797485368.xml b/jablib/src/test/resources/org/jabref/logic/importer/fetcher/gvk_result_for_797485368.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fetcher/gvk_result_for_797485368.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fetcher/gvk_result_for_797485368.xml diff --git a/src/test/resources/org/jabref/logic/importer/fetcher/mathscinet.json b/jablib/src/test/resources/org/jabref/logic/importer/fetcher/mathscinet.json similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fetcher/mathscinet.json rename to jablib/src/test/resources/org/jabref/logic/importer/fetcher/mathscinet.json diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/AutosavedSharedDatabase.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/AutosavedSharedDatabase.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/AutosavedSharedDatabase.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/AutosavedSharedDatabase.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestArticleST.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestArticleST.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestArticleST.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestArticleST.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestArticleST.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestArticleST.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestArticleST.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestArticleST.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestComments.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestComments.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestComments.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestComments.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestComments.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestComments.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestComments.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestComments.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestCorrupt.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestCorrupt.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestCorrupt.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestCorrupt.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestInbook.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestInbook.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestInbook.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestInbook.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestInbook.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestInbook.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestInbook.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestInbook.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestJournalArticle.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestJournalArticle.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestJournalArticle.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestJournalArticle.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestJournalArticle.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestJournalArticle.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestJournalArticle.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestJournalArticle.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestKeywords.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestKeywords.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestKeywords.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestKeywords.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestKeywords.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestKeywords.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestKeywords.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestKeywords.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestOptionalFields.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestOptionalFields.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestOptionalFields.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestOptionalFields.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestOptionalFields.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestOptionalFields.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestOptionalFields.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestOptionalFields.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestUnknownFields.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestUnknownFields.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestUnknownFields.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestUnknownFields.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestUnknownFields.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestUnknownFields.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestUnknownFields.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestUnknownFields.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestUnknownType.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestUnknownType.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestUnknownType.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestUnknownType.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestUnknownType.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestUnknownType.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestUnknownType.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/BiblioscapeImporterTestUnknownType.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/BibtexImporter.examples.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/BibtexImporter.examples.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/BibtexImporter.examples.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/BibtexImporter.examples.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CITATION.cff b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CITATION.cff similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CITATION.cff rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CITATION.cff diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterPreferredCitation.cff b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterPreferredCitation.cff similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CffImporterPreferredCitation.cff rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterPreferredCitation.cff diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterReferences.cff b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterReferences.cff similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CffImporterReferences.cff rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterReferences.cff diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestDataset.cff b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestDataset.cff similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestDataset.cff rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestDataset.cff diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestDoiSelect.cff b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestDoiSelect.cff similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestDoiSelect.cff rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestDoiSelect.cff diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestInvalid1.cff b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestInvalid1.cff similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestInvalid1.cff rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestInvalid1.cff diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestInvalid2.cff b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestInvalid2.cff similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestInvalid2.cff rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestInvalid2.cff diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestMultilineAbstract.cff b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestMultilineAbstract.cff similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestMultilineAbstract.cff rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestMultilineAbstract.cff diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestUnknownFields.cff b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestUnknownFields.cff similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestUnknownFields.cff rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestUnknownFields.cff diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestValid.cff b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestValid.cff similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestValid.cff rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestValid.cff diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestValidMultAuthors.cff b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestValidMultAuthors.cff similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestValidMultAuthors.cff rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestValidMultAuthors.cff diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestValidSwhIdSelect1.cff b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestValidSwhIdSelect1.cff similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestValidSwhIdSelect1.cff rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestValidSwhIdSelect1.cff diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestValidSwhIdSelect2.cff b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestValidSwhIdSelect2.cff similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestValidSwhIdSelect2.cff rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CffImporterTestValidSwhIdSelect2.cff diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest1.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest1.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest1.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest1.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest1.ctv6bak b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest1.ctv6bak similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest1.ctv6bak rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest1.ctv6bak diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest2.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest2.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest2.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest2.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest2.ctv6bak b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest2.ctv6bak similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest2.ctv6bak rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest2.ctv6bak diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest3.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest3.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest3.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest3.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest3.ctv6bak b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest3.ctv6bak similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest3.ctv6bak rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest3.ctv6bak diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest4.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest4.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest4.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest4.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest4.ctv6bak b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest4.ctv6bak similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest4.ctv6bak rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CitaviXmlImporterTest4.ctv6bak diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CopacImporterTest1.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CopacImporterTest1.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CopacImporterTest1.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CopacImporterTest1.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CopacImporterTest1.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CopacImporterTest1.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CopacImporterTest1.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CopacImporterTest1.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CopacImporterTest2.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CopacImporterTest2.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CopacImporterTest2.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CopacImporterTest2.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/CopacImporterTest2.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/CopacImporterTest2.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/CopacImporterTest2.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/CopacImporterTest2.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/Empty.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/Empty.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/Empty.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/Empty.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/EmptyMsBib_Test.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/EmptyMsBib_Test.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/EmptyMsBib_Test.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/EmptyMsBib_Test.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/Endnote.book.example.enw b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/Endnote.book.example.enw similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/Endnote.book.example.enw rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/Endnote.book.example.enw diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/Endnote.entries.enw b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/Endnote.entries.enw similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/Endnote.entries.enw rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/Endnote.entries.enw diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/Endnote.pattern.A.enw b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/Endnote.pattern.A.enw similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/Endnote.pattern.A.enw rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/Endnote.pattern.A.enw diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/Endnote.pattern.E.enw b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/Endnote.pattern.E.enw similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/Endnote.pattern.E.enw rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/Endnote.pattern.E.enw diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/Endnote.pattern.no_enw b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/Endnote.pattern.no_enw similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/Endnote.pattern.no_enw rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/Endnote.pattern.no_enw diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestArticle.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestArticle.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestArticle.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestArticle.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestArticle.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestArticle.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestArticle.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestArticle.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestArticle2.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestArticle2.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestArticle2.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestArticle2.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestArticle2.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestArticle2.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestArticle2.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestArticle2.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestLabelAndMultiTitle.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestLabelAndMultiTitle.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestLabelAndMultiTitle.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestLabelAndMultiTitle.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestLabelAndMultiTitle.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestLabelAndMultiTitle.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestLabelAndMultiTitle.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestLabelAndMultiTitle.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestReport.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestReport.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestReport.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestReport.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestReport.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestReport.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestReport.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTestReport.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_EmptyKeywordStyle.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_EmptyKeywordStyle.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_EmptyKeywordStyle.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_EmptyKeywordStyle.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_EmptyKeywordStyle.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_EmptyKeywordStyle.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_EmptyKeywordStyle.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_EmptyKeywordStyle.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_WithoutUrlStyle.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_WithoutUrlStyle.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_WithoutUrlStyle.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_WithoutUrlStyle.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_WithoutUrlStyle.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_WithoutUrlStyle.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_WithoutUrlStyle.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_WithoutUrlStyle.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_WithoutUrlStyle2.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_WithoutUrlStyle2.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_WithoutUrlStyle2.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_WithoutUrlStyle2.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_WithoutUrlStyle2.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_WithoutUrlStyle2.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_WithoutUrlStyle2.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/EndnoteXmlImporterTest_WithoutUrlStyle2.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/IEEEImport1.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/IEEEImport1.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/IEEEImport1.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/IEEEImport1.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/InspecImportTest.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/InspecImportTest.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/InspecImportTest.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/InspecImportTest.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/InspecImportTest2.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/InspecImportTest2.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/InspecImportTest2.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/InspecImportTest2.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/InspecImportTestFalse.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/InspecImportTestFalse.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/InspecImportTestFalse.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/InspecImportTestFalse.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTest1.isi b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTest1.isi similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTest1.isi rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTest1.isi diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTest2.isi b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTest2.isi similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTest2.isi rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTest2.isi diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTestEmpty.isi b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTestEmpty.isi similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTestEmpty.isi rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTestEmpty.isi diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTestInspec.isi b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTestInspec.isi similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTestInspec.isi rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTestInspec.isi diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTestMedline.isi b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTestMedline.isi similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTestMedline.isi rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTestMedline.isi diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTestWOS.isi b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTestWOS.isi similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTestWOS.isi rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/IsiImporterTestWOS.isi diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/LNCS-minimal-protected.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/LNCS-minimal-protected.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/LNCS-minimal-protected.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/LNCS-minimal-protected.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/LNCS-minimal-protected.pdf b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/LNCS-minimal-protected.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/LNCS-minimal-protected.pdf rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/LNCS-minimal-protected.pdf diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/LNCS-minimal.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/LNCS-minimal.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/LNCS-minimal.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/LNCS-minimal.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/LNCS-minimal.pdf b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/LNCS-minimal.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/LNCS-minimal.pdf rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/LNCS-minimal.pdf diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestAllFields.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestAllFields.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestAllFields.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestAllFields.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestAllFields.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestAllFields.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestAllFields.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestAllFields.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestGenreMapping.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestGenreMapping.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestGenreMapping.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestGenreMapping.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestGenreMapping.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestGenreMapping.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestGenreMapping.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestGenreMapping.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestMinimal.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestMinimal.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestMinimal.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestMinimal.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestMinimal.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestMinimal.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestMinimal.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestMinimal.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestMods.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestMods.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestMods.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestMods.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestMods.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestMods.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestMods.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestMods.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestModsCollection.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestModsCollection.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestModsCollection.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestModsCollection.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestModsCollection.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestModsCollection.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestModsCollection.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MODSImporterTestModsCollection.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MarcXMLParserTestInProceedings.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXMLParserTestInProceedings.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MarcXMLParserTestInProceedings.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXMLParserTestInProceedings.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MarcXMLParserTestInProceedings.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXMLParserTestInProceedings.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MarcXMLParserTestInProceedings.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXMLParserTestInProceedings.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestArticle.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestArticle.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestArticle.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestArticle.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestArticle.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestArticle.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestArticle.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestArticle.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestBook.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestBook.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestBook.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestBook.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestBook.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestBook.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestBook.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestBook.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestBookSeries.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestBookSeries.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestBookSeries.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestBookSeries.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestBookSeries.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestBookSeries.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestBookSeries.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestBookSeries.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestNotes.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestNotes.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestNotes.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestNotes.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestNotes.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestNotes.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestNotes.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestNotes.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestSummaryAndKeywords.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestSummaryAndKeywords.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestSummaryAndKeywords.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestSummaryAndKeywords.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestSummaryAndKeywords.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestSummaryAndKeywords.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestSummaryAndKeywords.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestSummaryAndKeywords.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestThesis.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestThesis.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestThesis.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestThesis.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestThesis.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestThesis.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestThesis.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MarcXmlParserTestThesis.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleID.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleID.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleID.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleID.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleID.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleID.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleID.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleID.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleItalics.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleItalics.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleItalics.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleItalics.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleItalics.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleItalics.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleItalics.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleItalics.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleNoISSN.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleNoISSN.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleNoISSN.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleNoISSN.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleNoISSN.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleNoISSN.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleNoISSN.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestArticleNoISSN.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestBookArticleSet.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestBookArticleSet.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestBookArticleSet.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestBookArticleSet.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestBookArticleSet.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestBookArticleSet.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestBookArticleSet.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestBookArticleSet.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestKeywordSingleEntry.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestKeywordSingleEntry.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestKeywordSingleEntry.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestKeywordSingleEntry.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestKeywordSingleEntry.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestKeywordSingleEntry.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestKeywordSingleEntry.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestKeywordSingleEntry.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestMalformedEntry.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestMalformedEntry.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestMalformedEntry.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestMalformedEntry.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestMathML.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestMathML.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestMathML.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestMathML.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestMathML.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestMathML.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestMathML.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestMathML.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestMinimalEntry.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestMinimalEntry.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestMinimalEntry.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestMinimalEntry.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestMinimalEntry.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestMinimalEntry.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestMinimalEntry.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestMinimalEntry.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestNbib.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestNbib.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestNbib.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestNbib.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestNbib.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestNbib.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestNbib.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestNbib.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestPubmedBook.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestPubmedBook.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestPubmedBook.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestPubmedBook.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestPubmedBook.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestPubmedBook.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestPubmedBook.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlineImporterTestPubmedBook.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterStringOutOfBounds.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterStringOutOfBounds.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterStringOutOfBounds.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterStringOutOfBounds.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterStringOutOfBounds.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterStringOutOfBounds.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterStringOutOfBounds.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterStringOutOfBounds.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestCompleteEntry.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestCompleteEntry.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestCompleteEntry.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestCompleteEntry.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestCompleteEntry.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestCompleteEntry.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestCompleteEntry.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestCompleteEntry.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestDOI.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestDOI.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestDOI.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestDOI.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestDOI.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestDOI.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestDOI.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestDOI.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestInproceeding.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestInproceeding.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestInproceeding.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestInproceeding.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestInproceeding.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestInproceeding.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestInproceeding.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestInproceeding.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestInvalidFormat.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestInvalidFormat.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestInvalidFormat.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestInvalidFormat.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestMultiAbstract.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestMultiAbstract.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestMultiAbstract.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestMultiAbstract.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestMultiAbstract.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestMultiAbstract.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestMultiAbstract.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestMultiAbstract.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestMultiTitle.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestMultiTitle.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestMultiTitle.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestMultiTitle.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestMultiTitle.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestMultiTitle.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestMultiTitle.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestMultiTitle.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestMultipleEntries.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestMultipleEntries.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestMultipleEntries.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MedlinePlainImporterTestMultipleEntries.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibExportFormatUmlauts.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibExportFormatUmlauts.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibExportFormatUmlauts.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibExportFormatUmlauts.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibExportFormatUmlauts.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibExportFormatUmlauts.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibExportFormatUmlauts.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibExportFormatUmlauts.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterInvalidMonth.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterInvalidMonth.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterInvalidMonth.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterInvalidMonth.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterInvalidMonth.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterInvalidMonth.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterInvalidMonth.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterInvalidMonth.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterMsBibFieldsTest.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterMsBibFieldsTest.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterMsBibFieldsTest.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterMsBibFieldsTest.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterMsBibFieldsTest.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterMsBibFieldsTest.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterMsBibFieldsTest.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterMsBibFieldsTest.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest3.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest3.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest3.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest3.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest3.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest3.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest3.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest3.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest4.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest4.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest4.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest4.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest4.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest4.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest4.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest4.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest5.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest5.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest5.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest5.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest5.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest5.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest5.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest5.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest6.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest6.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest6.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest6.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest6.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest6.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest6.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest6.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest7.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest7.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest7.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest7.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest7.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest7.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest7.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTest7.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTestTranslator.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTestTranslator.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTestTranslator.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTestTranslator.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTestTranslator.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTestTranslator.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTestTranslator.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTestTranslator.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTitleTest.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTitleTest.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTitleTest.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTitleTest.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTitleTest.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTitleTest.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTitleTest.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibImporterTitleTest.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibLCID.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibLCID.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibLCID.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibLCID.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibLCID.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibLCID.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibLCID.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibLCID.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibLocationTest.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibLocationTest.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibLocationTest.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibLocationTest.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibLocationTest.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibLocationTest.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibLocationTest.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibLocationTest.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibMultiLocationAddressTest.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibMultiLocationAddressTest.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibMultiLocationAddressTest.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibMultiLocationAddressTest.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibMultiLocationAddressTest.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibMultiLocationAddressTest.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibMultiLocationAddressTest.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibMultiLocationAddressTest.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibPatent.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibPatent.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibPatent.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibPatent.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibPatent.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibPatent.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibPatent.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibPatent.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibShorttitle.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibShorttitle.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibShorttitle.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibShorttitle.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/MsBibShorttitle.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibShorttitle.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/MsBibShorttitle.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/MsBibShorttitle.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/NbibImporterTest.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/NbibImporterTest.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/NbibImporterTest.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/NbibImporterTest.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/NbibImporterTest.nbib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/NbibImporterTest.nbib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/NbibImporterTest.nbib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/NbibImporterTest.nbib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest1.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest1.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest1.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest1.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest2Invalid.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest2Invalid.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest2Invalid.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest2Invalid.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest3.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest3.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest3.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest3.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest4.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest4.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest4.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest4.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest5.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest5.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest5.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest5.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest6.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest6.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest6.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest6.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest7.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest7.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest7.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTest7.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTestBib3.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTestBib3.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTestBib3.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTestBib3.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTestBib4.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTestBib4.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTestBib4.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTestBib4.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTestBib5.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTestBib5.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTestBib5.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTestBib5.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTestBib6.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTestBib6.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTestBib6.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTestBib6.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTestBib7.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTestBib7.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTestBib7.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/OvidImporterTestBib7.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest1.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest1.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest1.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest1.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest1.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest1.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest1.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest1.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest2.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest2.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest2.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest2.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest2.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest2.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest2.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest2.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest3.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest3.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest3.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest3.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest3.txt b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest3.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest3.txt rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RepecNepImporterTest3.txt diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterCorrupted.ris b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterCorrupted.ris similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterCorrupted.ris rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterCorrupted.ris diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest1.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest1.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest1.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest1.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest1.ris b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest1.ris similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest1.ris rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest1.ris diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest3.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest3.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest3.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest3.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest3.ris b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest3.ris similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest3.ris rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest3.ris diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4a.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4a.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4a.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4a.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4a.ris b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4a.ris similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4a.ris rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4a.ris diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4b.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4b.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4b.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4b.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4b.ris b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4b.ris similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4b.ris rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4b.ris diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4c.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4c.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4c.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4c.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4c.ris b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4c.ris similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4c.ris rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest4c.ris diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest5a.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest5a.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest5a.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest5a.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest5a.ris b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest5a.ris similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest5a.ris rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest5a.ris diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest5b.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest5b.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest5b.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest5b.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest5b.ris b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest5b.ris similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest5b.ris rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest5b.ris diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest6.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest6.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest6.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest6.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest6.ris b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest6.ris similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest6.ris rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest6.ris diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest7.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest7.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest7.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest7.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest7.ris b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest7.ris similarity index 94% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest7.ris rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest7.ris index 8ab75edbec0..41c642a802e 100644 --- a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest7.ris +++ b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest7.ris @@ -1,11 +1,11 @@ -TY - BOOK -AU - Smith, Bob -AU - Doe, Jan -AU - Brown, Judy -A2 - Martin, Steve -A2 - Clark, Joe -T1 - Testing Book Title -PB - Test Publisher -Y1 - 2015/october -VL - 1 -ER - +TY - BOOK +AU - Smith, Bob +AU - Doe, Jan +AU - Brown, Judy +A2 - Martin, Steve +A2 - Clark, Joe +T1 - Testing Book Title +PB - Test Publisher +Y1 - 2015/october +VL - 1 +ER - diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest8_date.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest8_date.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest8_date.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest8_date.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest8_date.ris b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest8_date.ris similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest8_date.ris rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest8_date.ris diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest9.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest9.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest9.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest9.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest9.ris b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest9.ris similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest9.ris rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTest9.ris diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDOI.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDOI.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDOI.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDOI.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDOI.ris b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDOI.ris similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDOI.ris rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDOI.ris diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDate1.1.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDate1.1.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDate1.1.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDate1.1.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDate1.1.ris b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDate1.1.ris similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDate1.1.ris rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDate1.1.ris diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDate1.2.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDate1.2.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDate1.2.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDate1.2.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDate1.2.ris b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDate1.2.ris similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDate1.2.ris rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDate1.2.ris diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDoiAndJournalTitle.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDoiAndJournalTitle.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDoiAndJournalTitle.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDoiAndJournalTitle.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDoiAndJournalTitle.ris b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDoiAndJournalTitle.ris similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDoiAndJournalTitle.ris rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestDoiAndJournalTitle.ris diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestScience.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestScience.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestScience.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestScience.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestScience.ris b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestScience.ris similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestScience.ris rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestScience.ris diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestScopus.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestScopus.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestScopus.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestScopus.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestScopus.ris b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestScopus.ris similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestScopus.ris rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestScopus.ris diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestWithEmptyER.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestWithEmptyER.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestWithEmptyER.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestWithEmptyER.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestWithEmptyER.ris b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestWithEmptyER.ris similarity index 95% rename from src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestWithEmptyER.ris rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestWithEmptyER.ris index 65df21e8acb..2de9c04b0a6 100644 --- a/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestWithEmptyER.ris +++ b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/RisImporterTestWithEmptyER.ris @@ -2,25 +2,25 @@ - -TY - JOUR -T1 - Length scales and interfacial potentials in ion hydration -AU - Shi,Yu -AU - Beck,Thomas L. -Y1 - 2013/07/22 -PY - 2013 -DA - 2013/07/28 -N1 - doi: 10.1063/1.4814070 -DO - 10.1063/1.4814070 -T2 - The Journal of Chemical Physics -JF - The Journal of Chemical Physics -JO - J. Chem. Phys. -SP - 044504 -VL - 139 -IS - 4 -PB - American Institute of Physics -SN - 0021-9606 -M3 - doi: 10.1063/1.4814070 -UR - https://doi.org/10.1063/1.4814070 -Y2 - 2021/01/24 -ER - + +TY - JOUR +T1 - Length scales and interfacial potentials in ion hydration +AU - Shi,Yu +AU - Beck,Thomas L. +Y1 - 2013/07/22 +PY - 2013 +DA - 2013/07/28 +N1 - doi: 10.1063/1.4814070 +DO - 10.1063/1.4814070 +T2 - The Journal of Chemical Physics +JF - The Journal of Chemical Physics +JO - J. Chem. Phys. +SP - 044504 +VL - 139 +IS - 4 +PB - American Institute of Physics +SN - 0021-9606 +M3 - doi: 10.1063/1.4814070 +UR - https://doi.org/10.1063/1.4814070 +Y2 - 2021/01/24 +ER - diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/empty.pdf b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/empty.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/empty.pdf rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/empty.pdf diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/emptyFile.xml b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/emptyFile.xml similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/emptyFile.xml rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/emptyFile.xml diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/encoding-us-ascii-with-header.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/encoding-us-ascii-with-header.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/encoding-us-ascii-with-header.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/encoding-us-ascii-with-header.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-16BE-with-header.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-16BE-with-header.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-16BE-with-header.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-16BE-with-header.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-16BE-without-header.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-16BE-without-header.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-16BE-without-header.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-16BE-without-header.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-8-with-header-with-databasetypecomment.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-8-with-header-with-databasetypecomment.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-8-with-header-with-databasetypecomment.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-8-with-header-with-databasetypecomment.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-8-with-header.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-8-with-header.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-8-with-header.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-8-with-header.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-8-without-header-with-databasetypecomment.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-8-without-header-with-databasetypecomment.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-8-without-header-with-databasetypecomment.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-8-without-header-with-databasetypecomment.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-8-without-header.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-8-without-header.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-8-without-header.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/encoding-utf-8-without-header.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/encoding-windows-1252-but-utf-8-declared--decoding-fails.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/encoding-windows-1252-but-utf-8-declared--decoding-fails.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/encoding-windows-1252-but-utf-8-declared--decoding-fails.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/encoding-windows-1252-but-utf-8-declared--decoding-fails.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/encoding-windows-1252-with-header.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/encoding-windows-1252-with-header.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/encoding-windows-1252-with-header.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/encoding-windows-1252-with-header.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/encoding-windows-1252-without-header.bib b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/encoding-windows-1252-without-header.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/encoding-windows-1252-without-header.bib rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/encoding-windows-1252-without-header.bib diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/encrypted.pdf b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/encrypted.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/encrypted.pdf rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/encrypted.pdf diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/pdf/2024_SPLC_Becker.pdf b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/pdf/2024_SPLC_Becker.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/pdf/2024_SPLC_Becker.pdf rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/pdf/2024_SPLC_Becker.pdf diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/pdf/annotated.pdf b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/pdf/annotated.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/pdf/annotated.pdf rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/pdf/annotated.pdf diff --git a/src/test/resources/org/jabref/logic/importer/fileformat/pdf/mixedMetadata.pdf b/jablib/src/test/resources/org/jabref/logic/importer/fileformat/pdf/mixedMetadata.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/importer/fileformat/pdf/mixedMetadata.pdf rename to jablib/src/test/resources/org/jabref/logic/importer/fileformat/pdf/mixedMetadata.pdf diff --git a/src/test/resources/org/jabref/logic/importer/headerless.bib b/jablib/src/test/resources/org/jabref/logic/importer/headerless.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/headerless.bib rename to jablib/src/test/resources/org/jabref/logic/importer/headerless.bib diff --git a/src/test/resources/org/jabref/logic/importer/jabref-header.bib b/jablib/src/test/resources/org/jabref/logic/importer/jabref-header.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/jabref-header.bib rename to jablib/src/test/resources/org/jabref/logic/importer/jabref-header.bib diff --git a/src/test/resources/org/jabref/logic/importer/unlinkedFilesTestFolder/pdfInDatabase.pdf b/jablib/src/test/resources/org/jabref/logic/importer/unlinkedFilesTestFolder/pdfInDatabase.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/importer/unlinkedFilesTestFolder/pdfInDatabase.pdf rename to jablib/src/test/resources/org/jabref/logic/importer/unlinkedFilesTestFolder/pdfInDatabase.pdf diff --git a/src/test/resources/org/jabref/logic/importer/unlinkedFilesTestFolder/pdfNotInDatabase.pdf b/jablib/src/test/resources/org/jabref/logic/importer/unlinkedFilesTestFolder/pdfNotInDatabase.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/importer/unlinkedFilesTestFolder/pdfNotInDatabase.pdf rename to jablib/src/test/resources/org/jabref/logic/importer/unlinkedFilesTestFolder/pdfNotInDatabase.pdf diff --git a/src/test/resources/org/jabref/logic/importer/unlinkedFilesTestFolder/testFile.txt b/jablib/src/test/resources/org/jabref/logic/importer/unlinkedFilesTestFolder/testFile.txt similarity index 100% rename from src/test/resources/org/jabref/logic/importer/unlinkedFilesTestFolder/testFile.txt rename to jablib/src/test/resources/org/jabref/logic/importer/unlinkedFilesTestFolder/testFile.txt diff --git a/src/test/resources/org/jabref/logic/importer/util/LNCS-minimal.pdf b/jablib/src/test/resources/org/jabref/logic/importer/util/LNCS-minimal.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/importer/util/LNCS-minimal.pdf rename to jablib/src/test/resources/org/jabref/logic/importer/util/LNCS-minimal.pdf diff --git a/src/test/resources/org/jabref/logic/importer/wrong-header.bib b/jablib/src/test/resources/org/jabref/logic/importer/wrong-header.bib similarity index 100% rename from src/test/resources/org/jabref/logic/importer/wrong-header.bib rename to jablib/src/test/resources/org/jabref/logic/importer/wrong-header.bib diff --git a/src/test/resources/org/jabref/logic/net/empty.pdf b/jablib/src/test/resources/org/jabref/logic/net/empty.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/net/empty.pdf rename to jablib/src/test/resources/org/jabref/logic/net/empty.pdf diff --git a/src/test/resources/org/jabref/logic/openoffice/style/test.jstyle b/jablib/src/test/resources/org/jabref/logic/openoffice/style/test.jstyle similarity index 100% rename from src/test/resources/org/jabref/logic/openoffice/style/test.jstyle rename to jablib/src/test/resources/org/jabref/logic/openoffice/style/test.jstyle diff --git a/src/test/resources/org/jabref/logic/openoffice/style/testWithDefaultAtFirstLIne.jstyle b/jablib/src/test/resources/org/jabref/logic/openoffice/style/testWithDefaultAtFirstLIne.jstyle similarity index 100% rename from src/test/resources/org/jabref/logic/openoffice/style/testWithDefaultAtFirstLIne.jstyle rename to jablib/src/test/resources/org/jabref/logic/openoffice/style/testWithDefaultAtFirstLIne.jstyle diff --git a/src/test/resources/org/jabref/logic/protectedterms/namedterms.terms b/jablib/src/test/resources/org/jabref/logic/protectedterms/namedterms.terms similarity index 100% rename from src/test/resources/org/jabref/logic/protectedterms/namedterms.terms rename to jablib/src/test/resources/org/jabref/logic/protectedterms/namedterms.terms diff --git a/src/test/resources/org/jabref/logic/protectedterms/unnamedterms.terms b/jablib/src/test/resources/org/jabref/logic/protectedterms/unnamedterms.terms similarity index 100% rename from src/test/resources/org/jabref/logic/protectedterms/unnamedterms.terms rename to jablib/src/test/resources/org/jabref/logic/protectedterms/unnamedterms.terms diff --git a/src/test/resources/org/jabref/logic/pseudonymization/Chocolate-pseudnomyized.bib b/jablib/src/test/resources/org/jabref/logic/pseudonymization/Chocolate-pseudnomyized.bib similarity index 100% rename from src/test/resources/org/jabref/logic/pseudonymization/Chocolate-pseudnomyized.bib rename to jablib/src/test/resources/org/jabref/logic/pseudonymization/Chocolate-pseudnomyized.bib diff --git a/src/test/resources/org/jabref/logic/pseudonymization/Chocolate.bib b/jablib/src/test/resources/org/jabref/logic/pseudonymization/Chocolate.bib similarity index 100% rename from src/test/resources/org/jabref/logic/pseudonymization/Chocolate.bib rename to jablib/src/test/resources/org/jabref/logic/pseudonymization/Chocolate.bib diff --git a/src/test/resources/org/jabref/logic/search/.gitignore b/jablib/src/test/resources/org/jabref/logic/search/.gitignore similarity index 100% rename from src/test/resources/org/jabref/logic/search/.gitignore rename to jablib/src/test/resources/org/jabref/logic/search/.gitignore diff --git a/src/test/resources/org/jabref/logic/search/README.md b/jablib/src/test/resources/org/jabref/logic/search/README.md similarity index 100% rename from src/test/resources/org/jabref/logic/search/README.md rename to jablib/src/test/resources/org/jabref/logic/search/README.md diff --git a/src/test/resources/org/jabref/logic/search/empty.bib b/jablib/src/test/resources/org/jabref/logic/search/empty.bib similarity index 100% rename from src/test/resources/org/jabref/logic/search/empty.bib rename to jablib/src/test/resources/org/jabref/logic/search/empty.bib diff --git a/src/test/resources/org/jabref/logic/search/minimal-all-upper-case.pdf b/jablib/src/test/resources/org/jabref/logic/search/minimal-all-upper-case.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/search/minimal-all-upper-case.pdf rename to jablib/src/test/resources/org/jabref/logic/search/minimal-all-upper-case.pdf diff --git a/src/test/resources/org/jabref/logic/search/minimal-all-upper-case.tex b/jablib/src/test/resources/org/jabref/logic/search/minimal-all-upper-case.tex similarity index 100% rename from src/test/resources/org/jabref/logic/search/minimal-all-upper-case.tex rename to jablib/src/test/resources/org/jabref/logic/search/minimal-all-upper-case.tex diff --git a/src/test/resources/org/jabref/logic/search/minimal-mixed-case.pdf b/jablib/src/test/resources/org/jabref/logic/search/minimal-mixed-case.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/search/minimal-mixed-case.pdf rename to jablib/src/test/resources/org/jabref/logic/search/minimal-mixed-case.pdf diff --git a/src/test/resources/org/jabref/logic/search/minimal-mixed-case.tex b/jablib/src/test/resources/org/jabref/logic/search/minimal-mixed-case.tex similarity index 100% rename from src/test/resources/org/jabref/logic/search/minimal-mixed-case.tex rename to jablib/src/test/resources/org/jabref/logic/search/minimal-mixed-case.tex diff --git a/src/test/resources/org/jabref/logic/search/minimal-note-all-upper-case.pdf b/jablib/src/test/resources/org/jabref/logic/search/minimal-note-all-upper-case.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/search/minimal-note-all-upper-case.pdf rename to jablib/src/test/resources/org/jabref/logic/search/minimal-note-all-upper-case.pdf diff --git a/src/test/resources/org/jabref/logic/search/minimal-note-all-upper-case.tex b/jablib/src/test/resources/org/jabref/logic/search/minimal-note-all-upper-case.tex similarity index 100% rename from src/test/resources/org/jabref/logic/search/minimal-note-all-upper-case.tex rename to jablib/src/test/resources/org/jabref/logic/search/minimal-note-all-upper-case.tex diff --git a/src/test/resources/org/jabref/logic/search/minimal-note-mixed-case.pdf b/jablib/src/test/resources/org/jabref/logic/search/minimal-note-mixed-case.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/search/minimal-note-mixed-case.pdf rename to jablib/src/test/resources/org/jabref/logic/search/minimal-note-mixed-case.pdf diff --git a/src/test/resources/org/jabref/logic/search/minimal-note-mixed-case.tex b/jablib/src/test/resources/org/jabref/logic/search/minimal-note-mixed-case.tex similarity index 100% rename from src/test/resources/org/jabref/logic/search/minimal-note-mixed-case.tex rename to jablib/src/test/resources/org/jabref/logic/search/minimal-note-mixed-case.tex diff --git a/src/test/resources/org/jabref/logic/search/minimal-note-sentence-case.pdf b/jablib/src/test/resources/org/jabref/logic/search/minimal-note-sentence-case.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/search/minimal-note-sentence-case.pdf rename to jablib/src/test/resources/org/jabref/logic/search/minimal-note-sentence-case.pdf diff --git a/src/test/resources/org/jabref/logic/search/minimal-note-sentence-case.tex b/jablib/src/test/resources/org/jabref/logic/search/minimal-note-sentence-case.tex similarity index 100% rename from src/test/resources/org/jabref/logic/search/minimal-note-sentence-case.tex rename to jablib/src/test/resources/org/jabref/logic/search/minimal-note-sentence-case.tex diff --git a/src/test/resources/org/jabref/logic/search/minimal-sentence-case.pdf b/jablib/src/test/resources/org/jabref/logic/search/minimal-sentence-case.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/search/minimal-sentence-case.pdf rename to jablib/src/test/resources/org/jabref/logic/search/minimal-sentence-case.pdf diff --git a/src/test/resources/org/jabref/logic/search/minimal-sentence-case.tex b/jablib/src/test/resources/org/jabref/logic/search/minimal-sentence-case.tex similarity index 100% rename from src/test/resources/org/jabref/logic/search/minimal-sentence-case.tex rename to jablib/src/test/resources/org/jabref/logic/search/minimal-sentence-case.tex diff --git a/src/test/resources/org/jabref/logic/search/test-library-title-casing.bib b/jablib/src/test/resources/org/jabref/logic/search/test-library-title-casing.bib similarity index 100% rename from src/test/resources/org/jabref/logic/search/test-library-title-casing.bib rename to jablib/src/test/resources/org/jabref/logic/search/test-library-title-casing.bib diff --git a/src/test/resources/org/jabref/logic/search/test-library-with-attached-files.bib b/jablib/src/test/resources/org/jabref/logic/search/test-library-with-attached-files.bib similarity index 100% rename from src/test/resources/org/jabref/logic/search/test-library-with-attached-files.bib rename to jablib/src/test/resources/org/jabref/logic/search/test-library-with-attached-files.bib diff --git a/src/test/resources/org/jabref/logic/texparser/crossref.tex b/jablib/src/test/resources/org/jabref/logic/texparser/crossref.tex similarity index 100% rename from src/test/resources/org/jabref/logic/texparser/crossref.tex rename to jablib/src/test/resources/org/jabref/logic/texparser/crossref.tex diff --git a/src/test/resources/org/jabref/logic/texparser/iso-8859-1.tex b/jablib/src/test/resources/org/jabref/logic/texparser/iso-8859-1.tex similarity index 100% rename from src/test/resources/org/jabref/logic/texparser/iso-8859-1.tex rename to jablib/src/test/resources/org/jabref/logic/texparser/iso-8859-1.tex diff --git a/src/test/resources/org/jabref/logic/texparser/iso-8859-15.tex b/jablib/src/test/resources/org/jabref/logic/texparser/iso-8859-15.tex similarity index 100% rename from src/test/resources/org/jabref/logic/texparser/iso-8859-15.tex rename to jablib/src/test/resources/org/jabref/logic/texparser/iso-8859-15.tex diff --git a/src/test/resources/org/jabref/logic/texparser/nested.tex b/jablib/src/test/resources/org/jabref/logic/texparser/nested.tex similarity index 100% rename from src/test/resources/org/jabref/logic/texparser/nested.tex rename to jablib/src/test/resources/org/jabref/logic/texparser/nested.tex diff --git a/src/test/resources/org/jabref/logic/texparser/nested2.tex b/jablib/src/test/resources/org/jabref/logic/texparser/nested2.tex similarity index 100% rename from src/test/resources/org/jabref/logic/texparser/nested2.tex rename to jablib/src/test/resources/org/jabref/logic/texparser/nested2.tex diff --git a/src/test/resources/org/jabref/logic/texparser/origin.bib b/jablib/src/test/resources/org/jabref/logic/texparser/origin.bib similarity index 100% rename from src/test/resources/org/jabref/logic/texparser/origin.bib rename to jablib/src/test/resources/org/jabref/logic/texparser/origin.bib diff --git a/src/test/resources/org/jabref/logic/texparser/paper.tex b/jablib/src/test/resources/org/jabref/logic/texparser/paper.tex similarity index 100% rename from src/test/resources/org/jabref/logic/texparser/paper.tex rename to jablib/src/test/resources/org/jabref/logic/texparser/paper.tex diff --git a/src/test/resources/org/jabref/logic/texparser/paper2.tex b/jablib/src/test/resources/org/jabref/logic/texparser/paper2.tex similarity index 100% rename from src/test/resources/org/jabref/logic/texparser/paper2.tex rename to jablib/src/test/resources/org/jabref/logic/texparser/paper2.tex diff --git a/src/test/resources/org/jabref/logic/texparser/unknown_key.tex b/jablib/src/test/resources/org/jabref/logic/texparser/unknown_key.tex similarity index 100% rename from src/test/resources/org/jabref/logic/texparser/unknown_key.tex rename to jablib/src/test/resources/org/jabref/logic/texparser/unknown_key.tex diff --git a/src/test/resources/org/jabref/logic/texparser/utf-8.tex b/jablib/src/test/resources/org/jabref/logic/texparser/utf-8.tex similarity index 100% rename from src/test/resources/org/jabref/logic/texparser/utf-8.tex rename to jablib/src/test/resources/org/jabref/logic/texparser/utf-8.tex diff --git a/src/test/resources/org/jabref/logic/util/io/pdffile.pdf b/jablib/src/test/resources/org/jabref/logic/util/io/pdffile.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/util/io/pdffile.pdf rename to jablib/src/test/resources/org/jabref/logic/util/io/pdffile.pdf diff --git a/src/test/resources/org/jabref/logic/xmp/JabRef_multipleMetaEntries.pdf b/jablib/src/test/resources/org/jabref/logic/xmp/JabRef_multipleMetaEntries.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/xmp/JabRef_multipleMetaEntries.pdf rename to jablib/src/test/resources/org/jabref/logic/xmp/JabRef_multipleMetaEntries.pdf diff --git a/src/test/resources/org/jabref/logic/xmp/PD_metadata.bib b/jablib/src/test/resources/org/jabref/logic/xmp/PD_metadata.bib similarity index 100% rename from src/test/resources/org/jabref/logic/xmp/PD_metadata.bib rename to jablib/src/test/resources/org/jabref/logic/xmp/PD_metadata.bib diff --git a/src/test/resources/org/jabref/logic/xmp/PD_metadata.pdf b/jablib/src/test/resources/org/jabref/logic/xmp/PD_metadata.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/xmp/PD_metadata.pdf rename to jablib/src/test/resources/org/jabref/logic/xmp/PD_metadata.pdf diff --git a/src/test/resources/org/jabref/logic/xmp/article_dublinCore.bib b/jablib/src/test/resources/org/jabref/logic/xmp/article_dublinCore.bib similarity index 100% rename from src/test/resources/org/jabref/logic/xmp/article_dublinCore.bib rename to jablib/src/test/resources/org/jabref/logic/xmp/article_dublinCore.bib diff --git a/src/test/resources/org/jabref/logic/xmp/article_dublinCore.pdf b/jablib/src/test/resources/org/jabref/logic/xmp/article_dublinCore.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/xmp/article_dublinCore.pdf rename to jablib/src/test/resources/org/jabref/logic/xmp/article_dublinCore.pdf diff --git a/src/test/resources/org/jabref/logic/xmp/article_dublinCore_partial_date.bib b/jablib/src/test/resources/org/jabref/logic/xmp/article_dublinCore_partial_date.bib similarity index 100% rename from src/test/resources/org/jabref/logic/xmp/article_dublinCore_partial_date.bib rename to jablib/src/test/resources/org/jabref/logic/xmp/article_dublinCore_partial_date.bib diff --git a/src/test/resources/org/jabref/logic/xmp/article_dublinCore_partial_date.pdf b/jablib/src/test/resources/org/jabref/logic/xmp/article_dublinCore_partial_date.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/xmp/article_dublinCore_partial_date.pdf rename to jablib/src/test/resources/org/jabref/logic/xmp/article_dublinCore_partial_date.pdf diff --git a/src/test/resources/org/jabref/logic/xmp/article_dublinCore_without_day.bib b/jablib/src/test/resources/org/jabref/logic/xmp/article_dublinCore_without_day.bib similarity index 100% rename from src/test/resources/org/jabref/logic/xmp/article_dublinCore_without_day.bib rename to jablib/src/test/resources/org/jabref/logic/xmp/article_dublinCore_without_day.bib diff --git a/src/test/resources/org/jabref/logic/xmp/article_dublinCore_without_day.pdf b/jablib/src/test/resources/org/jabref/logic/xmp/article_dublinCore_without_day.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/xmp/article_dublinCore_without_day.pdf rename to jablib/src/test/resources/org/jabref/logic/xmp/article_dublinCore_without_day.pdf diff --git a/src/test/resources/org/jabref/logic/xmp/empty_metadata.pdf b/jablib/src/test/resources/org/jabref/logic/xmp/empty_metadata.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/xmp/empty_metadata.pdf rename to jablib/src/test/resources/org/jabref/logic/xmp/empty_metadata.pdf diff --git a/src/test/resources/org/jabref/logic/xmp/no_description_metadata.pdf b/jablib/src/test/resources/org/jabref/logic/xmp/no_description_metadata.pdf similarity index 100% rename from src/test/resources/org/jabref/logic/xmp/no_description_metadata.pdf rename to jablib/src/test/resources/org/jabref/logic/xmp/no_description_metadata.pdf diff --git a/src/test/resources/org/jabref/model/entry/entryWithMultilineAbstract.bib b/jablib/src/test/resources/org/jabref/model/entry/entryWithMultilineAbstract.bib similarity index 100% rename from src/test/resources/org/jabref/model/entry/entryWithMultilineAbstract.bib rename to jablib/src/test/resources/org/jabref/model/entry/entryWithMultilineAbstract.bib diff --git a/src/test/resources/org/jabref/model/groups/paper.aux b/jablib/src/test/resources/org/jabref/model/groups/paper.aux similarity index 100% rename from src/test/resources/org/jabref/model/groups/paper.aux rename to jablib/src/test/resources/org/jabref/model/groups/paper.aux diff --git a/src/test/resources/org/jabref/model/util/pdffile.pdf b/jablib/src/test/resources/org/jabref/model/util/pdffile.pdf similarity index 100% rename from src/test/resources/org/jabref/model/util/pdffile.pdf rename to jablib/src/test/resources/org/jabref/model/util/pdffile.pdf diff --git a/src/test/resources/org/jabref/util/build.properties b/jablib/src/test/resources/org/jabref/util/build.properties similarity index 100% rename from src/test/resources/org/jabref/util/build.properties rename to jablib/src/test/resources/org/jabref/util/build.properties diff --git a/src/test/resources/org/jabref/util/twente.bib b/jablib/src/test/resources/org/jabref/util/twente.bib similarity index 100% rename from src/test/resources/org/jabref/util/twente.bib rename to jablib/src/test/resources/org/jabref/util/twente.bib diff --git a/src/test/resources/org/jabref/util/unlinkedFilesTestBib.bib b/jablib/src/test/resources/org/jabref/util/unlinkedFilesTestBib.bib similarity index 100% rename from src/test/resources/org/jabref/util/unlinkedFilesTestBib.bib rename to jablib/src/test/resources/org/jabref/util/unlinkedFilesTestBib.bib diff --git a/src/test/resources/pdfs/IEEE/.gitignore b/jablib/src/test/resources/pdfs/IEEE/.gitignore similarity index 100% rename from src/test/resources/pdfs/IEEE/.gitignore rename to jablib/src/test/resources/pdfs/IEEE/.gitignore diff --git a/src/test/resources/pdfs/IEEE/extract-references-test.bib b/jablib/src/test/resources/pdfs/IEEE/extract-references-test.bib similarity index 100% rename from src/test/resources/pdfs/IEEE/extract-references-test.bib rename to jablib/src/test/resources/pdfs/IEEE/extract-references-test.bib diff --git a/src/test/resources/pdfs/IEEE/ieee-paper-cover.pdf b/jablib/src/test/resources/pdfs/IEEE/ieee-paper-cover.pdf similarity index 100% rename from src/test/resources/pdfs/IEEE/ieee-paper-cover.pdf rename to jablib/src/test/resources/pdfs/IEEE/ieee-paper-cover.pdf diff --git a/src/test/resources/pdfs/IEEE/ieee-paper.bib b/jablib/src/test/resources/pdfs/IEEE/ieee-paper.bib similarity index 100% rename from src/test/resources/pdfs/IEEE/ieee-paper.bib rename to jablib/src/test/resources/pdfs/IEEE/ieee-paper.bib diff --git a/src/test/resources/pdfs/IEEE/ieee-paper.pdf b/jablib/src/test/resources/pdfs/IEEE/ieee-paper.pdf similarity index 100% rename from src/test/resources/pdfs/IEEE/ieee-paper.pdf rename to jablib/src/test/resources/pdfs/IEEE/ieee-paper.pdf diff --git a/src/test/resources/pdfs/IEEE/ieee-paper.tex b/jablib/src/test/resources/pdfs/IEEE/ieee-paper.tex similarity index 100% rename from src/test/resources/pdfs/IEEE/ieee-paper.tex rename to jablib/src/test/resources/pdfs/IEEE/ieee-paper.tex diff --git a/src/test/resources/pdfs/IEEE/tua3i2refpage.pdf b/jablib/src/test/resources/pdfs/IEEE/tua3i2refpage.pdf similarity index 100% rename from src/test/resources/pdfs/IEEE/tua3i2refpage.pdf rename to jablib/src/test/resources/pdfs/IEEE/tua3i2refpage.pdf diff --git a/src/test/resources/pdfs/PdfContentImporter/Baldoni2002.pdf b/jablib/src/test/resources/pdfs/PdfContentImporter/Baldoni2002.pdf similarity index 100% rename from src/test/resources/pdfs/PdfContentImporter/Baldoni2002.pdf rename to jablib/src/test/resources/pdfs/PdfContentImporter/Baldoni2002.pdf diff --git a/src/test/resources/pdfs/PdfContentImporter/Bogner2019.pdf b/jablib/src/test/resources/pdfs/PdfContentImporter/Bogner2019.pdf similarity index 100% rename from src/test/resources/pdfs/PdfContentImporter/Bogner2019.pdf rename to jablib/src/test/resources/pdfs/PdfContentImporter/Bogner2019.pdf diff --git a/src/test/resources/pdfs/PdfContentImporter/Bogner2023.pdf b/jablib/src/test/resources/pdfs/PdfContentImporter/Bogner2023.pdf similarity index 100% rename from src/test/resources/pdfs/PdfContentImporter/Bogner2023.pdf rename to jablib/src/test/resources/pdfs/PdfContentImporter/Bogner2023.pdf diff --git a/src/test/resources/pdfs/PdfContentImporter/Fritzsch2022.pdf b/jablib/src/test/resources/pdfs/PdfContentImporter/Fritzsch2022.pdf similarity index 100% rename from src/test/resources/pdfs/PdfContentImporter/Fritzsch2022.pdf rename to jablib/src/test/resources/pdfs/PdfContentImporter/Fritzsch2022.pdf diff --git a/src/test/resources/pdfs/PdfContentImporter/Keim2024.pdf b/jablib/src/test/resources/pdfs/PdfContentImporter/Keim2024.pdf similarity index 100% rename from src/test/resources/pdfs/PdfContentImporter/Keim2024.pdf rename to jablib/src/test/resources/pdfs/PdfContentImporter/Keim2024.pdf diff --git a/src/test/resources/pdfs/PdfContentImporter/Kriha2018.pdf b/jablib/src/test/resources/pdfs/PdfContentImporter/Kriha2018.pdf similarity index 100% rename from src/test/resources/pdfs/PdfContentImporter/Kriha2018.pdf rename to jablib/src/test/resources/pdfs/PdfContentImporter/Kriha2018.pdf diff --git a/src/test/resources/pdfs/PdfContentImporter/Ralph2020.pdf b/jablib/src/test/resources/pdfs/PdfContentImporter/Ralph2020.pdf similarity index 100% rename from src/test/resources/pdfs/PdfContentImporter/Ralph2020.pdf rename to jablib/src/test/resources/pdfs/PdfContentImporter/Ralph2020.pdf diff --git a/src/test/resources/pdfs/PdfContentImporter/Tucker2007.pdf b/jablib/src/test/resources/pdfs/PdfContentImporter/Tucker2007.pdf similarity index 100% rename from src/test/resources/pdfs/PdfContentImporter/Tucker2007.pdf rename to jablib/src/test/resources/pdfs/PdfContentImporter/Tucker2007.pdf diff --git a/src/test/resources/pdfs/PdfContentImporter/pdfContentImporterTest-pdfs.bib b/jablib/src/test/resources/pdfs/PdfContentImporter/pdfContentImporterTest-pdfs.bib similarity index 100% rename from src/test/resources/pdfs/PdfContentImporter/pdfContentImporterTest-pdfs.bib rename to jablib/src/test/resources/pdfs/PdfContentImporter/pdfContentImporterTest-pdfs.bib diff --git a/src/test/resources/pdfs/PdfContentImporter/readme.md b/jablib/src/test/resources/pdfs/PdfContentImporter/readme.md similarity index 100% rename from src/test/resources/pdfs/PdfContentImporter/readme.md rename to jablib/src/test/resources/pdfs/PdfContentImporter/readme.md diff --git a/src/test/resources/pdfs/encrypted.pdf b/jablib/src/test/resources/pdfs/encrypted.pdf similarity index 100% rename from src/test/resources/pdfs/encrypted.pdf rename to jablib/src/test/resources/pdfs/encrypted.pdf diff --git a/src/test/resources/pdfs/encrypted.txt b/jablib/src/test/resources/pdfs/encrypted.txt similarity index 100% rename from src/test/resources/pdfs/encrypted.txt rename to jablib/src/test/resources/pdfs/encrypted.txt diff --git a/src/test/resources/pdfs/example-scientificThesisTemplate.pdf b/jablib/src/test/resources/pdfs/example-scientificThesisTemplate.pdf similarity index 100% rename from src/test/resources/pdfs/example-scientificThesisTemplate.pdf rename to jablib/src/test/resources/pdfs/example-scientificThesisTemplate.pdf diff --git a/src/test/resources/pdfs/example.pdf b/jablib/src/test/resources/pdfs/example.pdf similarity index 100% rename from src/test/resources/pdfs/example.pdf rename to jablib/src/test/resources/pdfs/example.pdf diff --git a/src/test/resources/pdfs/metaData.pdf b/jablib/src/test/resources/pdfs/metaData.pdf similarity index 100% rename from src/test/resources/pdfs/metaData.pdf rename to jablib/src/test/resources/pdfs/metaData.pdf diff --git a/src/test/resources/pdfs/minimal-foxithighlight.pdf b/jablib/src/test/resources/pdfs/minimal-foxithighlight.pdf similarity index 100% rename from src/test/resources/pdfs/minimal-foxithighlight.pdf rename to jablib/src/test/resources/pdfs/minimal-foxithighlight.pdf diff --git a/src/test/resources/pdfs/minimal-foxitnote.pdf b/jablib/src/test/resources/pdfs/minimal-foxitnote.pdf similarity index 100% rename from src/test/resources/pdfs/minimal-foxitnote.pdf rename to jablib/src/test/resources/pdfs/minimal-foxitnote.pdf diff --git a/src/test/resources/pdfs/minimal-highlight-no-note.pdf b/jablib/src/test/resources/pdfs/minimal-highlight-no-note.pdf similarity index 100% rename from src/test/resources/pdfs/minimal-highlight-no-note.pdf rename to jablib/src/test/resources/pdfs/minimal-highlight-no-note.pdf diff --git a/src/test/resources/pdfs/minimal-highlight-with-note.pdf b/jablib/src/test/resources/pdfs/minimal-highlight-with-note.pdf similarity index 100% rename from src/test/resources/pdfs/minimal-highlight-with-note.pdf rename to jablib/src/test/resources/pdfs/minimal-highlight-with-note.pdf diff --git a/src/test/resources/pdfs/minimal-inlinenote.pdf b/jablib/src/test/resources/pdfs/minimal-inlinenote.pdf similarity index 100% rename from src/test/resources/pdfs/minimal-inlinenote.pdf rename to jablib/src/test/resources/pdfs/minimal-inlinenote.pdf diff --git a/src/test/resources/pdfs/minimal-polygon.pdf b/jablib/src/test/resources/pdfs/minimal-polygon.pdf similarity index 100% rename from src/test/resources/pdfs/minimal-polygon.pdf rename to jablib/src/test/resources/pdfs/minimal-polygon.pdf diff --git a/src/test/resources/pdfs/minimal-popup.pdf b/jablib/src/test/resources/pdfs/minimal-popup.pdf similarity index 100% rename from src/test/resources/pdfs/minimal-popup.pdf rename to jablib/src/test/resources/pdfs/minimal-popup.pdf diff --git a/src/test/resources/pdfs/minimal-squiggly.pdf b/jablib/src/test/resources/pdfs/minimal-squiggly.pdf similarity index 100% rename from src/test/resources/pdfs/minimal-squiggly.pdf rename to jablib/src/test/resources/pdfs/minimal-squiggly.pdf diff --git a/src/test/resources/pdfs/minimal-strikeout.pdf b/jablib/src/test/resources/pdfs/minimal-strikeout.pdf similarity index 100% rename from src/test/resources/pdfs/minimal-strikeout.pdf rename to jablib/src/test/resources/pdfs/minimal-strikeout.pdf diff --git a/src/test/resources/pdfs/minimal-underline.pdf b/jablib/src/test/resources/pdfs/minimal-underline.pdf similarity index 100% rename from src/test/resources/pdfs/minimal-underline.pdf rename to jablib/src/test/resources/pdfs/minimal-underline.pdf diff --git a/src/test/resources/pdfs/minimal.pdf b/jablib/src/test/resources/pdfs/minimal.pdf similarity index 100% rename from src/test/resources/pdfs/minimal.pdf rename to jablib/src/test/resources/pdfs/minimal.pdf diff --git a/src/test/resources/pdfs/test-arxivMetadata.pdf b/jablib/src/test/resources/pdfs/test-arxivMetadata.pdf similarity index 100% rename from src/test/resources/pdfs/test-arxivMetadata.pdf rename to jablib/src/test/resources/pdfs/test-arxivMetadata.pdf diff --git a/src/test/resources/pdfs/test-doi.docx b/jablib/src/test/resources/pdfs/test-doi.docx similarity index 100% rename from src/test/resources/pdfs/test-doi.docx rename to jablib/src/test/resources/pdfs/test-doi.docx diff --git a/src/test/resources/pdfs/test-doi.pdf b/jablib/src/test/resources/pdfs/test-doi.pdf similarity index 100% rename from src/test/resources/pdfs/test-doi.pdf rename to jablib/src/test/resources/pdfs/test-doi.pdf diff --git a/src/test/resources/pdfs/thesis-example.pdf b/jablib/src/test/resources/pdfs/thesis-example.pdf similarity index 100% rename from src/test/resources/pdfs/thesis-example.pdf rename to jablib/src/test/resources/pdfs/thesis-example.pdf diff --git a/src/test/resources/pdfs/write-protected.docx b/jablib/src/test/resources/pdfs/write-protected.docx similarity index 100% rename from src/test/resources/pdfs/write-protected.docx rename to jablib/src/test/resources/pdfs/write-protected.docx diff --git a/src/test/resources/pdfs/write-protected.pdf b/jablib/src/test/resources/pdfs/write-protected.pdf similarity index 100% rename from src/test/resources/pdfs/write-protected.pdf rename to jablib/src/test/resources/pdfs/write-protected.pdf diff --git a/src/test/resources/testbib/Chocolate.bib b/jablib/src/test/resources/testbib/Chocolate.bib similarity index 100% rename from src/test/resources/testbib/Chocolate.bib rename to jablib/src/test/resources/testbib/Chocolate.bib diff --git a/src/test/resources/testbib/README.md b/jablib/src/test/resources/testbib/README.md similarity index 100% rename from src/test/resources/testbib/README.md rename to jablib/src/test/resources/testbib/README.md diff --git a/src/test/resources/testbib/articleWithMonths.bib b/jablib/src/test/resources/testbib/articleWithMonths.bib similarity index 100% rename from src/test/resources/testbib/articleWithMonths.bib rename to jablib/src/test/resources/testbib/articleWithMonths.bib diff --git a/src/test/resources/testbib/articleWithTitle.bib b/jablib/src/test/resources/testbib/articleWithTitle.bib similarity index 100% rename from src/test/resources/testbib/articleWithTitle.bib rename to jablib/src/test/resources/testbib/articleWithTitle.bib diff --git a/src/test/resources/testbib/articleWithTitleAndFile.bib b/jablib/src/test/resources/testbib/articleWithTitleAndFile.bib similarity index 100% rename from src/test/resources/testbib/articleWithTitleAndFile.bib rename to jablib/src/test/resources/testbib/articleWithTitleAndFile.bib diff --git a/src/test/resources/testbib/bibWithMixedContent.bib b/jablib/src/test/resources/testbib/bibWithMixedContent.bib similarity index 100% rename from src/test/resources/testbib/bibWithMixedContent.bib rename to jablib/src/test/resources/testbib/bibWithMixedContent.bib diff --git a/src/test/resources/testbib/bibWithUserCommentAndEntryChange.bib b/jablib/src/test/resources/testbib/bibWithUserCommentAndEntryChange.bib similarity index 100% rename from src/test/resources/testbib/bibWithUserCommentAndEntryChange.bib rename to jablib/src/test/resources/testbib/bibWithUserCommentAndEntryChange.bib diff --git a/src/test/resources/testbib/bibWithUserComments.bib b/jablib/src/test/resources/testbib/bibWithUserComments.bib similarity index 100% rename from src/test/resources/testbib/bibWithUserComments.bib rename to jablib/src/test/resources/testbib/bibWithUserComments.bib diff --git a/src/test/resources/testbib/biblatex-software.bib b/jablib/src/test/resources/testbib/biblatex-software.bib similarity index 100% rename from src/test/resources/testbib/biblatex-software.bib rename to jablib/src/test/resources/testbib/biblatex-software.bib diff --git a/src/test/resources/testbib/bug1283.bib b/jablib/src/test/resources/testbib/bug1283.bib similarity index 100% rename from src/test/resources/testbib/bug1283.bib rename to jablib/src/test/resources/testbib/bug1283.bib diff --git a/src/test/resources/testbib/cleanup.bib b/jablib/src/test/resources/testbib/cleanup.bib similarity index 100% rename from src/test/resources/testbib/cleanup.bib rename to jablib/src/test/resources/testbib/cleanup.bib diff --git a/src/test/resources/testbib/complex.bib b/jablib/src/test/resources/testbib/complex.bib similarity index 100% rename from src/test/resources/testbib/complex.bib rename to jablib/src/test/resources/testbib/complex.bib diff --git a/src/test/resources/testbib/crossref.bib b/jablib/src/test/resources/testbib/crossref.bib similarity index 100% rename from src/test/resources/testbib/crossref.bib rename to jablib/src/test/resources/testbib/crossref.bib diff --git a/src/test/resources/testbib/entry-editor-tabs-biblatex.bib b/jablib/src/test/resources/testbib/entry-editor-tabs-biblatex.bib similarity index 100% rename from src/test/resources/testbib/entry-editor-tabs-biblatex.bib rename to jablib/src/test/resources/testbib/entry-editor-tabs-biblatex.bib diff --git a/src/test/resources/testbib/entry-editor-tabs-bibtex.bib b/jablib/src/test/resources/testbib/entry-editor-tabs-bibtex.bib similarity index 100% rename from src/test/resources/testbib/entry-editor-tabs-bibtex.bib rename to jablib/src/test/resources/testbib/entry-editor-tabs-bibtex.bib diff --git a/src/test/resources/testbib/issue-12274/A.pdf b/jablib/src/test/resources/testbib/issue-12274/A.pdf similarity index 100% rename from src/test/resources/testbib/issue-12274/A.pdf rename to jablib/src/test/resources/testbib/issue-12274/A.pdf diff --git a/src/test/resources/testbib/issue-12274/B.pdf b/jablib/src/test/resources/testbib/issue-12274/B.pdf similarity index 100% rename from src/test/resources/testbib/issue-12274/B.pdf rename to jablib/src/test/resources/testbib/issue-12274/B.pdf diff --git a/src/test/resources/testbib/issue-12274/README.md b/jablib/src/test/resources/testbib/issue-12274/README.md similarity index 100% rename from src/test/resources/testbib/issue-12274/README.md rename to jablib/src/test/resources/testbib/issue-12274/README.md diff --git a/src/test/resources/testbib/issue-12274/issue-12274.bib b/jablib/src/test/resources/testbib/issue-12274/issue-12274.bib similarity index 100% rename from src/test/resources/testbib/issue-12274/issue-12274.bib rename to jablib/src/test/resources/testbib/issue-12274/issue-12274.bib diff --git a/src/test/resources/testbib/issue_181_1.8.0_51-b16.bib b/jablib/src/test/resources/testbib/issue_181_1.8.0_51-b16.bib similarity index 100% rename from src/test/resources/testbib/issue_181_1.8.0_51-b16.bib rename to jablib/src/test/resources/testbib/issue_181_1.8.0_51-b16.bib diff --git a/src/test/resources/testbib/issue_181_1.8.0_60-b27.bib b/jablib/src/test/resources/testbib/issue_181_1.8.0_60-b27.bib similarity index 100% rename from src/test/resources/testbib/issue_181_1.8.0_60-b27.bib rename to jablib/src/test/resources/testbib/issue_181_1.8.0_60-b27.bib diff --git a/src/test/resources/testbib/jabref-authors.bib b/jablib/src/test/resources/testbib/jabref-authors.bib similarity index 100% rename from src/test/resources/testbib/jabref-authors.bib rename to jablib/src/test/resources/testbib/jabref-authors.bib diff --git a/src/test/resources/testbib/othertype.bib b/jablib/src/test/resources/testbib/othertype.bib similarity index 100% rename from src/test/resources/testbib/othertype.bib rename to jablib/src/test/resources/testbib/othertype.bib diff --git a/src/test/resources/testbib/pdf-field-upgrade.bib b/jablib/src/test/resources/testbib/pdf-field-upgrade.bib similarity index 100% rename from src/test/resources/testbib/pdf-field-upgrade.bib rename to jablib/src/test/resources/testbib/pdf-field-upgrade.bib diff --git a/src/test/resources/testbib/pdfs/.gitignore b/jablib/src/test/resources/testbib/pdfs/.gitignore similarity index 100% rename from src/test/resources/testbib/pdfs/.gitignore rename to jablib/src/test/resources/testbib/pdfs/.gitignore diff --git a/src/test/resources/testbib/reallyunknowntype.bib b/jablib/src/test/resources/testbib/reallyunknowntype.bib similarity index 100% rename from src/test/resources/testbib/reallyunknowntype.bib rename to jablib/src/test/resources/testbib/reallyunknowntype.bib diff --git a/src/test/resources/testbib/save-actions.bib b/jablib/src/test/resources/testbib/save-actions.bib similarity index 100% rename from src/test/resources/testbib/save-actions.bib rename to jablib/src/test/resources/testbib/save-actions.bib diff --git a/src/test/resources/testbib/saveactions2.bib b/jablib/src/test/resources/testbib/saveactions2.bib similarity index 100% rename from src/test/resources/testbib/saveactions2.bib rename to jablib/src/test/resources/testbib/saveactions2.bib diff --git a/src/test/resources/testbib/simple-search-library.bib b/jablib/src/test/resources/testbib/simple-search-library.bib similarity index 100% rename from src/test/resources/testbib/simple-search-library.bib rename to jablib/src/test/resources/testbib/simple-search-library.bib diff --git a/src/test/resources/testbib/special-fields.bib b/jablib/src/test/resources/testbib/special-fields.bib similarity index 100% rename from src/test/resources/testbib/special-fields.bib rename to jablib/src/test/resources/testbib/special-fields.bib diff --git a/src/test/resources/testbib/testdocument.tex b/jablib/src/test/resources/testbib/testdocument.tex similarity index 100% rename from src/test/resources/testbib/testdocument.tex rename to jablib/src/test/resources/testbib/testdocument.tex diff --git a/src/test/resources/testbib/testjabref.bib b/jablib/src/test/resources/testbib/testjabref.bib similarity index 100% rename from src/test/resources/testbib/testjabref.bib rename to jablib/src/test/resources/testbib/testjabref.bib diff --git a/src/test/resources/testbib/testjabref_210as292.bib b/jablib/src/test/resources/testbib/testjabref_210as292.bib similarity index 100% rename from src/test/resources/testbib/testjabref_210as292.bib rename to jablib/src/test/resources/testbib/testjabref_210as292.bib diff --git a/src/test/resources/testbib/testjabref_292.bib b/jablib/src/test/resources/testbib/testjabref_292.bib similarity index 100% rename from src/test/resources/testbib/testjabref_292.bib rename to jablib/src/test/resources/testbib/testjabref_292.bib diff --git a/src/test/resources/testbib/unknownMetaData.bib b/jablib/src/test/resources/testbib/unknownMetaData.bib similarity index 100% rename from src/test/resources/testbib/unknownMetaData.bib rename to jablib/src/test/resources/testbib/unknownMetaData.bib diff --git a/src/test/resources/testbib/utf8-bom.bib b/jablib/src/test/resources/testbib/utf8-bom.bib similarity index 100% rename from src/test/resources/testbib/utf8-bom.bib rename to jablib/src/test/resources/testbib/utf8-bom.bib diff --git a/src/test/resources/tinylog-test.properties b/jablib/src/test/resources/tinylog-test.properties similarity index 100% rename from src/test/resources/tinylog-test.properties rename to jablib/src/test/resources/tinylog-test.properties diff --git a/jabsrv/build.gradle.kts b/jabsrv/build.gradle.kts new file mode 100644 index 00000000000..f4a07b1ff39 --- /dev/null +++ b/jabsrv/build.gradle.kts @@ -0,0 +1,71 @@ +plugins { + id("buildlogic.java-common-conventions") + + application + + id("org.openjfx.javafxplugin") version("0.1.0") +} + +application{ + mainClass.set("org.jabref.http.server.Server") +} + +dependencies { + implementation(project(":jablib")) + + implementation("org.slf4j:slf4j-api:2.0.17") + implementation("org.tinylog:tinylog-api:2.7.0") + implementation("org.tinylog:slf4j-tinylog:2.7.0") + implementation("org.tinylog:tinylog-impl:2.7.0") + // route all requests to java.util.logging to SLF4J (which in turn routes to tinylog) + implementation("org.slf4j:jul-to-slf4j:2.0.17") + // route all requests to log4j to SLF4J + implementation("org.apache.logging.log4j:log4j-to-slf4j:2.24.3") + + // API + implementation("jakarta.ws.rs:jakarta.ws.rs-api:4.0.0") + + // Implementation of the API + implementation("org.glassfish.jersey.core:jersey-server:3.1.10") + + // Injection framework + implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.10") + implementation("org.glassfish.hk2:hk2-api:3.1.1") + + // testImplementation("org.glassfish.hk2:hk2-testing:3.0.4") + // implementation("org.glassfish.hk2:hk2-testing-jersey:3.0.4") + // testImplementation("org.glassfish.hk2:hk2-junitrunner:3.0.4") + + // HTTP server + // implementation("org.glassfish.jersey.containers:jersey-container-netty-http:3.1.1") + implementation("org.glassfish.jersey.containers:jersey-container-grizzly2-http:3.1.10") + testImplementation("org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-grizzly2:3.1.10") + + implementation("com.konghq:unirest-modules-gson:4.4.5") + + implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.10") + implementation("org.glassfish.hk2:hk2-api:3.1.1") + + // Allow objects "magically" to be mapped to JSON using GSON + // implementation("org.glassfish.jersey.media:jersey-media-json-gson:3.1.1") + + implementation("com.google.guava:guava:33.4.8-jre") + + implementation("org.jabref:afterburner.fx:2.0.0") { + exclude( group = "org.openjfx") + } + + implementation("net.harawata:appdirs:1.4.0") + + implementation("de.undercouch:citeproc-java:3.2.0") { + exclude(group = "org.antlr") + } + + testImplementation("org.mockito:mockito-core:5.17.0") +} + +javafx { + version = "24" + // because of afterburner.fx + modules = listOf("javafx.base", "javafx.controls", "javafx.fxml") +} diff --git a/jabsrv/src/main/java/module-info.java b/jabsrv/src/main/java/module-info.java new file mode 100644 index 00000000000..c3832a874ac --- /dev/null +++ b/jabsrv/src/main/java/module-info.java @@ -0,0 +1,42 @@ +module org.jabref.jabsrv { + exports org.jabref.http.server; + opens org.jabref.http.server + to org.glassfish.hk2.utilities, + org.glassfish.hk2.locator; + + requires org.jabref.jablib; + + requires org.slf4j; + requires jul.to.slf4j; + requires org.apache.logging.log4j.to.slf4j; + requires org.tinylog.api; + requires org.tinylog.api.slf4j; + requires org.tinylog.impl; + + requires com.google.common; + requires com.google.gson; + + requires org.glassfish.hk2.api; + + requires jakarta.annotation; + requires jakarta.inject; + + requires afterburner.fx; + provides com.airhacks.afterburner.views.ResourceLocator + with org.jabref.http.JabRefResourceLocator; + + // needs to be loaded here as it's otherwise not found at runtime; XJC related maybe + // requires org.glassfish.jaxb.runtime; + + requires org.glassfish.grizzly; + requires jakarta.ws.rs; + + requires net.harawata.appdirs; + requires com.sun.jna; + requires com.sun.jna.platform; + + requires jbibtex; + requires citeproc.java; + + requires transitive org.jspecify; +} diff --git a/jabsrv/src/main/java/org/jabref/http/JabRefResourceLocator.java b/jabsrv/src/main/java/org/jabref/http/JabRefResourceLocator.java new file mode 100644 index 00000000000..df4b4418779 --- /dev/null +++ b/jabsrv/src/main/java/org/jabref/http/JabRefResourceLocator.java @@ -0,0 +1,21 @@ +package org.jabref.http; + +import java.util.ResourceBundle; + +import org.jabref.logic.l10n.Localization; + +import com.airhacks.afterburner.views.ResourceLocator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +// TODO: Code duplication of org.jabref.gui.util.JabRefResourceLocator - should be streamlined +public class JabRefResourceLocator implements ResourceLocator { + private static final Logger LOGGER = LoggerFactory.getLogger(JabRefResourceLocator.class); + + @Override + public ResourceBundle getResourceBundle(String s) { + LOGGER.debug("Requested bundle for '{}'.", s); + + return Localization.getMessages(); + } +} diff --git a/src/main/java/org/jabref/http/JabrefMediaType.java b/jabsrv/src/main/java/org/jabref/http/JabrefMediaType.java similarity index 100% rename from src/main/java/org/jabref/http/JabrefMediaType.java rename to jabsrv/src/main/java/org/jabref/http/JabrefMediaType.java diff --git a/src/main/java/org/jabref/http/dto/BibEntryDTO.java b/jabsrv/src/main/java/org/jabref/http/dto/BibEntryDTO.java similarity index 100% rename from src/main/java/org/jabref/http/dto/BibEntryDTO.java rename to jabsrv/src/main/java/org/jabref/http/dto/BibEntryDTO.java diff --git a/src/main/java/org/jabref/http/dto/GsonFactory.java b/jabsrv/src/main/java/org/jabref/http/dto/GsonFactory.java similarity index 100% rename from src/main/java/org/jabref/http/dto/GsonFactory.java rename to jabsrv/src/main/java/org/jabref/http/dto/GsonFactory.java diff --git a/src/main/java/org/jabref/http/server/Application.java b/jabsrv/src/main/java/org/jabref/http/server/Application.java similarity index 100% rename from src/main/java/org/jabref/http/server/Application.java rename to jabsrv/src/main/java/org/jabref/http/server/Application.java diff --git a/src/main/java/org/jabref/http/server/CORSFilter.java b/jabsrv/src/main/java/org/jabref/http/server/CORSFilter.java similarity index 100% rename from src/main/java/org/jabref/http/server/CORSFilter.java rename to jabsrv/src/main/java/org/jabref/http/server/CORSFilter.java diff --git a/src/main/java/org/jabref/http/server/LibrariesResource.java b/jabsrv/src/main/java/org/jabref/http/server/LibrariesResource.java similarity index 100% rename from src/main/java/org/jabref/http/server/LibrariesResource.java rename to jabsrv/src/main/java/org/jabref/http/server/LibrariesResource.java diff --git a/src/main/java/org/jabref/http/server/LibraryResource.java b/jabsrv/src/main/java/org/jabref/http/server/LibraryResource.java similarity index 100% rename from src/main/java/org/jabref/http/server/LibraryResource.java rename to jabsrv/src/main/java/org/jabref/http/server/LibraryResource.java diff --git a/src/main/java/org/jabref/http/server/PreferencesFactory.java b/jabsrv/src/main/java/org/jabref/http/server/PreferencesFactory.java similarity index 100% rename from src/main/java/org/jabref/http/server/PreferencesFactory.java rename to jabsrv/src/main/java/org/jabref/http/server/PreferencesFactory.java diff --git a/src/main/java/org/jabref/http/server/RootResource.java b/jabsrv/src/main/java/org/jabref/http/server/RootResource.java similarity index 100% rename from src/main/java/org/jabref/http/server/RootResource.java rename to jabsrv/src/main/java/org/jabref/http/server/RootResource.java diff --git a/src/main/java/org/jabref/http/server/Server.java b/jabsrv/src/main/java/org/jabref/http/server/Server.java similarity index 72% rename from src/main/java/org/jabref/http/server/Server.java rename to jabsrv/src/main/java/org/jabref/http/server/Server.java index 050fe29b269..a6432028f71 100644 --- a/src/main/java/org/jabref/http/server/Server.java +++ b/jabsrv/src/main/java/org/jabref/http/server/Server.java @@ -3,6 +3,7 @@ import java.net.URI; import java.nio.file.Files; import java.nio.file.Path; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -14,6 +15,7 @@ import jakarta.ws.rs.SeBootstrap; import net.harawata.appdirs.AppDirsFactory; import org.glassfish.grizzly.ssl.SSLContextConfigurator; +import org.jspecify.annotations.NonNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.bridge.SLF4JBridgeHandler; @@ -32,7 +34,7 @@ public static void main(final String[] args) throws InterruptedException { SLF4JBridgeHandler.removeHandlersForRootLogger(); SLF4JBridgeHandler.install(); - final List lastFilesOpened = List.of(); // JabRefCliPreferences.getInstance().getGuiPreferences().getLastFilesOpened(); + final List lastFilesOpened = new ArrayList<>(); // JabRefCliPreferences.getInstance().getGuiPreferences().getLastFilesOpened(); // The server serves the last opened files (see org.jabref.http.server.LibraryResource.getLibraryPath) // In a testing environment, this might be difficult to handle @@ -71,13 +73,22 @@ public static void main(final String[] args) throws InterruptedException { } private static void startServer() { - SSLContext sslContext = getSslContext(); - SeBootstrap.Configuration configuration = SeBootstrap.Configuration - .builder() - .sslContext(sslContext) - .protocol("HTTPS") - .port(6051) - .build(); + SeBootstrap.Configuration configuration; + if (!sslCertExists()) { + LOGGER.info("SSL certificate not found. Server starts in non-SSL mode."); + configuration = SeBootstrap.Configuration.builder() + .protocol("HTTP") + .port(6050) + .build(); + } else { + LOGGER.info("SSL certificate found. Server starts in SSL mode."); + SSLContext sslContext = getSslContext(); + configuration = SeBootstrap.Configuration.builder() + .sslContext(sslContext) + .protocol("HTTPS") + .port(6051) + .build(); + } LOGGER.debug("Starting server..."); SeBootstrap.start(Application.class, configuration).thenAccept(instance -> { LOGGER.debug("Server started."); @@ -92,14 +103,14 @@ private static void startServer() { }); } + private static boolean sslCertExists() { + Path serverKeyStore = getSslCert(); + return Files.exists(serverKeyStore); + } + private static SSLContext getSslContext() { SSLContextConfigurator sslContextConfig = new SSLContextConfigurator(); - Path serverKeyStore = Path.of(AppDirsFactory.getInstance() - .getUserDataDir( - OS.APP_DIR_APP_NAME, - "ssl", - OS.APP_DIR_APP_AUTHOR)) - .resolve("server.p12"); + Path serverKeyStore = getSslCert(); if (Files.exists(serverKeyStore)) { sslContextConfig.setKeyStoreFile(serverKeyStore.toString()); sslContextConfig.setKeyStorePass("changeit"); @@ -110,6 +121,16 @@ private static SSLContext getSslContext() { return sslContextConfig.createSSLContext(false); } + @NonNull + private static Path getSslCert() { + return Path.of(AppDirsFactory.getInstance() + .getUserDataDir( + OS.APP_DIR_APP_NAME, + "ssl", + OS.APP_DIR_APP_AUTHOR)) + .resolve("server.p12"); + } + static void stopServer() { serverInstance.stop(); } diff --git a/src/test/java/org/jabref/http/server/LibrariesResourceTest.java b/jabsrv/src/test/java/org/jabref/http/server/LibrariesResourceTest.java similarity index 96% rename from src/test/java/org/jabref/http/server/LibrariesResourceTest.java rename to jabsrv/src/test/java/org/jabref/http/server/LibrariesResourceTest.java index 1ec937d6daf..d86b18f6d77 100644 --- a/src/test/java/org/jabref/http/server/LibrariesResourceTest.java +++ b/jabsrv/src/test/java/org/jabref/http/server/LibrariesResourceTest.java @@ -19,7 +19,7 @@ protected Application configure() { } @Test - void defaultOneTestLibrary() throws Exception { + void defaultOneTestLibrary() { assertEquals("[\"" + TestBibFile.GENERAL_SERVER_TEST.id + "\"]", target("/libraries").request().get(String.class)); } diff --git a/src/test/java/org/jabref/http/server/LibraryResourceTest.java b/jabsrv/src/test/java/org/jabref/http/server/LibraryResourceTest.java similarity index 100% rename from src/test/java/org/jabref/http/server/LibraryResourceTest.java rename to jabsrv/src/test/java/org/jabref/http/server/LibraryResourceTest.java diff --git a/src/test/java/org/jabref/http/server/ServerTest.java b/jabsrv/src/test/java/org/jabref/http/server/ServerTest.java similarity index 100% rename from src/test/java/org/jabref/http/server/ServerTest.java rename to jabsrv/src/test/java/org/jabref/http/server/ServerTest.java diff --git a/src/test/java/org/jabref/http/server/TestBibFile.java b/jabsrv/src/test/java/org/jabref/http/server/TestBibFile.java similarity index 100% rename from src/test/java/org/jabref/http/server/TestBibFile.java rename to jabsrv/src/test/java/org/jabref/http/server/TestBibFile.java diff --git a/src/test/resources/org/jabref/http/server/general-server-test.bib b/jabsrv/src/test/resources/org/jabref/http/server/general-server-test.bib similarity index 100% rename from src/test/resources/org/jabref/http/server/general-server-test.bib rename to jabsrv/src/test/resources/org/jabref/http/server/general-server-test.bib diff --git a/mise.toml b/mise.toml index 2b40d41dff2..bf6b352def6 100644 --- a/mise.toml +++ b/mise.toml @@ -1,2 +1,2 @@ [tools] -java = 'temurin-23' +java = 'temurin-24' diff --git a/settings.gradle b/settings.gradle.kts similarity index 84% rename from settings.gradle rename to settings.gradle.kts index d820ff0ab95..77a936ffb10 100644 --- a/settings.gradle +++ b/settings.gradle.kts @@ -12,10 +12,12 @@ pluginManagement { repositories { maven { - url = 'https://jitpack.io' + url = uri("https://jitpack.io") } gradlePluginPortal() } + + includeBuild("build-logic") } plugins { @@ -23,3 +25,5 @@ plugins { } rootProject.name = "JabRef" + +include("jablib", "jabkit", "jabgui", "jabsrv", "test-support") diff --git a/src/main/java/org/jabref/logic/importer/OpenDatabase.java b/src/main/java/org/jabref/logic/importer/OpenDatabase.java deleted file mode 100644 index 9edcc2c3df2..00000000000 --- a/src/main/java/org/jabref/logic/importer/OpenDatabase.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.jabref.logic.importer; - -import java.io.IOException; -import java.nio.file.Path; -import java.util.Arrays; -import java.util.List; - -import org.jabref.logic.importer.fileformat.BibtexImporter; -import org.jabref.migrations.ConvertLegacyExplicitGroups; -import org.jabref.migrations.ConvertMarkingToGroups; -import org.jabref.migrations.PostOpenMigration; -import org.jabref.migrations.SpecialFieldsToSeparateFields; -import org.jabref.model.util.FileUpdateMonitor; - -public class OpenDatabase { - - private OpenDatabase() { - } - - /** - * Load database (bib-file) - * - * @param fileToOpen Name of the BIB-file to open - * @return ParserResult which never is null - */ - public static ParserResult loadDatabase(Path fileToOpen, ImportFormatPreferences importFormatPreferences, FileUpdateMonitor fileMonitor) - throws IOException { - ParserResult result = new BibtexImporter(importFormatPreferences, fileMonitor).importDatabase(fileToOpen); - performLoadDatabaseMigrations(result, importFormatPreferences.bibEntryPreferences().getKeywordSeparator()); - return result; - } - - private static void performLoadDatabaseMigrations(ParserResult parserResult, - Character keywordDelimited) { - List postOpenMigrations = Arrays.asList( - new ConvertLegacyExplicitGroups(), - new ConvertMarkingToGroups(), - new SpecialFieldsToSeparateFields(keywordDelimited) - ); - - for (PostOpenMigration migration : postOpenMigrations) { - migration.performMigration(parserResult); - } - } -} diff --git a/src/main/java/org/jabref/logic/shared/MySQLProcessor.java b/src/main/java/org/jabref/logic/shared/MySQLProcessor.java deleted file mode 100644 index 906fbaf50e8..00000000000 --- a/src/main/java/org/jabref/logic/shared/MySQLProcessor.java +++ /dev/null @@ -1,86 +0,0 @@ -package org.jabref.logic.shared; - -import java.sql.SQLException; -import java.util.Map; - -import org.jabref.model.metadata.MetaData; - -/** - * Processes all incoming or outgoing bib data to MySQL Database and manages its structure. - */ -public class MySQLProcessor extends DBMSProcessor { - - private Integer VERSION_DB_STRUCT_DEFAULT = -1; - private Integer CURRENT_VERSION_DB_STRUCT = 1; - - public MySQLProcessor(DatabaseConnection connection) { - super(connection); - } - - /** - * Creates and sets up the needed tables and columns according to the database type. - * - * @throws SQLException - */ - @Override - public void setUp() throws SQLException { - connection.createStatement().executeUpdate( - "CREATE TABLE IF NOT EXISTS `JABREF_ENTRY` (" + - "`SHARED_ID` INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, " + - "`TYPE` VARCHAR(255) NOT NULL, " + - "`VERSION` INT(11) DEFAULT 1)"); - - connection.createStatement().executeUpdate( - "CREATE TABLE IF NOT EXISTS `JABREF_FIELD` (" + - "`ENTRY_SHARED_ID` INT(11) NOT NULL, " + - "`NAME` VARCHAR(255) NOT NULL, " + - "`VALUE` TEXT DEFAULT NULL, " + - "FOREIGN KEY (`ENTRY_SHARED_ID`) REFERENCES `JABREF_ENTRY`(`SHARED_ID`) ON DELETE CASCADE)"); - - connection.createStatement().executeUpdate( - "CREATE TABLE IF NOT EXISTS `JABREF_METADATA` (" + - "`KEY` varchar(255) NOT NULL," + - "`VALUE` text NOT NULL)"); - - Map metadata = getSharedMetaData(); - - if (metadata.get(MetaData.VERSION_DB_STRUCT) != null) { - try { - VERSION_DB_STRUCT_DEFAULT = Integer.valueOf(metadata.get(MetaData.VERSION_DB_STRUCT)); - } catch (Exception e) { - LOGGER.warn("[VERSION_DB_STRUCT_DEFAULT] not Integer!"); - } - } else { - LOGGER.warn("[VERSION_DB_STRUCT_DEFAULT] not Exist!"); - } - - if (VERSION_DB_STRUCT_DEFAULT < CURRENT_VERSION_DB_STRUCT) { - // We can to migrate from old table in new table - if (CURRENT_VERSION_DB_STRUCT == 1 && checkTableAvailability("ENTRY", "FIELD", "METADATA")) { - LOGGER.info("Migrating from VersionDBStructure == 0"); - connection.createStatement().executeUpdate("INSERT INTO " + escape_Table("ENTRY") + " SELECT * FROM `ENTRY`"); - connection.createStatement().executeUpdate("INSERT INTO " + escape_Table("FIELD") + " SELECT * FROM `FIELD`"); - connection.createStatement().executeUpdate("INSERT INTO " + escape_Table("METADATA") + " SELECT * FROM `METADATA`"); - metadata = getSharedMetaData(); - } - - metadata.put(MetaData.VERSION_DB_STRUCT, CURRENT_VERSION_DB_STRUCT.toString()); - setSharedMetaData(metadata); - } - } - - @Override - String escape(String expression) { - return "`" + expression + "`"; - } - - @Override - String escape_Table(String expression) { - return escape("JABREF_" + expression); - } - - @Override - Integer getCURRENT_VERSION_DB_STRUCT() { - return CURRENT_VERSION_DB_STRUCT; - } -} diff --git a/src/main/java/org/jabref/logic/shared/OracleProcessor.java b/src/main/java/org/jabref/logic/shared/OracleProcessor.java deleted file mode 100644 index 3221a211808..00000000000 --- a/src/main/java/org/jabref/logic/shared/OracleProcessor.java +++ /dev/null @@ -1,221 +0,0 @@ -package org.jabref.logic.shared; - -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.stream.Collectors; - -import org.jabref.logic.shared.listener.OracleNotificationListener; -import org.jabref.model.entry.BibEntry; -import org.jabref.model.entry.field.Field; -import org.jabref.model.metadata.MetaData; - -import oracle.jdbc.OracleConnection; -import oracle.jdbc.OracleStatement; -import oracle.jdbc.dcn.DatabaseChangeRegistration; - -/** - * Processes all incoming or outgoing bib data to Oracle database and manages its structure. - */ -public class OracleProcessor extends DBMSProcessor { - - private OracleConnection oracleConnection; - - private OracleNotificationListener listener; - - private DatabaseChangeRegistration databaseChangeRegistration; - - private Integer VERSION_DB_STRUCT_DEFAULT = -1; - private Integer CURRENT_VERSION_DB_STRUCT = 0; - - public OracleProcessor(DatabaseConnection connection) { - super(connection); - } - - /** - * Creates and sets up the needed tables and columns according to the database type. - * - * @throws SQLException - */ - @Override - public void setUp() throws SQLException { - connection.createStatement().executeUpdate( - "CREATE TABLE \"ENTRY\" (" + - "\"SHARED_ID\" NUMBER NOT NULL, " + - "\"TYPE\" VARCHAR2(255) NULL, " + - "\"VERSION\" NUMBER DEFAULT 1, " + - "CONSTRAINT \"ENTRY_PK\" PRIMARY KEY (\"SHARED_ID\"))"); - - connection.createStatement().executeUpdate("CREATE SEQUENCE \"ENTRY_SEQ\""); - - connection.createStatement().executeUpdate("CREATE TRIGGER \"ENTRY_T\" BEFORE INSERT ON \"ENTRY\" " + - "FOR EACH ROW BEGIN SELECT \"ENTRY_SEQ\".NEXTVAL INTO :NEW.shared_id FROM DUAL; END;"); - - connection.createStatement().executeUpdate( - "CREATE TABLE \"FIELD\" (" + - "\"ENTRY_SHARED_ID\" NUMBER NOT NULL, " + - "\"NAME\" VARCHAR2(255) NOT NULL, " + - "\"VALUE\" CLOB NULL, " + - "CONSTRAINT \"ENTRY_SHARED_ID_FK\" FOREIGN KEY (\"ENTRY_SHARED_ID\") " + - "REFERENCES \"ENTRY\"(\"SHARED_ID\") ON DELETE CASCADE)"); - - connection.createStatement().executeUpdate( - "CREATE TABLE \"METADATA\" (" + - "\"KEY\" VARCHAR2(255) NULL," + - "\"VALUE\" CLOB NOT NULL)"); - - Map metadata = getSharedMetaData(); - - if (metadata.get(MetaData.VERSION_DB_STRUCT) != null) { - try { - VERSION_DB_STRUCT_DEFAULT = Integer.valueOf(metadata.get(MetaData.VERSION_DB_STRUCT)); - } catch (Exception e) { - LOGGER.warn("[VERSION_DB_STRUCT_DEFAULT] not Integer!"); - } - } else { - LOGGER.warn("[VERSION_DB_STRUCT_DEFAULT] not Exist!"); - } - - if (VERSION_DB_STRUCT_DEFAULT < CURRENT_VERSION_DB_STRUCT) { - // We can to migrate from old table in new table - metadata.put(MetaData.VERSION_DB_STRUCT, CURRENT_VERSION_DB_STRUCT.toString()); - setSharedMetaData(metadata); - } - } - - @Override - String escape(String expression) { - return expression; - } - - @Override - String escape_Table(String expression) { - return escape(expression); - } - - @Override - Integer getCURRENT_VERSION_DB_STRUCT() { - return CURRENT_VERSION_DB_STRUCT; - } - - @Override - public void startNotificationListener(DBMSSynchronizer dbmsSynchronizer) { - this.listener = new OracleNotificationListener(dbmsSynchronizer); - - try { - oracleConnection = (OracleConnection) connection; - - Properties properties = new Properties(); - properties.setProperty(OracleConnection.DCN_NOTIFY_ROWIDS, "true"); - properties.setProperty(OracleConnection.DCN_QUERY_CHANGE_NOTIFICATION, "true"); - - databaseChangeRegistration = oracleConnection.registerDatabaseChangeNotification(properties); - databaseChangeRegistration.addListener(listener); - - try (Statement statement = oracleConnection.createStatement()) { - ((OracleStatement) statement).setDatabaseChangeRegistration(databaseChangeRegistration); - StringBuilder selectQuery = new StringBuilder() - .append("SELECT 1 FROM ") - .append(escape_Table("ENTRY")) - .append(", ") - .append(escape_Table("METADATA")); - // this execution registers all tables mentioned in selectQuery - statement.executeQuery(selectQuery.toString()); - } - } catch (SQLException e) { - LOGGER.error("SQL Error during starting the notification listener", e); - } - } - - @Override - protected void insertIntoEntryTable(List entries) { - try { - for (BibEntry entry : entries) { - String insertIntoEntryQuery = - "INSERT INTO " + - escape_Table("ENTRY") + - "(" + - escape("TYPE") + - ") VALUES(?)"; - - try (PreparedStatement preparedEntryStatement = connection.prepareStatement(insertIntoEntryQuery, - new String[]{"SHARED_ID"})) { - - preparedEntryStatement.setString(1, entry.getType().getName()); - preparedEntryStatement.executeUpdate(); - - try (ResultSet generatedKeys = preparedEntryStatement.getGeneratedKeys()) { - if (generatedKeys.next()) { - entry.getSharedBibEntryData().setSharedID(generatedKeys.getInt(1)); // set generated ID locally - } - } - } - } - } catch (SQLException e) { - LOGGER.error("SQL Error during entry insertion", e); - } - } - - @Override - protected void insertIntoFieldTable(List bibEntries) { - try { - // Inserting into FIELD table - // Coerce to ArrayList in order to use List.get() - List> fields = bibEntries.stream().map(entry -> new ArrayList<>(entry.getFields())) - .collect(Collectors.toList()); - StringBuilder insertFieldQuery = new StringBuilder() - .append("INSERT ALL"); - int numFields = 0; - for (List entryFields : fields) { - numFields += entryFields.size(); - } - for (int i = 0; i < numFields; i++) { - insertFieldQuery.append(" INTO ") - .append(escape_Table("FIELD")) - .append(" (") - .append(escape("ENTRY_SHARED_ID")) - .append(", ") - .append(escape("NAME")) - .append(", ") - .append(escape("VALUE")) - .append(") VALUES (?, ?, ?)"); - } - insertFieldQuery.append(" SELECT * FROM DUAL"); - try (PreparedStatement preparedFieldStatement = connection.prepareStatement(insertFieldQuery.toString())) { - int fieldsCompleted = 0; - for (int entryIndex = 0; entryIndex < fields.size(); entryIndex++) { - for (int entryFieldsIndex = 0; entryFieldsIndex < fields.get(entryIndex).size(); entryFieldsIndex++) { - // columnIndex starts with 1 - preparedFieldStatement.setInt((3 * fieldsCompleted) + 1, bibEntries.get(entryIndex).getSharedBibEntryData().getSharedID()); - preparedFieldStatement.setString((3 * fieldsCompleted) + 2, fields.get(entryIndex).get(entryFieldsIndex).getName()); - preparedFieldStatement.setString((3 * fieldsCompleted) + 3, bibEntries.get(entryIndex).getField(fields.get(entryIndex).get(entryFieldsIndex)).get()); - fieldsCompleted += 1; - } - } - preparedFieldStatement.executeUpdate(); - } - } catch (SQLException e) { - LOGGER.error("SQL Error during field insertion", e); - } - } - - @Override - public void stopNotificationListener() { - try { - oracleConnection.unregisterDatabaseChangeNotification(databaseChangeRegistration); - oracleConnection.close(); - } catch (SQLException e) { - LOGGER.error("SQL Error during stopping the notification listener", e); - } - } - - @Override - public void notifyClients() { - // Do nothing because Oracle triggers notifications automatically. - } -} diff --git a/src/main/java/org/jabref/logic/shared/listener/OracleNotificationListener.java b/src/main/java/org/jabref/logic/shared/listener/OracleNotificationListener.java deleted file mode 100644 index 51aec6ddaaa..00000000000 --- a/src/main/java/org/jabref/logic/shared/listener/OracleNotificationListener.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.jabref.logic.shared.listener; - -import org.jabref.logic.shared.DBMSSynchronizer; - -import oracle.jdbc.dcn.DatabaseChangeEvent; -import oracle.jdbc.dcn.DatabaseChangeListener; - -/** - * A listener for Oracle database notifications. - */ -public class OracleNotificationListener implements DatabaseChangeListener { - - private final DBMSSynchronizer dbmsSynchronizer; - - public OracleNotificationListener(DBMSSynchronizer dbmsSynchronizer) { - this.dbmsSynchronizer = dbmsSynchronizer; - } - - @Override - public void onDatabaseChangeNotification(DatabaseChangeEvent event) { - dbmsSynchronizer.pullChanges(); - } -} diff --git a/src/main/java/org/jabref/model/database/event/AutosaveEvent.java b/src/main/java/org/jabref/model/database/event/AutosaveEvent.java deleted file mode 100644 index dbfd66d9858..00000000000 --- a/src/main/java/org/jabref/model/database/event/AutosaveEvent.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.jabref.model.database.event; - -import org.jabref.gui.autosaveandbackup.AutosaveManager; - -/** - * This Event is fired from {@link AutosaveManager} in case that a save task is pending. - */ -public class AutosaveEvent { - // no data -} diff --git a/src/main/resources/META-INF/services/com.airhacks.afterburner.views.ResourceLocator b/src/main/resources/META-INF/services/com.airhacks.afterburner.views.ResourceLocator deleted file mode 100644 index ffe84d0f5a6..00000000000 --- a/src/main/resources/META-INF/services/com.airhacks.afterburner.views.ResourceLocator +++ /dev/null @@ -1 +0,0 @@ -org.jabref.logic.l10n.LocalizationLocator diff --git a/src/main/resources/luceneIndex/.gitignore b/src/main/resources/luceneIndex/.gitignore deleted file mode 100644 index 72e8ffc0db8..00000000000 --- a/src/main/resources/luceneIndex/.gitignore +++ /dev/null @@ -1 +0,0 @@ -* diff --git a/src/main/resources/luceneIndex/.gitkeep b/src/main/resources/luceneIndex/.gitkeep deleted file mode 100644 index ef056e1e450..00000000000 --- a/src/main/resources/luceneIndex/.gitkeep +++ /dev/null @@ -1,2 +0,0 @@ -# For ensuring this directory is not deleted. -# This directory is used for the Lucene indices. diff --git a/src/main/resources/org/jabref/http/server/http-server-demo.bib b/src/main/resources/org/jabref/http/server/http-server-demo.bib deleted file mode 100644 index f5374fef3ad..00000000000 --- a/src/main/resources/org/jabref/http/server/http-server-demo.bib +++ /dev/null @@ -1,14 +0,0 @@ -@InProceedings{Kopp2018, - author = {Kopp, Oliver and Armbruster, Anita and Zimmermann, Olaf}, - booktitle = {Proceedings of the 10th Central European Workshop on Services and their Composition ({ZEUS} 2018)}, - title = {Markdown Architectural Decision Records: Format and Tool Support}, - year = {2018}, - editor = {Nico Herzberg and Christoph Hochreiner and Oliver Kopp and J{\"{o}}rg Lenhard}, - pages = {55--62}, - publisher = {CEUR-WS.org}, - series = {{CEUR} Workshop Proceedings}, - volume = {2072}, - keywords = {ADR, MADR, architecture decision records, architectural decision records, Nygard}, -} - -@Comment{jabref-meta: databaseType:bibtex;} diff --git a/src/main/resources/xjc/medline/bookdoc_160101.xsd b/src/main/resources/xjc/medline/bookdoc_160101.xsd deleted file mode 100644 index fc7062d98f2..00000000000 --- a/src/main/resources/xjc/medline/bookdoc_160101.xsd +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main/resources/xjc/medline/nlmmedlinecitationset_160101.xsd b/src/main/resources/xjc/medline/nlmmedlinecitationset_160101.xsd deleted file mode 100644 index bdf251007b7..00000000000 --- a/src/main/resources/xjc/medline/nlmmedlinecitationset_160101.xsd +++ /dev/null @@ -1,861 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/test/java/org/jabref/architecture/ArchitectureTest.java b/src/test/java/org/jabref/architecture/ArchitectureTest.java deleted file mode 100644 index 567c8e04853..00000000000 --- a/src/test/java/org/jabref/architecture/ArchitectureTest.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.jabref.architecture; - -import com.tngtech.archunit.core.domain.JavaClasses; -import com.tngtech.archunit.core.importer.ImportOption; -import com.tngtech.archunit.junit.AnalyzeClasses; -import com.tngtech.archunit.junit.ArchTest; - -import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes; -import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.noClasses; - -/** - * This class checks JabRef's test classes for architecture quality - */ -@AnalyzeClasses(packages = "org.jabref", importOptions = ImportOption.OnlyIncludeTests.class) -public class ArchitectureTest { - - private static final String CLASS_ORG_JABREF_GUI_PREFERENCES = "org.jabref.logic.preferences.GuiPreferences"; - - @ArchTest - public void testsAreIndependentOfGuiPreferences(JavaClasses classes) { - noClasses().that().doNotHaveSimpleName("EntryEditorTest") - .and().doNotHaveSimpleName("LinkedFileViewModelTest") - .and().doNotHaveSimpleName("JabRefPreferencesTest") - .and().doNotHaveSimpleName("PreferencesMigrationsTest") - .and().doNotHaveSimpleName("SaveDatabaseActionTest") - .and().doNotHaveSimpleName("UpdateTimestampListenerTest") - .and().doNotHaveSimpleName("DatabaseSearcherWithBibFilesTest") - .and().doNotHaveFullyQualifiedName("org.jabref.benchmarks.Benchmarks") - .and().doNotHaveFullyQualifiedName("org.jabref.testutils.interactive.styletester.StyleTesterMain") - .should().dependOnClassesThat().haveFullyQualifiedName(CLASS_ORG_JABREF_GUI_PREFERENCES) - .check(classes); - } - - @ArchTest - public void testNaming(JavaClasses classes) { - classes().that().areTopLevelClasses() - .and().doNotHaveFullyQualifiedName("org.jabref.benchmarks.Benchmarks") - .and().doNotHaveFullyQualifiedName("org.jabref.http.server.TestBibFile") - .and().doNotHaveFullyQualifiedName("org.jabref.gui.autocompleter.AutoCompleterUtil") - .and().doNotHaveFullyQualifiedName("org.jabref.gui.search.TextFlowEqualityHelper") - .and().doNotHaveFullyQualifiedName("org.jabref.logic.util.CurrentThreadTaskExecutor") - .and().doNotHaveFullyQualifiedName("org.jabref.logic.bibtex.BibEntryAssert") - .and().doNotHaveFullyQualifiedName("org.jabref.logic.importer.fileformat.ImporterTestEngine") - .and().doNotHaveFullyQualifiedName("org.jabref.logic.l10n.JavaLocalizationEntryParser") - .and().doNotHaveFullyQualifiedName("org.jabref.logic.l10n.LocalizationEntry") - .and().doNotHaveFullyQualifiedName("org.jabref.logic.l10n.LocalizationParser") - .and().doNotHaveFullyQualifiedName("org.jabref.logic.openoffice.style.OOBibStyleTestHelper") - .and().doNotHaveFullyQualifiedName("org.jabref.logic.shared.TestManager") - .and().doNotHaveFullyQualifiedName("org.jabref.model.search.rules.MockSearchMatcher") - .and().doNotHaveFullyQualifiedName("org.jabref.model.TreeNodeTestData") - .and().doNotHaveFullyQualifiedName("org.jabref.performance.BibtexEntryGenerator") - .and().doNotHaveFullyQualifiedName("org.jabref.support.DisabledOnCIServer") - .and().doNotHaveFullyQualifiedName("org.jabref.support.CIServerCondition") - .and().doNotHaveFullyQualifiedName("org.jabref.testutils.interactive.styletester.StyleTesterMain") - .and().doNotHaveFullyQualifiedName("org.jabref.testutils.interactive.styletester.StyleTesterView") - .should().haveSimpleNameEndingWith("Test") - .check(classes); - } -} diff --git a/src/test/java/org/jabref/architecture/MainArchitectureTest.java b/src/test/java/org/jabref/architecture/MainArchitectureTest.java deleted file mode 100644 index 476fc088ab8..00000000000 --- a/src/test/java/org/jabref/architecture/MainArchitectureTest.java +++ /dev/null @@ -1,162 +0,0 @@ -package org.jabref.architecture; - -import java.net.URI; -import java.nio.file.Paths; - -import org.jabref.logic.importer.fileformat.ImporterTestEngine; - -import com.tngtech.archunit.core.domain.JavaClasses; -import com.tngtech.archunit.core.importer.ImportOption; -import com.tngtech.archunit.junit.AnalyzeClasses; -import com.tngtech.archunit.junit.ArchTest; -import com.tngtech.archunit.library.GeneralCodingRules; - -import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.noClasses; -import static com.tngtech.archunit.library.Architectures.layeredArchitecture; - -/** - * This class checks JabRef's shipped classes for architecture quality. - * Does not analyze test classes. Hint from StackOverflow - */ -@AnalyzeClasses(packages = "org.jabref", importOptions = ImportOption.DoNotIncludeTests.class) -class MainArchitectureTest { - - private static final String PACKAGE_JAVAX_SWING = "javax.swing.."; - private static final String PACKAGE_JAVA_AWT = "java.awt.."; - private static final String PACKAGE_ORG_JABREF_GUI = "org.jabref.gui.."; - private static final String PACKAGE_ORG_JABREF_LOGIC = "org.jabref.logic.."; - private static final String PACKAGE_ORG_JABREF_MODEL = "org.jabref.model.."; - private static final String PACKAGE_ORG_JABREF_CLI = "org.jabref.cli.."; - - @ArchTest - public void doNotUseApacheCommonsLang3(JavaClasses classes) { - noClasses().that().areNotAnnotatedWith(AllowedToUseApacheCommonsLang3.class) - .should().accessClassesThat().resideInAPackage("org.apache.commons.lang3") - .check(classes); - } - - @ArchTest - public void doNotUseSwing(JavaClasses classes) { - // This checks for all Swing packages, but not the UndoManager - noClasses().that().areNotAnnotatedWith(AllowedToUseSwing.class) - .should().accessClassesThat() - .resideInAnyPackage("javax.swing", - "javax.swing.border..", - "javax.swing.colorchooser..", - "javax.swing.event..", - "javax.swing.filechooser..", - "javax.swing.plaf..", - "javax.swing.table..", - "javax.swing.text..", - "javax.swing.tree..") - .check(classes); - } - - @ArchTest - public void doNotUseAssertJ(JavaClasses classes) { - noClasses().should().accessClassesThat().resideInAPackage("org.assertj..") - .check(classes); - } - - @ArchTest - public void doNotUseJavaAWT(JavaClasses classes) { - noClasses().that().areNotAnnotatedWith(AllowedToUseAwt.class) - .should().accessClassesThat().resideInAPackage(PACKAGE_JAVA_AWT) - .check(classes); - } - - @ArchTest - public void doNotUsePaths(JavaClasses classes) { - noClasses().should() - .accessClassesThat() - .belongToAnyOf(Paths.class) - .because("Path.of(...) should be used instead") - .check(classes); - } - - @ArchTest - public void useStreamsOfResources(JavaClasses classes) { - // Reason: https://github.com/oracle/graal/issues/7682#issuecomment-1786704111 - noClasses().that().haveNameNotMatching(".*Test") - .and().areNotAnnotatedWith(AllowedToUseClassGetResource.class) - .and().areNotAssignableFrom(ImporterTestEngine.class) - .should() - .callMethod(Class.class, "getResource", String.class) - .because("getResourceAsStream(...) should be used instead") - .check(classes); - } - - @ArchTest - public void respectLayeredArchitecture(JavaClasses classes) { - String Logic = "Logic"; - String Model = "Model"; - String Migrations = "Migrations"; - String CLI = "Cli"; - String GUI = "Gui"; - layeredArchitecture().consideringOnlyDependenciesInLayers() - .layer(GUI).definedBy(PACKAGE_ORG_JABREF_GUI) - .layer(Logic).definedBy(PACKAGE_ORG_JABREF_LOGIC) - .layer(Model).definedBy(PACKAGE_ORG_JABREF_MODEL) - .layer(CLI).definedBy(PACKAGE_ORG_JABREF_CLI) - .layer(Migrations).definedBy("org.jabref.migrations..") // TODO: Move to logic - - .whereLayer(GUI).mayOnlyBeAccessedByLayers(Migrations) - .whereLayer(Logic).mayOnlyBeAccessedByLayers(GUI, CLI, Model, Migrations) - .whereLayer(Model).mayOnlyBeAccessedByLayers(GUI, Logic, Migrations, CLI) - - // Needs to be fixed - .whereLayer(CLI).mayOnlyBeAccessedByLayers(GUI) - // .whereLayer(CLI).mayNotBeAccessedByAnyLayer() - - .whereLayer(Migrations).mayOnlyBeAccessedByLayers(GUI, Logic) - .check(classes); - } - - @ArchTest - public void doNotUseLogicInModel(JavaClasses classes) { - noClasses().that().resideInAPackage(PACKAGE_ORG_JABREF_MODEL) - .and().areNotAnnotatedWith(AllowedToUseLogic.class) - .should().dependOnClassesThat().resideInAPackage(PACKAGE_ORG_JABREF_LOGIC) - .check(classes); - } - - @ArchTest - public void restrictUsagesInModel(JavaClasses classes) { - // Until we switch to Lucene, we need to access Globals.stateManager().getActiveDatabase() from the search classes, - // because the PDFSearch needs to access the index of the corresponding database - noClasses().that().areNotAssignableFrom("org.jabref.model.search.rules.ContainBasedSearchRule") - .and().areNotAssignableFrom("org.jabref.model.search.rules.RegexBasedSearchRule") - .and().areNotAssignableFrom("org.jabref.model.search.rules.GrammarBasedSearchRule") - .and().resideInAPackage(PACKAGE_ORG_JABREF_MODEL) - .should().dependOnClassesThat().resideInAPackage(PACKAGE_JAVAX_SWING) - .check(classes); - } - - @ArchTest - public void restrictUsagesInLogic(JavaClasses classes) { - noClasses().that().resideInAPackage(PACKAGE_ORG_JABREF_LOGIC) - .and().areNotAnnotatedWith(AllowedToUseSwing.class) - .and().areNotAssignableFrom("org.jabref.logic.search.DatabaseSearcherWithBibFilesTest") - .should().dependOnClassesThat().resideInAPackage(PACKAGE_JAVAX_SWING) - .check(classes); - } - - @ArchTest - public void restrictStandardStreams(JavaClasses classes) { - noClasses().that().resideOutsideOfPackages(PACKAGE_ORG_JABREF_CLI) - .and().resideOutsideOfPackages("org.jabref.gui.openoffice..") // Uses LibreOffice SDK - .and().areNotAnnotatedWith(AllowedToUseStandardStreams.class) - .should(GeneralCodingRules.ACCESS_STANDARD_STREAMS) - .because("logging framework should be used instead or the class be marked explicitly as @AllowedToUseStandardStreams") - .check(classes); - } - - @ArchTest - public void shouldNotCallUriCreateMethod(JavaClasses classes) { - noClasses() - .that() - .resideInAPackage("org.jabref..") - .should().callMethod(URI.class, "create", String.class) - .check(classes); - } -} diff --git a/src/test/java/org/jabref/cli/CliOptionsTest.java b/src/test/java/org/jabref/cli/CliOptionsTest.java deleted file mode 100644 index 1a11696693b..00000000000 --- a/src/test/java/org/jabref/cli/CliOptionsTest.java +++ /dev/null @@ -1,168 +0,0 @@ -package org.jabref.cli; - -import java.util.Collections; -import java.util.List; - -import javafx.util.Pair; - -import org.jabref.logic.os.OS; - -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; - -class CliOptionsTest { - - private final String bibtex = "@article{test, title=\"test title\"}"; - - @Test - void emptyCLILeftOversLongOptions() throws Exception { - CliOptions cli = new CliOptions(new String[] {"--nogui", "--import=some/file", "--output=some/export/file"}); - - assertEquals(Collections.emptyList(), cli.getLeftOver()); - } - - @Test - void guiIsDisabledLongOptions() throws Exception { - CliOptions cli = new CliOptions(new String[] {"--nogui", "--import=some/file", "--output=some/export/file"}); - - assertTrue(cli.isDisableGui()); - } - - @Test - void successfulParsingOfFileImportCLILongOptions() throws Exception { - CliOptions cli = new CliOptions(new String[] {"--nogui", "--import=some/file", "--output=some/export/file"}); - - assertEquals("some/file", cli.getFileImport()); - } - - @Test - void successfulParsingOfFileExportCLILongOptions() throws Exception { - CliOptions cli = new CliOptions(new String[] {"--nogui", "--import=some/file", "--output=some/export/file"}); - - assertEquals("some/export/file", cli.getFileExport()); - } - - @Test - void emptyCLILeftOversShortOptions() throws Exception { - CliOptions cli = new CliOptions(new String[] {"-n", "-i=some/file", "-o=some/export/file"}); - - assertEquals(Collections.emptyList(), cli.getLeftOver()); - } - - @Test - void guiIsDisabledShortOptions() throws Exception { - CliOptions cli = new CliOptions(new String[] {"-n", "-i=some/file", "-o=some/export/file"}); - - assertTrue(cli.isDisableGui()); - } - - @Test - void successfulParsingOfFileImportShortOptions() throws Exception { - CliOptions cli = new CliOptions(new String[] {"-n", "-i=some/file", "-o=some/export/file"}); - - assertEquals("some/file", cli.getFileImport()); - } - - @Test - void successfulParsingOfFileExportShortOptions() throws Exception { - CliOptions cli = new CliOptions(new String[] {"-n", "-i=some/file", "-o=some/export/file"}); - - assertEquals("some/export/file", cli.getFileExport()); - } - - @Test - void emptyPreferencesLeftOver() throws Exception { - CliOptions cli = new CliOptions(new String[] {"-n", "-x=some/file"}); - - assertEquals(Collections.emptyList(), cli.getLeftOver()); - } - - @Test - void successfulExportOfPreferences() throws Exception { - CliOptions cli = new CliOptions(new String[] {"-n", "-x=some/file"}); - - assertEquals("some/file", cli.getPreferencesExport()); - } - - @Test - void guiDisabledForPreferencesExport() throws Exception { - CliOptions cli = new CliOptions(new String[] {"-n", "-x=some/file"}); - - assertTrue(cli.isDisableGui()); - } - - @Test - void emptyLeftOversCLIShortImportingBibtex() throws Exception { - CliOptions cli = new CliOptions(new String[] {"-ib", bibtex}); - - assertEquals(Collections.emptyList(), cli.getLeftOver()); - } - - @Test - void recognizesImportBibtexShort() throws Exception { - CliOptions cli = new CliOptions(new String[] {"-ib", bibtex}); - - assertTrue(cli.isBibtexImport()); - } - - @Test - void successfulParsingOfBibtexImportShort() throws Exception { - CliOptions cli = new CliOptions(new String[] {"-ib", bibtex}); - - assertEquals(bibtex, cli.getBibtexImport()); - } - - @Test - void emptyLeftOversCLILongImportingBibtex() throws Exception { - CliOptions cli = new CliOptions(new String[] {"-importBibtex", bibtex}); - - assertEquals(Collections.emptyList(), cli.getLeftOver()); - } - - @Test - void recognizesImportBibtexLong() throws Exception { - CliOptions cli = new CliOptions(new String[] {"-importBibtex", bibtex}); - - assertTrue(cli.isBibtexImport()); - } - - @Test - void successfulParsingOfBibtexImportLong() throws Exception { - CliOptions cli = new CliOptions(new String[] {"-importBibtex", bibtex}); - - assertEquals(bibtex, cli.getBibtexImport()); - } - - @Test - void alignStringTable() { - List> given = List.of( - new Pair<>("Apple", "Slice"), - new Pair<>("Bread", "Loaf"), - new Pair<>("Paper", "Sheet"), - new Pair<>("Country", "County")); - - String expected = """ - Apple : Slice - Bread : Loaf - Paper : Sheet - Country : County - """.replace("\n", OS.NEWLINE); - - assertEquals(expected, CliOptions.alignStringTable(given)); - } - - @Test - void checkConsistencyOption() throws Exception { - CliOptions cli = new CliOptions(new String[] {"--check-consistency", "jabref-authors.bib"}); - assertTrue(cli.isCheckConsistency()); - assertEquals("jabref-authors.bib", cli.getCheckConsistency()); - } - - @Test - void checkConsistencyOutputFormatOption() throws Exception { - CliOptions cli = new CliOptions(new String[] {"--check-consistency", "jabref-authors.bib", "--output-format", "csv"}); - assertEquals("csv", cli.getCheckConsistencyOutputFormat()); - } -} diff --git a/src/test/java/org/jabref/logic/shared/ConnectorTest.java b/src/test/java/org/jabref/logic/shared/ConnectorTest.java deleted file mode 100644 index fabcf68b1b1..00000000000 --- a/src/test/java/org/jabref/logic/shared/ConnectorTest.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.jabref.logic.shared; - -import java.sql.SQLException; - -import org.jabref.logic.shared.exception.InvalidDBMSConnectionPropertiesException; -import org.jabref.testutils.category.DatabaseTest; - -/** - * Stores the credentials for the test systems - */ -@DatabaseTest -public class ConnectorTest { - - public static DBMSConnection getTestDBMSConnection(DBMSType dbmsType) throws SQLException, InvalidDBMSConnectionPropertiesException { - DBMSConnectionProperties properties = getTestConnectionProperties(dbmsType); - return new DBMSConnection(properties); - } - - public static DBMSConnectionProperties getTestConnectionProperties(DBMSType dbmsType) { - switch (dbmsType) { - case MYSQL: - return new DBMSConnectionPropertiesBuilder().setType(dbmsType).setHost("127.0.0.1").setPort(3800).setDatabase("jabref").setUser("root").setPassword("root").setUseSSL(false).setAllowPublicKeyRetrieval(true).createDBMSConnectionProperties(); - case POSTGRESQL: - return new DBMSConnectionPropertiesBuilder().setType(dbmsType).setHost("localhost").setPort(dbmsType.getDefaultPort()).setDatabase("postgres").setUser("postgres").setPassword("postgres").setUseSSL(false).createDBMSConnectionProperties(); - case ORACLE: - return new DBMSConnectionPropertiesBuilder().setType(dbmsType).setHost("localhost").setPort(32118).setDatabase("jabref").setUser("jabref").setPassword("jabref").setUseSSL(false).createDBMSConnectionProperties(); - default: - return new DBMSConnectionPropertiesBuilder().createDBMSConnectionProperties(); - } - } -} diff --git a/src/test/java/org/jabref/logic/shared/DBMSConnectionPropertiesTest.java b/src/test/java/org/jabref/logic/shared/DBMSConnectionPropertiesTest.java deleted file mode 100644 index 5f7e6e983b8..00000000000 --- a/src/test/java/org/jabref/logic/shared/DBMSConnectionPropertiesTest.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.jabref.logic.shared; - -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -class DBMSConnectionPropertiesTest { - - @Test - void urlForMySqlDoesNotIncludeSslConfig() { - DBMSConnectionProperties connectionProperties = new DBMSConnectionPropertiesBuilder().setType(DBMSType.MYSQL).setHost("localhost").setPort(3108).setDatabase("jabref").setUser("user").setPassword("password").setUseSSL(false).setAllowPublicKeyRetrieval(true).setServerTimezone("").createDBMSConnectionProperties(); - assertEquals("jdbc:mariadb://localhost:3108/jabref", connectionProperties.getUrl()); - } - - @Test - void urlForOracle() { - DBMSConnectionProperties connectionProperties = new DBMSConnectionPropertiesBuilder().setType(DBMSType.ORACLE).setHost("localhost").setPort(3108).setDatabase("jabref").setUser("user").setPassword("password").setUseSSL(false).setServerTimezone("").createDBMSConnectionProperties(); - assertEquals("jdbc:oracle:thin:@localhost:3108/jabref", connectionProperties.getUrl()); - } -} diff --git a/src/test/java/org/jabref/logic/shared/TestManager.java b/src/test/java/org/jabref/logic/shared/TestManager.java deleted file mode 100644 index 954bbccbb5c..00000000000 --- a/src/test/java/org/jabref/logic/shared/TestManager.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.jabref.logic.shared; - -import java.sql.SQLException; -import java.util.Objects; - -/** - * This class provides helping methods for database tests. Furthermore, it determines database systems which are ready to - * be used for tests. - */ -public class TestManager { - - /** - * Determine the DBMSType to test from the environment variable "DMBS". In case that variable is not set, use "PostgreSQL" as default - */ - public static DBMSType getDBMSTypeTestParameter() { - return DBMSType.fromString(System.getenv("DBMS")).orElse(DBMSType.POSTGRESQL); - } - - public static void clearTables(DBMSConnection dbmsConnection) throws SQLException { - Objects.requireNonNull(dbmsConnection); - DBMSType dbmsType = dbmsConnection.getProperties().getType(); - - if (dbmsType == DBMSType.MYSQL) { - dbmsConnection.getConnection().createStatement().executeUpdate("DROP TABLE IF EXISTS `JABREF_FIELD`"); - dbmsConnection.getConnection().createStatement().executeUpdate("DROP TABLE IF EXISTS `JABREF_ENTRY`"); - dbmsConnection.getConnection().createStatement().executeUpdate("DROP TABLE IF EXISTS `JABREF_METADATA`"); - } else if (dbmsType == DBMSType.POSTGRESQL) { - dbmsConnection.getConnection().createStatement().executeUpdate("DROP TABLE IF EXISTS jabref.\"FIELD\""); - dbmsConnection.getConnection().createStatement().executeUpdate("DROP TABLE IF EXISTS jabref.\"ENTRY\""); - dbmsConnection.getConnection().createStatement().executeUpdate("DROP TABLE IF EXISTS jabref.\"METADATA\""); - dbmsConnection.getConnection().createStatement().executeUpdate("DROP SCHEMA IF EXISTS jabref"); - } else if (dbmsType == DBMSType.ORACLE) { - dbmsConnection.getConnection().createStatement() - .executeUpdate("BEGIN\n" - + "EXECUTE IMMEDIATE 'DROP TABLE \"FIELD\"';\n" + "EXCEPTION\n" + "WHEN OTHERS THEN\n" - + "IF SQLCODE != -942 THEN\n" + "RAISE;\n" + "END IF;\n" + "END;\n"); - dbmsConnection.getConnection().createStatement() - .executeUpdate("BEGIN\n" - + "EXECUTE IMMEDIATE 'DROP TABLE \"ENTRY\"';\n" + "EXCEPTION\n" + "WHEN OTHERS THEN\n" - + "IF SQLCODE != -942 THEN\n" + "RAISE;\n" + "END IF;\n" + "END;\n"); - dbmsConnection.getConnection().createStatement() - .executeUpdate("BEGIN\n" - + "EXECUTE IMMEDIATE 'DROP TABLE \"METADATA\"';\n" + "EXCEPTION\n" + "WHEN OTHERS THEN\n" - + "IF SQLCODE != -942 THEN\n" + "RAISE;\n" + "END IF;\n" + "END;\n"); - dbmsConnection.getConnection().createStatement() - // Sequence does not exist has a different error code than table does not exist - .executeUpdate("BEGIN\n" - + "EXECUTE IMMEDIATE 'DROP SEQUENCE \"ENTRY_SEQ\"';\n" + "EXCEPTION\n" + "WHEN OTHERS THEN\n" - + "IF SQLCODE != -2289 THEN\n" + "RAISE;\n" + "END IF;\n" + "END;\n"); - } - } -} diff --git a/src/test/java/org/jabref/testutils/category/GUITest.java b/src/test/java/org/jabref/testutils/category/GUITest.java deleted file mode 100644 index 8add1b3eda8..00000000000 --- a/src/test/java/org/jabref/testutils/category/GUITest.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.jabref.testutils.category; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Inherited; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import org.junit.jupiter.api.Tag; - -@Target({ElementType.TYPE, ElementType.METHOD}) -@Retention(RetentionPolicy.RUNTIME) -@Inherited -@Tag("GUITest") -public @interface GUITest { - // empty -} diff --git a/test-support/build.gradle.kts b/test-support/build.gradle.kts new file mode 100644 index 00000000000..3f64ca5e1d5 --- /dev/null +++ b/test-support/build.gradle.kts @@ -0,0 +1,29 @@ +plugins { + id("buildlogic.java-common-conventions") + + id("org.openjfx.javafxplugin") version("0.1.0") +} + +dependencies { + implementation(project(":jablib")) + + implementation("org.slf4j:slf4j-api:2.0.17") + implementation("org.tinylog:tinylog-api:2.7.0") + implementation("org.tinylog:slf4j-tinylog:2.7.0") + implementation("org.tinylog:tinylog-impl:2.7.0") + // route all requests to java.util.logging to SLF4J (which in turn routes to tinylog) + implementation("org.slf4j:jul-to-slf4j:2.0.17") + // route all requests to log4j to SLF4J + implementation("org.apache.logging.log4j:log4j-to-slf4j:2.24.3") + + implementation("org.junit.jupiter:junit-jupiter-api:5.12.2") + implementation("org.mockito:mockito-core:5.17.0") + + implementation("org.jspecify:jspecify:1.0.0") +} + +javafx { + version = "24" + // because of afterburner.fx + modules = listOf("javafx.base", "javafx.controls", "javafx.fxml") +} diff --git a/test-support/src/main/java/module-info.java b/test-support/src/main/java/module-info.java new file mode 100644 index 00000000000..440fb50addc --- /dev/null +++ b/test-support/src/main/java/module-info.java @@ -0,0 +1,7 @@ +open module org.jabref.testsupport { + requires org.junit.jupiter.api; + requires org.mockito; + requires org.jabref.jablib; + + exports org.jabref.support; +} diff --git a/src/test/java/org/jabref/logic/bibtex/BibEntryAssert.java b/test-support/src/main/java/org/jabref/support/BibEntryAssert.java similarity index 92% rename from src/test/java/org/jabref/logic/bibtex/BibEntryAssert.java rename to test-support/src/main/java/org/jabref/support/BibEntryAssert.java index 55b9ed98560..ee9d1bf69e9 100644 --- a/src/test/java/org/jabref/logic/bibtex/BibEntryAssert.java +++ b/test-support/src/main/java/org/jabref/support/BibEntryAssert.java @@ -1,4 +1,4 @@ -package org.jabref.logic.bibtex; +package org.jabref.support; import java.io.IOException; import java.io.InputStream; @@ -8,7 +8,6 @@ import java.net.URL; import java.nio.charset.StandardCharsets; import java.nio.file.Path; -import java.util.Collections; import java.util.List; import org.jabref.logic.importer.ImportFormatPreferences; @@ -23,6 +22,9 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.mockito.Mockito.mock; +/** + * TODO: Make this a "public" class to enable jablib consumers benefitting from it, too. + */ public class BibEntryAssert { /** @@ -64,6 +66,11 @@ public static void assertEquals(Class clazz, String resourceName, List getListFromInputStream(InputStream is) throws IOException { ParserResult result; try (Reader reader = new InputStreamReader(is, StandardCharsets.UTF_8)) { + // Option A: Remove mock + // Option B: copy class completely -- chosen option in DevCall 2025-04-21 + // Option C: create separate test module + // Option D: Add parameter (passing through several methods) + // Option E: Add gradle test fixtures - https://blog.cronn.de/en/testing/java/gradle/2023/04/20/gradle-testfixtures.html BibtexParser parser = new BibtexParser(mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS)); result = parser.parse(reader); } @@ -105,7 +112,7 @@ public static void assertEquals(List expectedEntries, InputStream actu */ public static void assertEquals(InputStream expected, BibEntry actual) throws IOException { - assertEquals(expected, Collections.singletonList(actual)); + assertEquals(expected, List.of(actual)); } /** diff --git a/src/test/java/org/jabref/support/DisabledOnCIServer.java b/test-support/src/main/java/org/jabref/support/DisabledOnCIServer.java similarity index 100% rename from src/test/java/org/jabref/support/DisabledOnCIServer.java rename to test-support/src/main/java/org/jabref/support/DisabledOnCIServer.java