@@ -35,18 +35,28 @@ tasks.spotbugsMain {
3535 }
3636}
3737
38+ // Note: used for the Maven javadoc artifact, a separate task is used to build API docs to publish online
3839javadoc {
39- // Hide internal API from javadoc artifact.
40+ // Internal Java APIs
4041 exclude(" **/io/objectbox/Cursor.java" )
4142 exclude(" **/io/objectbox/KeyValueCursor.java" )
4243 exclude(" **/io/objectbox/ModelBuilder.java" )
4344 exclude(" **/io/objectbox/Properties.java" )
4445 exclude(" **/io/objectbox/Transaction.java" )
45- exclude(" **/io/objectbox/model/**" )
4646 exclude(" **/io/objectbox/ideasonly/**" )
4747 exclude(" **/io/objectbox/internal/**" )
4848 exclude(" **/io/objectbox/reactive/DataPublisherUtils.java" )
4949 exclude(" **/io/objectbox/reactive/WeakDataObserver.java" )
50+ exclude(" **/io/objectbox/sync/server/ClusterPeerInfo.java" )
51+ // Repackaged FlatBuffers distribution
52+ exclude(" **/io/objectbox/flatbuffers/**" )
53+ // FlatBuffers generated files only used internally (note: some are part of the public API)
54+ exclude(" **/io/objectbox/model/**" )
55+ exclude(" **/io/objectbox/sync/Credentials.java" )
56+ exclude(" **/io/objectbox/sync/CredentialsType.java" )
57+ exclude(" **/io/objectbox/sync/server/ClusterPeerConfig.java" )
58+ exclude(" **/io/objectbox/sync/server/JwtConfig.java" )
59+ exclude(" **/io/objectbox/sync/server/SyncServerOptions.java" )
5060}
5161
5262// Note: use packageJavadocForWeb to get as ZIP.
@@ -55,33 +65,41 @@ tasks.register('javadocForWeb', Javadoc) {
5565 description = ' Builds Javadoc incl. objectbox-java-api classes with web tweaks.'
5666
5767 javadocTool = javaToolchains. javadocToolFor {
58- // Note: the style changes only work if using JDK 10+, 11 is latest LTS.
59- languageVersion = JavaLanguageVersion . of(11 )
68+ // Note: the style changes only work if using JDK 10+, 17 is the LTS release used to publish this
69+ languageVersion = JavaLanguageVersion . of(17 )
6070 }
6171
6272 def srcApi = project(' :objectbox-java-api' ). file(' src/main/java/' )
6373 if (! srcApi. directory) throw new GradleScriptException (" Not a directory: ${ srcApi} " , null )
6474 // Hide internal API from javadoc artifact.
6575 def filteredSources = sourceSets. main. allJava. matching {
76+ // Internal Java APIs
6677 exclude(" **/io/objectbox/Cursor.java" )
6778 exclude(" **/io/objectbox/KeyValueCursor.java" )
6879 exclude(" **/io/objectbox/ModelBuilder.java" )
6980 exclude(" **/io/objectbox/Properties.java" )
7081 exclude(" **/io/objectbox/Transaction.java" )
71- exclude(" **/io/objectbox/flatbuffers/**" )
7282 exclude(" **/io/objectbox/ideasonly/**" )
7383 exclude(" **/io/objectbox/internal/**" )
74- exclude(" **/io/objectbox/model/**" )
7584 exclude(" **/io/objectbox/reactive/DataPublisherUtils.java" )
7685 exclude(" **/io/objectbox/reactive/WeakDataObserver.java" )
86+ exclude(" **/io/objectbox/sync/server/ClusterPeerInfo.java" )
87+ // Repackaged FlatBuffers distribution
88+ exclude(" **/io/objectbox/flatbuffers/**" )
89+ // FlatBuffers generated files only used internally (note: some are part of the public API)
90+ exclude(" **/io/objectbox/model/**" )
91+ exclude(" **/io/objectbox/sync/Credentials.java" )
92+ exclude(" **/io/objectbox/sync/CredentialsType.java" )
93+ exclude(" **/io/objectbox/sync/server/ClusterPeerConfig.java" )
94+ exclude(" **/io/objectbox/sync/server/JwtConfig.java" )
95+ exclude(" **/io/objectbox/sync/server/SyncServerOptions.java" )
7796 }
7897 source = filteredSources + srcApi
7998
8099 classpath = sourceSets. main. output + sourceSets. main. compileClasspath
81100 destinationDir = file(javadocForWebDir)
82101
83102 title = " ObjectBox Java ${ version} API"
84- options. encoding = ' UTF-8' // Set UTF-8 encoding to support unicode characters used in docs
85103 options. overview = " $projectDir /src/web/overview.html"
86104 options. bottom = ' Available under the Apache License, Version 2.0 - <i>Copyright © 2017-2024 <a href="https://objectbox.io/">ObjectBox Ltd</a>. All Rights Reserved.</i>'
87105
0 commit comments