diff --git a/2d/build.gradle b/2d/build.gradle index dddb1ff1f..bc3b2c9a2 100644 --- a/2d/build.gradle +++ b/2d/build.gradle @@ -1,7 +1,7 @@ /* * The MIT License (MIT) * - * Copyright (c) 2015-2022 TweetWallFX + * Copyright (c) 2015-2023 TweetWallFX * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -21,9 +21,14 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ +apply plugin: 'org.openjfx.javafxplugin' dependencies { implementation 'org.slf4j:slf4j-api' implementation project(':tweetwallfx-configuration') implementation project(':tweetwallfx-controls') } + +javafx { + modules = [ 'javafx.controls', 'javafx.graphics' ] +} diff --git a/2d/src/main/java/module-info.java b/2d/src/main/java/module-info.java new file mode 100644 index 000000000..dd74c1e81 --- /dev/null +++ b/2d/src/main/java/module-info.java @@ -0,0 +1,31 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2023-2023 TweetWallFX + * + * 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. + */ +module org.tweetwallfx.twod { + exports org.tweetwallfx.twod; + requires javafx.controls; + requires javafx.graphics; + requires org.slf4j; + requires org.tweetwallfx.config; + requires org.tweetwallfx.controls; +} diff --git a/build.gradle b/build.gradle index d45e0e0c5..6135d777d 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ /* * The MIT License (MIT) * - * Copyright (c) 2015-2023 TweetWallFX + * Copyright (c) 2015-2022 TweetWallFX * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -25,16 +25,15 @@ plugins { id 'base' id 'build-dashboard' - id 'java-platform' - id 'com.diffplug.spotless' version '6.25.0' - id 'com.github.ben-manes.versions' version '0.51.0' - id 'com.github.spotbugs' version '6.0.8' apply false + id 'com.diffplug.spotless' version '6.15.0' + id 'com.github.ben-manes.versions' version '0.46.0' + id 'com.github.spotbugs' version '5.0.13' apply false id 'com.google.osdetector' version '1.7.3' - id 'com.netflix.nebula.info' version '13.0.0' apply false - id 'com.netflix.nebula.maven-base-publish' version '21.0.0' apply false - id 'net.ltgt.errorprone' version '3.1.0' apply false - id 'org.sonarqube' version '4.4.1.3373' - id 'com.autonomousapps.dependency-analysis' version '1.30.0' + id 'nebula.info-dependencies' version '11.4.1' apply false + id 'nebula.maven-nebula-publish' version '18.4.0' apply false + id 'net.ltgt.errorprone' version '3.0.1' apply false + id 'org.sonarqube' version '4.0.0.2929' + id 'com.autonomousapps.dependency-analysis' version '1.19.0' } ext { @@ -72,7 +71,7 @@ allprojects { repositories { mavenCentral() - jcenter() + mavenLocal() } // configuring Spotless @@ -204,11 +203,13 @@ allprojects { all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> +/* if (details.requested.group == 'org.ow2.asm' && details.requested.name == 'asm') { details.useVersion '9.5' details.because 'workaround for spotbugs not yet supporting JDK 21 class formats' } +*/ } } @@ -228,15 +229,15 @@ allprojects { // get recommended versions from the platform project api platform(rootProject) - javafx group: 'org.openjfx', name: 'javafx-base', version: '21.0.2', classifier: javaFxPlatform - javafx group: 'org.openjfx', name: 'javafx-graphics', version: '21.0.2', classifier: javaFxPlatform - javafx group: 'org.openjfx', name: 'javafx-fxml', version: '21.0.2', classifier: javaFxPlatform - javafx group: 'org.openjfx', name: 'javafx-controls', version: '21.0.2', classifier: javaFxPlatform + javafx group: 'org.openjfx', name: 'javafx-base', version: '19.0.2.1', classifier: javaFxPlatform + javafx group: 'org.openjfx', name: 'javafx-graphics', version: '19.0.2.1', classifier: javaFxPlatform + javafx group: 'org.openjfx', name: 'javafx-fxml', version: '19.0.2.1', classifier: javaFxPlatform + javafx group: 'org.openjfx', name: 'javafx-controls', version: '19.0.2.1', classifier: javaFxPlatform - jaxb 'jakarta.activation:jakarta.activation-api:2.1.3' - jaxb 'org.eclipse.angus:angus-activation:2.0.2' - jaxb 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.1' - jaxb 'org.glassfish.jaxb:jaxb-runtime:4.0.4' + jaxb 'jakarta.activation:jakarta.activation-api:2.1.1' + jaxb 'org.eclipse.angus:angus-activation:2.0.0' + jaxb 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.0' + jaxb 'org.glassfish.jaxb:jaxb-runtime:4.0.2' testFramework 'org.assertj:assertj-core:3.25.3' testFramework 'org.junit.jupiter:junit-jupiter-api' @@ -255,8 +256,8 @@ allprojects { 'jakarta.activation', 'jakarta.xml.bind', 'javafx.controls', - 'javafx.fxml', 'javafx.graphics', + 'javafx.fxml' ].toUnique().toSorted().join(',') } } @@ -266,8 +267,6 @@ allprojects { } tasks.named('javadoc') { - options.addStringOption('-module-path', getJvmModulePath()) - options.addStringOption('-add-modules', getJvmAdditionalModules()) enabled = false // TODO: re-enable (currently breaks build with ClassCastException) } @@ -278,30 +277,17 @@ allprojects { '--enable-preview', '-Werror', '-proc:none', - '--module-path', - getJvmModulePath(), - '--add-modules', - getJvmAdditionalModules(), ]) } tasks.withType(JavaExec).configureEach { jvmArgs '--enable-preview' - jvmArgs '--module-path' - jvmArgs getJvmModulePath() - jvmArgs '--add-modules' - jvmArgs getJvmAdditionalModules() jvmArgs '--add-opens' jvmArgs 'java.base/jdk.internal.misc=ALL-UNNAMED' } tasks.withType(Test).configureEach { jvmArgs '--enable-preview' - jvmArgs '--module-path' - jvmArgs getJvmModulePath() - jvmArgs '--add-modules' - jvmArgs getJvmAdditionalModules() - systemProperty 'org.tweetwallfx.tests.executeConferenceClientLiveTests', executeConferenceClientLiveTests useJUnitPlatform() testLogging { @@ -335,11 +321,6 @@ allprojects { // fail build in case a failure was detected ignoreFailures = false - jvmArgs.add '--module-path' - jvmArgs.add getJvmModulePath() - jvmArgs.add '--add-modules' - jvmArgs.add getJvmAdditionalModules() - excludeFilter = rootProject.file('spotbugs-exclude.xml') omitVisitors = [ diff --git a/cache/build.gradle b/cache/build.gradle index 3333ab572..77f0e9b6f 100644 --- a/cache/build.gradle +++ b/cache/build.gradle @@ -1,7 +1,7 @@ /* * The MIT License (MIT) * - * Copyright (c) 2015-2022 TweetWallFX + * Copyright (c) 2015-2023 TweetWallFX * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -25,9 +25,7 @@ dependencies { api project(':tweetwallfx-configuration') - implementation 'com.github.spotbugs:spotbugs-annotations' - implementation 'org.ehcache:ehcache' - implementation 'org.slf4j:slf4j-api' + implementation 'org.ehcache:ehcache:3.10.8' runtimeOnly 'org.apache.logging.log4j:log4j-slf4j-impl' } diff --git a/cache/src/main/java/module-info.java b/cache/src/main/java/module-info.java new file mode 100644 index 000000000..771100b4c --- /dev/null +++ b/cache/src/main/java/module-info.java @@ -0,0 +1,32 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2023-2023 TweetWallFX + * + * 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. + */ +module org.tweetwallfx.cache { + requires com.github.spotbugs.annotations; + requires org.ehcache.api; + requires org.ehcache.impl; + requires org.slf4j; + requires org.tweetwallfx.config; + requires org.tweetwallfx.util; + exports org.tweetwallfx.cache; +} diff --git a/conference-api/src/main/java/module-info.java b/conference-api/src/main/java/module-info.java new file mode 100644 index 000000000..9da24415f --- /dev/null +++ b/conference-api/src/main/java/module-info.java @@ -0,0 +1,26 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2023-2023 TweetWallFX + * + * 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. + */ +module org.tweetwallfx.conference.api { + exports org.tweetwallfx.conference.api; +} diff --git a/conference-spi/src/main/java/module-info.java b/conference-spi/src/main/java/module-info.java new file mode 100644 index 000000000..ac5e2b988 --- /dev/null +++ b/conference-spi/src/main/java/module-info.java @@ -0,0 +1,28 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2023-2023 TweetWallFX + * + * 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. + */ +module org.tweetwallfx.conference.spi { + requires jakarta.ws.rs; + requires org.slf4j; + requires org.tweetwallfx.conference.api; +} diff --git a/conference-stepengine/build.gradle b/conference-stepengine/build.gradle index 259f1005b..2ff80b22d 100644 --- a/conference-stepengine/build.gradle +++ b/conference-stepengine/build.gradle @@ -1,7 +1,7 @@ /* * The MIT License (MIT) * - * Copyright (c) 2015-2022 TweetWallFX + * Copyright (c) 2015-2023 TweetWallFX * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -21,6 +21,8 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ +apply plugin: 'org.openjfx.javafxplugin' + dependencies { api project(':tweetwallfx-conference-api') @@ -32,3 +34,7 @@ dependencies { implementation project(':tweetwallfx-stepengine-dataproviders') implementation project(':tweetwallfx-transitions') } + +javafx { + modules = [ 'javafx.graphics' ] +} diff --git a/conference-stepengine/src/main/java/module-info.java b/conference-stepengine/src/main/java/module-info.java new file mode 100644 index 000000000..1076c77b5 --- /dev/null +++ b/conference-stepengine/src/main/java/module-info.java @@ -0,0 +1,39 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2023-2023 TweetWallFX + * + * 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. + */ +module org.tweetwallfx.conference.stepengine { + requires de.jensd.fx.fontawesomefx.fontawesome; + requires javafx.controls; + requires javafx.fxml; + requires javafx.graphics; + requires org.slf4j; + requires org.tweetwallfx.cache; + requires org.tweetwallfx.conference.api; + requires org.tweetwallfx.controls; + requires org.tweetwallfx.filterchain; + requires org.tweetwallfx.stepengine.api; + requires org.tweetwallfx.stepengine.dataproviders; + requires org.tweetwallfx.transitions; + requires org.tweetwallfx.tweet.api; + requires org.tweetwallfx.util; +} diff --git a/conference-test/src/main/java/module-info.java b/conference-test/src/main/java/module-info.java new file mode 100644 index 000000000..ae425c254 --- /dev/null +++ b/conference-test/src/main/java/module-info.java @@ -0,0 +1,30 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2023-2023 TweetWallFX + * + * 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. + */ +module org.tweetwallfx.conference.test { + requires jakarta.ws.rs; + requires org.assertj.core; + requires org.junit.jupiter.api; + requires org.slf4j; + requires org.tweetwallfx.conference.api; +} diff --git a/config/src/main/java/module-info.java b/config/src/main/java/module-info.java new file mode 100644 index 000000000..947652375 --- /dev/null +++ b/config/src/main/java/module-info.java @@ -0,0 +1,29 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2023-2023 TweetWallFX + * + * 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. + */ +module org.tweetwallfx.config { + requires org.slf4j; + requires org.tweetwallfx.util; + exports org.tweetwallfx.config; + exports org.tweetwallfx.config.testcase; +} diff --git a/controls/build.gradle b/controls/build.gradle index 9ff7e123f..742557f27 100644 --- a/controls/build.gradle +++ b/controls/build.gradle @@ -21,6 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ +apply plugin: 'org.openjfx.javafxplugin' dependencies { implementation 'org.ocpsoft.prettytime:prettytime:5.0.7.Final' @@ -33,3 +34,7 @@ dependencies { implementation project(':tweetwallfx-stepengine-dataproviders') implementation project(':tweetwallfx-transitions') } + +javafx { + modules = [ 'javafx.controls', 'javafx.graphics' ] +} diff --git a/controls/src/main/java/module-info.java b/controls/src/main/java/module-info.java new file mode 100644 index 000000000..8a1f485ed --- /dev/null +++ b/controls/src/main/java/module-info.java @@ -0,0 +1,43 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2023-2023 TweetWallFX + * + * 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. + */ +module org.tweetwallfx.controls { + requires de.jensd.fx.fontawesomefx.commons; + requires de.jensd.fx.fontawesomefx.fontawesome; + requires humanize.slim; + requires javafx.controls; + requires javafx.graphics; + requires org.slf4j; + requires org.tweetwallfx.core; + requires org.tweetwallfx.emoji; + requires org.tweetwallfx.stepengine.api; + requires org.tweetwallfx.stepengine.dataproviders; + requires org.tweetwallfx.transitions; + requires org.tweetwallfx.tweet.api; + requires org.tweetwallfx.util; + requires pluralize; + exports org.tweetwallfx.controls; + exports org.tweetwallfx.controls.dataprovider; + exports org.tweetwallfx.controls.steps; + exports org.tweetwallfx.controls.util; +} diff --git a/core/build.gradle b/core/build.gradle index e38aefaea..43d0b62ec 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -24,6 +24,5 @@ dependencies { implementation 'com.vdurmont:emoji-java' - implementation 'org.slf4j:slf4j-api' implementation project(':tweetwallfx-configuration') } diff --git a/core/src/main/java/module-info.java b/core/src/main/java/module-info.java new file mode 100644 index 000000000..083c8cd8c --- /dev/null +++ b/core/src/main/java/module-info.java @@ -0,0 +1,29 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2023-2023 TweetWallFX + * + * 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. + */ +module org.tweetwallfx.core { + requires com.vdurmont.emoji; + requires org.slf4j; + requires org.tweetwallfx.config; + exports org.tweetwallfx.tweet; +} diff --git a/emoji/build.gradle b/emoji/build.gradle index ffa3956d0..b19097067 100644 --- a/emoji/build.gradle +++ b/emoji/build.gradle @@ -28,3 +28,7 @@ dependencies { implementation 'com.vdurmont:emoji-java' implementation 'org.slf4j:slf4j-api' } + +javafx { + modules = [ 'javafx.graphics' ] +} diff --git a/emoji/src/main/java/module-info.java b/emoji/src/main/java/module-info.java new file mode 100644 index 000000000..7496b94a2 --- /dev/null +++ b/emoji/src/main/java/module-info.java @@ -0,0 +1,30 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2023-2023 TweetWallFX + * + * 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. + */ +module org.tweetwallfx.emoji { + requires com.vdurmont.emoji; + requires javafx.graphics; + requires org.slf4j; + requires org.tweetwallfx.cache; + exports org.tweetwallfx.emoji.control; +} diff --git a/filterchain/src/main/java/module-info.java b/filterchain/src/main/java/module-info.java new file mode 100644 index 000000000..763dd994b --- /dev/null +++ b/filterchain/src/main/java/module-info.java @@ -0,0 +1,30 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2023-2023 TweetWallFX + * + * 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. + */ +module org.tweetwallfx.filterchain { + requires org.slf4j; + requires org.tweetwallfx.config; + requires org.tweetwallfx.util; + exports org.tweetwallfx.filterchain; + exports org.tweetwallfx.filterchain.testcase; +} diff --git a/generic2d/build.gradle b/generic2d/build.gradle index f90559350..2799c801a 100644 --- a/generic2d/build.gradle +++ b/generic2d/build.gradle @@ -21,6 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ +apply plugin: 'org.openjfx.javafxplugin' dependencies { compileOnly 'org.osgi:osgi.annotation:8.1.0' @@ -33,3 +34,7 @@ dependencies { runtimeOnly 'org.apache.logging.log4j:log4j-slf4j2-impl' } + +javafx { + modules = [ 'javafx.graphics' ] +} diff --git a/generic2d/src/main/java/module-info.java b/generic2d/src/main/java/module-info.java new file mode 100644 index 000000000..4fc1dba71 --- /dev/null +++ b/generic2d/src/main/java/module-info.java @@ -0,0 +1,32 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2023-2023 TweetWallFX + * + * 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. + */ +module org.tweetwallfx.generic2d { + requires javafx.graphics; + requires org.apache.logging.log4j; + requires org.apache.logging.log4j.core; + requires org.slf4j; + requires org.tweetwallfx.config; + requires org.tweetwallfx.tweet.api; + requires org.tweetwallfx.twod; +} diff --git a/google-cloud/src/main/java/module-info.java b/google-cloud/src/main/java/module-info.java new file mode 100644 index 000000000..1388704b2 --- /dev/null +++ b/google-cloud/src/main/java/module-info.java @@ -0,0 +1,38 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2023-2023 TweetWallFX + * + * 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. + */ +module org.tweetwallfx.google.cloud { + requires com.google.auth; + requires com.google.auth.oauth2; + requires com.google.protobuf; + requires gax; + requires google.cloud.vision; + requires org.slf4j; + requires org.tweetwallfx.cache; + requires org.tweetwallfx.config; + requires org.tweetwallfx.filterchain; + requires org.tweetwallfx.util; + requires org.tweetwallfx.tweet.api; + requires proto.google.cloud.vision.v1; + requires proto.google.common.protos; +} diff --git a/stepengine-api/build.gradle b/stepengine-api/build.gradle index b0b04281a..1c6dc3a23 100644 --- a/stepengine-api/build.gradle +++ b/stepengine-api/build.gradle @@ -1,7 +1,7 @@ /* * The MIT License (MIT) * - * Copyright (c) 2015-2022 TweetWallFX + * Copyright (c) 2015-2023 TweetWallFX * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -21,6 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ +apply plugin: 'org.openjfx.javafxplugin' dependencies { api project(':tweetwallfx-configuration') @@ -29,3 +30,7 @@ dependencies { implementation 'com.github.spotbugs:spotbugs-annotations' implementation 'org.slf4j:slf4j-api' } + +javafx { + modules = [ 'javafx.graphics' ] +} diff --git a/stepengine-api/src/main/java/module-info.java b/stepengine-api/src/main/java/module-info.java new file mode 100644 index 000000000..6f9003dbd --- /dev/null +++ b/stepengine-api/src/main/java/module-info.java @@ -0,0 +1,33 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2023-2023 TweetWallFX + * + * 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. + */ +module org.tweetwallfx.stepengine.api { + exports org.tweetwallfx.stepengine.api; + exports org.tweetwallfx.stepengine.api.config; + requires com.github.spotbugs.annotations; + requires javafx.graphics; + requires org.slf4j; + requires org.tweetwallfx.config; + requires org.tweetwallfx.tweet.api; + requires org.tweetwallfx.util; +} diff --git a/stepengine-dataproviders/build.gradle b/stepengine-dataproviders/build.gradle index c3a28b5ab..821eae114 100644 --- a/stepengine-dataproviders/build.gradle +++ b/stepengine-dataproviders/build.gradle @@ -22,6 +22,8 @@ * THE SOFTWARE. */ +apply plugin: 'org.openjfx.javafxplugin' + dependencies { api project(':tweetwallfx-cache') api project(':tweetwallfx-stepengine-api') @@ -29,3 +31,7 @@ dependencies { implementation 'com.github.spotbugs:spotbugs-annotations' implementation 'org.slf4j:slf4j-api' } + +javafx { + modules = [ 'javafx.graphics' ] +} diff --git a/stepengine-dataproviders/src/main/java/module-info.java b/stepengine-dataproviders/src/main/java/module-info.java new file mode 100644 index 000000000..1b4acd3fb --- /dev/null +++ b/stepengine-dataproviders/src/main/java/module-info.java @@ -0,0 +1,34 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2023-2023 TweetWallFX + * + * 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. + */ +module org.tweetwallfx.stepengine.dataproviders { + exports org.tweetwallfx.stepengine.dataproviders; + requires com.github.spotbugs.annotations; + requires javafx.graphics; + requires org.slf4j; + requires org.tweetwallfx.cache; + requires org.tweetwallfx.config; + requires org.tweetwallfx.stepengine.api; + requires org.tweetwallfx.tweet.api; + requires org.tweetwallfx.util; +} diff --git a/stepengine-steps/src/main/java/module-info.java b/stepengine-steps/src/main/java/module-info.java new file mode 100644 index 000000000..b99c36df1 --- /dev/null +++ b/stepengine-steps/src/main/java/module-info.java @@ -0,0 +1,28 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2023-2023 TweetWallFX + * + * 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. + */ +module org.tweetwallfx.stepengine.steps { + requires org.tweetwallfx.stepengine.api; + requires org.tweetwallfx.stepengine.dataproviders; + requires org.tweetwallfx.util; +} diff --git a/transitions/build.gradle b/transitions/build.gradle index fd941ee55..ceb40289b 100644 --- a/transitions/build.gradle +++ b/transitions/build.gradle @@ -1,7 +1,7 @@ /* * The MIT License (MIT) * - * Copyright (c) 2017-2022 TweetWallFX + * Copyright (c) 2017-2023 TweetWallFX * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -21,3 +21,8 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ +apply plugin: 'org.openjfx.javafxplugin' + +javafx { + modules = [ 'javafx.graphics' ] +} diff --git a/transitions/src/main/java/module-info.java b/transitions/src/main/java/module-info.java new file mode 100644 index 000000000..f813e90f0 --- /dev/null +++ b/transitions/src/main/java/module-info.java @@ -0,0 +1,27 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2023-2023 TweetWallFX + * + * 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. + */ +module org.tweetwallfx.transitions { + exports org.tweetwallfx.transitions; + requires javafx.graphics; +} diff --git a/tweet-api/src/main/java/module-info.java b/tweet-api/src/main/java/module-info.java new file mode 100644 index 000000000..06acd8334 --- /dev/null +++ b/tweet-api/src/main/java/module-info.java @@ -0,0 +1,34 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2023-2023 TweetWallFX + * + * 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. + */ +module org.tweetwallfx.tweet.api { + requires org.slf4j; + requires org.tweetwallfx.config; + requires org.tweetwallfx.filterchain; + requires org.tweetwallfx.util; + exports org.tweetwallfx.tweet.api; + exports org.tweetwallfx.tweet.api.config; + exports org.tweetwallfx.tweet.api.entry; + exports org.tweetwallfx.tweet.api.filter; + exports org.tweetwallfx.tweet.api.testcase; +} diff --git a/tweet-impl-twitter4j/build.gradle b/tweet-impl-twitter4j/build.gradle index 0a4e3632f..af1f1741c 100644 --- a/tweet-impl-twitter4j/build.gradle +++ b/tweet-impl-twitter4j/build.gradle @@ -22,9 +22,15 @@ * THE SOFTWARE. */ +apply plugin: 'org.openjfx.javafxplugin' + dependencies { api project(':tweetwallfx-tweet-api') implementation 'org.slf4j:slf4j-api' implementation 'org.twitter4j:twitter4j-core:4.1.2' } + +javafx { + modules = [ 'javafx.base' ] +} diff --git a/tweet-impl-twitter4j/src/main/java/module-info.java b/tweet-impl-twitter4j/src/main/java/module-info.java new file mode 100644 index 000000000..f635769ae --- /dev/null +++ b/tweet-impl-twitter4j/src/main/java/module-info.java @@ -0,0 +1,32 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2023-2023 TweetWallFX + * + * 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. + */ +module org.tweetwallfx.tweet.impl.twitter4j { + requires javafx.base; + requires org.slf4j; + requires org.tweetwallfx.config; + requires org.tweetwallfx.filterchain; + requires org.tweetwallfx.tweet.api; + requires org.tweetwallfx.util; + requires org.twitter4j; +} diff --git a/tweet-impl-twitter4j/src/main/java/org/tweetwallfx/tweet/impl/twitter4j/TwitterOAuth.java b/tweet-impl-twitter4j/src/main/java/org/tweetwallfx/tweet/impl/twitter4j/TwitterOAuth.java index 3656e2e46..1fcce063f 100644 --- a/tweet-impl-twitter4j/src/main/java/org/tweetwallfx/tweet/impl/twitter4j/TwitterOAuth.java +++ b/tweet-impl-twitter4j/src/main/java/org/tweetwallfx/tweet/impl/twitter4j/TwitterOAuth.java @@ -127,6 +127,6 @@ public static ReadOnlyObjectProperty exception() { } public static TwitterOAuth instance() { - return INSTANCE_REFERENCE.updateAndGet(TwitterOAuth::checkOrInitialize); + return INSTANCE_REFERENCE.getAndUpdate(TwitterOAuth::checkOrInitialize); } } diff --git a/util/src/main/java/module-info.java b/util/src/main/java/module-info.java new file mode 100644 index 000000000..2e5ab07bd --- /dev/null +++ b/util/src/main/java/module-info.java @@ -0,0 +1,29 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2023-2023 TweetWallFX + * + * 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. + */ +module org.tweetwallfx.util { + requires org.slf4j; + requires com.fasterxml.jackson.databind; + exports org.tweetwallfx.util; + exports org.tweetwallfx.util.testcase; +}