diff --git a/build.gradle b/build.gradle index 5d74f386dec..71db4021033 100644 --- a/build.gradle +++ b/build.gradle @@ -102,9 +102,10 @@ configurations { errorprone libreoffice - // TODO: Workaround for "ResolutionException: Modules java.annotation and jsr305 export package javax.annotation to module httpcore.nio" + // TODO: Remove the following workaround for split error messages such as + // error: module java.xml.bind reads package javax.annotation from both jsr305 and java.annotation compile { - exclude group: 'com.google.code.findbugs', module: 'jsr305' + exclude group: "javax.activation" } } @@ -149,9 +150,12 @@ dependencies { compile 'org.postgresql:postgresql:42.2.6' - compile 'com.google.guava:guava:28.0-jre' + compile ('com.google.guava:guava:28.0-jre') { + // TODO: Remove this as soon as https://github.com/google/guava/issues/2960 is fixed + exclude module: "jsr305" + } - compile group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2' + compile group: 'jakarta.annotation', name: 'jakarta.annotation-api', version: '1.3.4' // JavaFX stuff compile 'de.jensd:fontawesomefx-commons:11.0' @@ -161,7 +165,7 @@ dependencies { compile 'org.fxmisc.easybind:easybind:1.0.3' compile 'org.fxmisc.flowless:flowless:0.6.1' compile 'org.fxmisc.richtext:richtextfx:0.10.1' - compile 'javax.inject:javax.inject:1' + compile group: 'org.glassfish.hk2.external', name: 'jakarta.inject', version: '2.6.1' compile 'com.jfoenix:jfoenix:9.0.9' compile 'org.controlsfx:controlsfx:11.0.0' @@ -177,9 +181,9 @@ dependencies { compile 'de.undercouch:citeproc-java:1.0.1' - compile group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1' + compile group: 'jakarta.activation', name: 'jakarta.activation-api', version: '1.2.1' + compile group: 'jakarta.xml.bind', name: 'jakarta.xml.bind-api', version: '2.3.2' compile group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: '2.3.1' - compile 'com.sun.activation:javax.activation:1.2.0' compile 'com.github.tomtung:latex2unicode_2.12:0.2.6' @@ -604,7 +608,7 @@ jlink { // 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 "javafx" - forceMerge "controlsfx", "bcprov", "jaxb", "javax", "istack", "stax", "log4j" + forceMerge "controlsfx", "bcprov", "jaxb", "istack", "stax", "log4j" // 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. @@ -637,7 +641,6 @@ jlink { provides 'org.controlsfx.glyphfont.GlyphFont' with 'org.controlsfx.glyphfont.FontAwesome' provides 'org.apache.commons.logging.LogFactory' with 'org.apache.logging.log4j.jcl.LogFactoryImpl' provides 'org.slf4j.spi.SLF4JServiceProvider' with 'org.apache.logging.slf4j.SLF4JServiceProvider' - provides 'javax.annotation.processing.Processor' with 'org.apache.logging.log4j.core.config.plugins.processor.PluginProcessor' provides 'com.microsoft.applicationinsights.core.dependencies.io.grpc.ServerProvider' with 'com.microsoft.applicationinsights.core.dependencies.io.grpc.netty.shaded.io.grpc.netty.NettyServerProvider' provides 'com.microsoft.applicationinsights.core.dependencies.io.grpc.NameResolverProvider' with 'com.microsoft.applicationinsights.core.dependencies.io.grpc.internal.DnsNameResolverProvider' provides 'java.security.Provider' with 'org.bouncycastle.jce.provider.BouncyCastleProvider', 'org.bouncycastle.pqc.jcajce.provider.BouncyCastlePQCProvider' diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index b0ba567ae84..315e4bec469 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -1,74 +1,75 @@ open module org.jabref { - exports org.jabref; + exports org.jabref; - exports org.jabref.gui; - exports org.jabref.gui.logging; - exports org.jabref.gui.maintable; - exports org.jabref.gui.specialfields; + exports org.jabref.gui; + exports org.jabref.gui.logging; + exports org.jabref.gui.maintable; + exports org.jabref.gui.specialfields; - exports org.jabref.model.database; + exports org.jabref.model.database; - exports org.jabref.logic; - exports org.jabref.logic.citationstyle; - exports org.jabref.logic.search; + exports org.jabref.logic; + exports org.jabref.logic.citationstyle; + exports org.jabref.logic.search; - // Swing - requires java.desktop; + // Swing + requires java.desktop; - // SQL - requires java.sql; + // SQL + requires java.sql; - // JavaFX - requires javafx.graphics; - requires javafx.swing; - requires javafx.controls; - requires javafx.web; - requires javafx.fxml; - requires afterburner.fx; - requires com.jfoenix; - requires de.saxsys.mvvmfx; - requires de.jensd.fx.fontawesomefx.commons; - requires de.jensd.fx.fontawesomefx.materialdesignicons; - requires org.controlsfx.controls; + // JavaFX + requires javafx.graphics; + requires javafx.swing; + requires javafx.controls; + requires javafx.web; + requires javafx.fxml; + requires afterburner.fx; + requires com.jfoenix; + requires de.saxsys.mvvmfx; + requires de.jensd.fx.fontawesomefx.commons; + requires de.jensd.fx.fontawesomefx.materialdesignicons; + requires org.controlsfx.controls; - provides com.airhacks.afterburner.views.ResourceLocator - with org.jabref.gui.util.JabRefResourceLocator; + provides com.airhacks.afterburner.views.ResourceLocator + with org.jabref.gui.util.JabRefResourceLocator; - provides com.airhacks.afterburner.injection.PresenterFactory - with org.jabref.gui.DefaultInjector; + provides com.airhacks.afterburner.injection.PresenterFactory + with org.jabref.gui.DefaultInjector; - // Logging - requires org.slf4j; - requires org.apache.logging.log4j; - requires org.apache.logging.log4j.core; - requires applicationinsights.logging.log4j2; + // Logging + requires org.slf4j; + requires org.apache.logging.log4j; + requires org.apache.logging.log4j.core; + requires applicationinsights.logging.log4j2; - // Preferences and XML - requires java.prefs; - requires java.xml.bind; - requires jdk.xml.dom; + // Preferences and XML + requires java.prefs; + requires java.xml.bind; + requires jdk.xml.dom; - // Annotations (@PostConstruct) - requires java.annotation; + // Annotations (@PostConstruct) + requires java.annotation; - // Microsoft application insights - requires applicationinsights.core; + // Microsoft application insights + requires applicationinsights.core; - // Libre Office - requires org.jabref.thirdparty.libreoffice; + // Libre Office + requires org.jabref.thirdparty.libreoffice; - // Other modules - requires commons.logging; - requires com.google.common; - requires easybind; - requires javax.inject; - requires pdfbox; - requires reactfx; - requires commons.cli; - requires httpclient; - requires com.github.tomtung.latex2unicode; - requires jbibtex; - requires citeproc.java; - requires antlr.runtime; - requires commons.lang3; + // Other modules + requires commons.logging; + requires com.google.common; + requires easybind; + requires jakarta.inject; + requires pdfbox; + requires reactfx; + requires commons.cli; + requires httpclient; + requires com.github.tomtung.latex2unicode; + requires jbibtex; + requires citeproc.java; + requires antlr.runtime; + requires commons.lang3; + requires xmpbox; }