diff --git a/annotation/src/main/java/module-info.java b/annotation/src/main/java/module-info.java new file mode 100644 index 000000000..a3c96ea13 --- /dev/null +++ b/annotation/src/main/java/module-info.java @@ -0,0 +1,3 @@ +module com.github.tonivade.purefun { + exports com.github.tonivade.purefun; +} \ No newline at end of file diff --git a/build.gradle b/build.gradle index 3fe879b1a..b61292b09 100644 --- a/build.gradle +++ b/build.gradle @@ -90,6 +90,9 @@ allprojects { compileJava { options.compilerArgs << '-Xlint:unchecked' options.compilerArgs << '-Xlint:rawtypes' + options.compilerArgs << '-Xlint:module' + options.compilerArgs << '-Xlint:exports' + options.compilerArgs << '-Xlint:opens' options.release = 21 } @@ -128,6 +131,12 @@ subprojects { reports.html.required = true } + javadoc { + modularity.inferModulePath = false + + exclude "module-info.java" + } + tasks.withType(JavaCompile) { if (!name.toLowerCase().contains("test")) { options.errorprone { diff --git a/core/src/main/java/module-info.java b/core/src/main/java/module-info.java new file mode 100644 index 000000000..f5f943191 --- /dev/null +++ b/core/src/main/java/module-info.java @@ -0,0 +1,10 @@ +module com.github.tonivade.purefun.core { + exports com.github.tonivade.purefun.data; + exports com.github.tonivade.purefun.concurrent; + exports com.github.tonivade.purefun.core; + exports com.github.tonivade.purefun.type; + + requires transitive com.github.tonivade.purefun; + requires transitive java.compiler; + requires transitive org.pcollections; +} \ No newline at end of file diff --git a/effect/src/main/java/module-info.java b/effect/src/main/java/module-info.java new file mode 100644 index 000000000..cc52b3c6e --- /dev/null +++ b/effect/src/main/java/module-info.java @@ -0,0 +1,9 @@ +module com.github.tonivade.purefun.effect { + exports com.github.tonivade.purefun.effect; + exports com.github.tonivade.purefun.effect.util; + + requires transitive com.github.tonivade.purefun; + requires transitive com.github.tonivade.purefun.core; + requires transitive com.github.tonivade.purefun.typeclasses; + requires transitive java.compiler; +} \ No newline at end of file diff --git a/free/src/main/java/module-info.java b/free/src/main/java/module-info.java new file mode 100644 index 000000000..78ccbe113 --- /dev/null +++ b/free/src/main/java/module-info.java @@ -0,0 +1,8 @@ +module com.github.tonivade.purefun.free { + exports com.github.tonivade.purefun.free; + + requires transitive com.github.tonivade.purefun; + requires transitive com.github.tonivade.purefun.core; + requires transitive com.github.tonivade.purefun.typeclasses; + requires transitive java.compiler; +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index b208b7f54..d5ce66653 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ -version=5.1-SNAPSHOT +version=6.0-SNAPSHOT systemProp.sonar.gradle.skipCompile=true \ No newline at end of file diff --git a/instances/src/main/java/module-info.java b/instances/src/main/java/module-info.java new file mode 100644 index 000000000..f0aaec544 --- /dev/null +++ b/instances/src/main/java/module-info.java @@ -0,0 +1,13 @@ +module com.github.tonivade.purefun.instances { + exports com.github.tonivade.purefun.runtimes; + exports com.github.tonivade.purefun.instances; + + requires transitive com.github.tonivade.purefun; + requires transitive com.github.tonivade.purefun.core; + requires static com.github.tonivade.purefun.effect; + requires static com.github.tonivade.purefun.free; + requires static com.github.tonivade.purefun.monad; + requires static com.github.tonivade.purefun.stream; + requires static com.github.tonivade.purefun.transformer; + requires static com.github.tonivade.purefun.typeclasses; +} \ No newline at end of file diff --git a/monad/src/main/java/module-info.java b/monad/src/main/java/module-info.java new file mode 100644 index 000000000..0cd18c3f0 --- /dev/null +++ b/monad/src/main/java/module-info.java @@ -0,0 +1,9 @@ + +module com.github.tonivade.purefun.monad { + exports com.github.tonivade.purefun.monad; + + requires transitive com.github.tonivade.purefun; + requires transitive com.github.tonivade.purefun.core; + requires transitive java.compiler; + requires transitive com.github.tonivade.purefun.typeclasses; +} \ No newline at end of file diff --git a/optics/src/main/java/module-info.java b/optics/src/main/java/module-info.java new file mode 100644 index 000000000..7cdbf2734 --- /dev/null +++ b/optics/src/main/java/module-info.java @@ -0,0 +1,6 @@ +module com.github.tonivade.purefun.optics { + exports com.github.tonivade.purefun.optics; + + requires transitive com.github.tonivade.purefun; + requires transitive com.github.tonivade.purefun.core; +} \ No newline at end of file diff --git a/processor/src/main/java/module-info.java b/processor/src/main/java/module-info.java new file mode 100644 index 000000000..48cfd2da7 --- /dev/null +++ b/processor/src/main/java/module-info.java @@ -0,0 +1,10 @@ +import com.github.tonivade.purefun.processor.HigherKindProcessor; + +module com.github.tonivade.purefun.processor { + exports com.github.tonivade.purefun.processor; + + provides javax.annotation.processing.Processor with HigherKindProcessor; + + requires transitive com.github.tonivade.purefun; + requires transitive java.compiler; +} \ No newline at end of file diff --git a/stream/src/main/java/module-info.java b/stream/src/main/java/module-info.java new file mode 100644 index 000000000..94e626e78 --- /dev/null +++ b/stream/src/main/java/module-info.java @@ -0,0 +1,8 @@ +module com.github.tonivade.purefun.stream { + exports com.github.tonivade.purefun.stream; + + requires transitive com.github.tonivade.purefun; + requires transitive com.github.tonivade.purefun.core; + requires transitive com.github.tonivade.purefun.typeclasses; + requires transitive java.compiler; +} \ No newline at end of file diff --git a/transformer/src/main/java/module-info.java b/transformer/src/main/java/module-info.java new file mode 100644 index 000000000..ba2033edd --- /dev/null +++ b/transformer/src/main/java/module-info.java @@ -0,0 +1,8 @@ +module com.github.tonivade.purefun.transformer { + exports com.github.tonivade.purefun.transformer; + + requires transitive com.github.tonivade.purefun; + requires transitive com.github.tonivade.purefun.core; + requires transitive com.github.tonivade.purefun.typeclasses; + requires transitive java.compiler; +} \ No newline at end of file diff --git a/typeclasses/src/main/java/module-info.java b/typeclasses/src/main/java/module-info.java new file mode 100644 index 000000000..fcde06209 --- /dev/null +++ b/typeclasses/src/main/java/module-info.java @@ -0,0 +1,8 @@ + +module com.github.tonivade.purefun.typeclasses { + exports com.github.tonivade.purefun.typeclasses; + + requires transitive com.github.tonivade.purefun; + requires transitive com.github.tonivade.purefun.core; + requires transitive java.compiler; +} \ No newline at end of file