diff --git a/build.gradle b/build.gradle index a293227..877b19d 100644 --- a/build.gradle +++ b/build.gradle @@ -2,9 +2,9 @@ plugins { id 'maven-publish' alias catalog.plugins.envelope apply false alias catalog.plugins.lombok apply false - alias catalog.plugins.multi.release.jar } + allprojects { apply plugin: 'java-library' apply plugin: catalog.plugins.lombok.get().pluginId @@ -12,6 +12,10 @@ allprojects { group = "net.woggioni" version = getProperty('wson.version') + java { + modularity.inferModulePath = true + } + lombok { version = catalog.versions.lombok.get() } @@ -39,11 +43,20 @@ allprojects { test { useJUnitPlatform() } + + tasks.named(JavaPlugin.COMPILE_JAVA_TASK_NAME, JavaCompile) { + options.release = 17 + } + + pluginManager.withPlugin(catalog.plugins.kotlin.jvm.get().pluginId) { + compileKotlin { + kotlinOptions.with { + jvmTarget = '17' + } + } + } } -ext { - setProperty('jpms.module.name', 'net.woggioni.wson') -} dependencies { implementation catalog.jwo diff --git a/settings.gradle b/settings.gradle index 0fe099b..34886e8 100644 --- a/settings.gradle +++ b/settings.gradle @@ -31,7 +31,15 @@ dependencyResolutionManagement { rootProject.name = 'wson' -def includeDirs = ['antlr', 'benchmark', 'test-utils', 'wson-cli', 'wson-w3c-json', 'wcfg'] +def includeDirs = [ + 'antlr', + 'benchmark', + 'test-utils', + 'wson-cli', + 'wson-w3c-json', + 'wcfg', + 'wcfg-cli' +] includeDirs.each { include(it) diff --git a/src/java9/java/module-info.java b/src/main/java/module-info.java similarity index 82% rename from src/java9/java/module-info.java rename to src/main/java/module-info.java index a7cb49a..592b169 100644 --- a/src/java9/java/module-info.java +++ b/src/main/java/module-info.java @@ -1,4 +1,5 @@ module net.woggioni.wson { + requires static lombok; requires net.woggioni.jwo; exports net.woggioni.wson.xface; @@ -7,4 +8,5 @@ module net.woggioni.wson { exports net.woggioni.wson.serialization; exports net.woggioni.wson.serialization.json; exports net.woggioni.wson.serialization.binary; + exports net.woggioni.wson.traversal; } \ No newline at end of file diff --git a/src/main/java9/module-info.java b/src/main/java9/module-info.java deleted file mode 100644 index a7cb49a..0000000 --- a/src/main/java9/module-info.java +++ /dev/null @@ -1,10 +0,0 @@ -module net.woggioni.wson { - requires net.woggioni.jwo; - - exports net.woggioni.wson.xface; - exports net.woggioni.wson.value; - exports net.woggioni.wson.exception; - exports net.woggioni.wson.serialization; - exports net.woggioni.wson.serialization.json; - exports net.woggioni.wson.serialization.binary; -} \ No newline at end of file diff --git a/wcfg-cli/build.gradle b/wcfg-cli/build.gradle new file mode 100644 index 0000000..e01474d --- /dev/null +++ b/wcfg-cli/build.gradle @@ -0,0 +1,12 @@ +plugins { + alias(catalog.plugins.envelope) +} + +dependencies { + implementation catalog.picocli + implementation project(':wcfg') +} + +envelopeJar { + mainClass = 'net.woggioni.wson.wcfg.cli.Main' +} \ No newline at end of file diff --git a/wcfg-cli/src/main/java/module-info.java b/wcfg-cli/src/main/java/module-info.java new file mode 100644 index 0000000..f44ea64 --- /dev/null +++ b/wcfg-cli/src/main/java/module-info.java @@ -0,0 +1,3 @@ +module net.woggioni.wson.wcfg.cli { + requires net.woggioni.wson.wcfg; +} \ No newline at end of file diff --git a/wcfg-cli/src/main/java/net/woggioni/wson/wcfg/cli/Main.java b/wcfg-cli/src/main/java/net/woggioni/wson/wcfg/cli/Main.java new file mode 100644 index 0000000..2ffb8f8 --- /dev/null +++ b/wcfg-cli/src/main/java/net/woggioni/wson/wcfg/cli/Main.java @@ -0,0 +1,7 @@ +package net.woggioni.wson.wcfg.cli; + +public class Main { + public void main(String[] args) { + System.out.println(); + } +} diff --git a/wcfg/build.gradle b/wcfg/build.gradle index 68026f9..a61be02 100644 --- a/wcfg/build.gradle +++ b/wcfg/build.gradle @@ -13,4 +13,4 @@ dependencies { generateGrammarSource { maxHeapSize = "64m" arguments += ['-package', 'net.woggioni.wson.wcfg'] -} \ No newline at end of file +} diff --git a/wcfg/src/main/java/module-info.java b/wcfg/src/main/java/module-info.java new file mode 100644 index 0000000..0fa128c --- /dev/null +++ b/wcfg/src/main/java/module-info.java @@ -0,0 +1,8 @@ +module net.woggioni.wson.wcfg { + requires static lombok; + requires static org.antlr.antlr4.runtime; + + requires net.woggioni.jwo; + requires net.woggioni.wson; + exports net.woggioni.wson.wcfg; +} \ No newline at end of file diff --git a/wcfg/src/test/java/net/woggioni/wson/wcfg/ParseTest.java b/wcfg/src/test/java/net/woggioni/wson/wcfg/ParseTest.java index d61aa47..0a5e017 100644 --- a/wcfg/src/test/java/net/woggioni/wson/wcfg/ParseTest.java +++ b/wcfg/src/test/java/net/woggioni/wson/wcfg/ParseTest.java @@ -7,6 +7,7 @@ import org.antlr.v4.runtime.CharStreams; import org.antlr.v4.runtime.CodePointCharStream; import org.antlr.v4.runtime.CommonTokenStream; import org.antlr.v4.runtime.tree.ParseTreeWalker; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; diff --git a/wcfg/src/test/resources/recursive.wcfg b/wcfg/src/test/resources/recursive.wcfg index 12ae3f1..18735d9 100644 --- a/wcfg/src/test/resources/recursive.wcfg +++ b/wcfg/src/test/resources/recursive.wcfg @@ -1,4 +1,6 @@ value1 := { "key" : "value", "myself" : value1 -}; \ No newline at end of file +}; + +value2 := [value1]; \ No newline at end of file diff --git a/wson-cli/build.gradle b/wson-cli/build.gradle index 85121f5..497ecf8 100644 --- a/wson-cli/build.gradle +++ b/wson-cli/build.gradle @@ -2,11 +2,6 @@ plugins { id 'maven-publish' alias catalog.plugins.envelope alias catalog.plugins.kotlin.jvm - alias catalog.plugins.multi.release.jar -} - -ext { - setProperty('jpms.module.name', 'net.woggioni.wson.cli') } dependencies { @@ -21,16 +16,6 @@ envelopeJar { mainModule = 'net.woggioni.wson.cli' } -java { - modularity.inferModulePath = true -} - -compileKotlin { - kotlinOptions.with { - jvmTarget = '1.8' - } -} - publishing { repositories { maven { @@ -44,8 +29,3 @@ publishing { } } -tasks.register('listConfigurations') { - configurations.each { - println(it.name) - } -} diff --git a/wson-cli/src/main/java9/net/woggioni/wson/cli/Foo.java b/wson-cli/src/main/java9/net/woggioni/wson/cli/Foo.java deleted file mode 100644 index b33c521..0000000 --- a/wson-cli/src/main/java9/net/woggioni/wson/cli/Foo.java +++ /dev/null @@ -1,4 +0,0 @@ -package net.woggioni.wson.cli; - -public class Foo { -}