diff --git a/build-doc.sh b/build-doc.sh
new file mode 100755
index 00000000000..b9a318f2781
--- /dev/null
+++ b/build-doc.sh
@@ -0,0 +1,16 @@
+set -e
+# Set up python environment
+#pyenv local 3.10.1
+#pip install mkdocs mkdocs-material pip install mkdocs-awesome-pages-plugin
+
+# In some bash/zsh environments, the locale is not set correctly, which causes mkdocs to fail.
+export LC_ALL=en_US.UTF-8
+export LANG=en_US.UTF-8
+
+# Build Javadoc
+mvn clean install -DskipTests # or guava-shaded can not be found
+# mvn javadoc:javadoc -pl core,query-builder,mapper-runtime
+mvn javadoc:aggregate
+
+# Build manual with API references
+mkdocs build # or `mkdocs serve` to preview
\ No newline at end of file
diff --git a/core/src/main/java/com/datastax/oss/driver/api/core/config/DefaultDriverOption.java b/core/src/main/java/com/datastax/oss/driver/api/core/config/DefaultDriverOption.java
index 4e45bf7b117..a5888251b6c 100644
--- a/core/src/main/java/com/datastax/oss/driver/api/core/config/DefaultDriverOption.java
+++ b/core/src/main/java/com/datastax/oss/driver/api/core/config/DefaultDriverOption.java
@@ -1016,8 +1016,8 @@ public enum DefaultDriverOption implements DriverOption {
* }
*
*
- * Note: subnets must be represented as prefix blocks, see {@link
- * inet.ipaddr.Address#isPrefixBlock()}.
+ * Note: subnets must be represented as prefix blocks, see inet.ipaddr.Address.isPrefixBlock()
*
*
Value type: {@link java.util.Map Map}<{@link String},{@link String}>
*/
diff --git a/core/src/main/java/com/datastax/oss/driver/api/core/data/CqlVector.java b/core/src/main/java/com/datastax/oss/driver/api/core/data/CqlVector.java
index 8089d551750..da645c02400 100644
--- a/core/src/main/java/com/datastax/oss/driver/api/core/data/CqlVector.java
+++ b/core/src/main/java/com/datastax/oss/driver/api/core/data/CqlVector.java
@@ -80,7 +80,7 @@ public static CqlVector newInstance(List list) {
* Create a new CqlVector instance from the specified string representation.
*
* @param str a String representation of a CqlVector
- * @param subtypeCodec
+ * @param subtypeCodec the codec to use to parse the individual elements
* @return a new CqlVector built from the String representation
*/
public static CqlVector from(@NonNull String str, @NonNull TypeCodec subtypeCodec) {
diff --git a/docs.yaml b/docs.yaml
deleted file mode 100644
index 7c679a0f47e..00000000000
--- a/docs.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-title: Java Driver
-summary: Java Driver for Apache Cassandra®
-homepage: http://docs.datastax.com/en/developer/java-driver
-theme: datastax
-sections:
- - title: Manual
- prefix: /manual
- sources:
- - type: markdown
- files: 'manual/**/*.md'
- - title: Reference configuration
- prefix: /manual/core/configuration/reference
- sources:
- - type: rst
- files: 'manual/core/configuration/reference/*.rst'
- - title: Changelog
- prefix: /changelog
- sources:
- - type: markdown
- files: 'changelog/**/*.md'
- - title: Upgrading
- prefix: /upgrade_guide
- sources:
- - type: markdown
- files: 'upgrade_guide/**/*.md'
- - title: FAQ
- prefix: /faq
- sources:
- - type: markdown
- files: 'faq/**/*.md'
-links:
- - title: Code
- href: https://github.com/datastax/java-driver/
- - title: Docs
- href: http://docs.datastax.com/en/developer/java-driver
- - title: Issues
- href: https://datastax-oss.atlassian.net/browse/JAVA/
- - title: Mailing List
- href: https://groups.google.com/a/lists.datastax.com/forum/#!forum/java-driver-user
- - title: Releases
- href: https://github.com/datastax/java-driver/releases
-api_docs:
- 4.0: http://docs.datastax.com/en/drivers/java/4.0
diff --git a/manual/HOME-README.md b/manual/HOME-README.md
new file mode 120000
index 00000000000..32d46ee883b
--- /dev/null
+++ b/manual/HOME-README.md
@@ -0,0 +1 @@
+../README.md
\ No newline at end of file
diff --git a/manual/api b/manual/api
new file mode 120000
index 00000000000..fca923bc74c
--- /dev/null
+++ b/manual/api
@@ -0,0 +1 @@
+../target/site/apidocs
\ No newline at end of file
diff --git a/manual/changelog-README.md b/manual/changelog-README.md
new file mode 120000
index 00000000000..bcbdfab5b63
--- /dev/null
+++ b/manual/changelog-README.md
@@ -0,0 +1 @@
+../changelog/README.md
\ No newline at end of file
diff --git a/manual/faq-README.md b/manual/faq-README.md
new file mode 120000
index 00000000000..1d82a3a4f5a
--- /dev/null
+++ b/manual/faq-README.md
@@ -0,0 +1 @@
+../faq/README.md
\ No newline at end of file
diff --git a/manual/upgrade-README.md b/manual/upgrade-README.md
new file mode 120000
index 00000000000..2f9c234f35e
--- /dev/null
+++ b/manual/upgrade-README.md
@@ -0,0 +1 @@
+../upgrade_guide/README.md
\ No newline at end of file
diff --git a/mkdocs.yml b/mkdocs.yml
new file mode 100644
index 00000000000..c16e4569e90
--- /dev/null
+++ b/mkdocs.yml
@@ -0,0 +1,159 @@
+site_name: Java Driver for Apache Cassandra
+site_description: Java Driver for Apache Cassandra® Documentation
+site_url: https://apache.github.io/cassandra-java-driver
+repo_url: https://github.com/apache/cassandra-java-driver
+repo_name: apache/cassandra-java-driver
+
+docs_dir: manual
+site_dir: docs
+
+theme:
+ name: material
+ palette:
+ - scheme: default
+ primary: blue
+ accent: blue
+ features:
+ - navigation.tabs
+ - navigation.sections
+ - navigation.top
+ - search.highlight
+ - search.share
+
+markdown_extensions:
+ - admonition
+ - codehilite
+ - pymdownx.superfences
+ - pymdownx.tabbed
+ - toc:
+ permalink: true
+
+nav:
+ - Home: HOME-README.md
+ - Manual:
+ - Overview: README.md
+ - API Conventions: api_conventions/README.md
+ - Case Sensitivity: case_sensitivity/README.md
+ - Cloud: cloud/README.md
+ - Core:
+ - Overview: core/README.md
+ - Integration: core/integration/README.md
+ - Configuration: core/configuration/README.md
+ - Authentication: core/authentication/README.md
+ - SSL: core/ssl/README.md
+ - Load Balancing: core/load_balancing/README.md
+ - Pooling: core/pooling/README.md
+ - Reconnection: core/reconnection/README.md
+ - Retries: core/retries/README.md
+ - Speculative Execution: core/speculative_execution/README.md
+ - Metrics: core/metrics/README.md
+ - Logging: core/logging/README.md
+ - Statements:
+ - Overview: core/statements/README.md
+ - Batch: core/statements/batch/README.md
+ - Per Query Keyspace: core/statements/per_query_keyspace/README.md
+ - Prepared: core/statements/prepared/README.md
+ - Simple: core/statements/simple/README.md
+ - Paging: core/paging/README.md
+ - Async Programming: core/async/README.md
+ - Reactive Streams: core/reactive/README.md
+ - Custom Codecs: core/custom_codecs/README.md
+ - Temporal Types: core/temporal_types/README.md
+ - Tuples: core/tuples/README.md
+ - UDTs: core/udts/README.md
+ - Compression: core/compression/README.md
+ - Address Resolution: core/address_resolution/README.md
+ - Request Tracker: core/request_tracker/README.md
+ - Throttling: core/throttling/README.md
+ - Tracing: core/tracing/README.md
+ - Performance: core/performance/README.md
+ - Metadata:
+ - Overview: core/metadata/README.md
+ - Node: core/metadata/node/README.md
+ - Schema: core/metadata/schema/README.md
+ - Token: core/metadata/token/README.md
+ - Control Connection: core/control_connection/README.md
+ - Native Protocol: core/native_protocol/README.md
+ - Non-blocking: core/non_blocking/README.md
+ - Query Timestamps: core/query_timestamps/README.md
+ - Idempotence: core/idempotence/README.md
+ - Detachable Types: core/detachable_types/README.md
+ - DSE:
+ - Overview: core/dse/README.md
+ - Geotypes: core/dse/geotypes/README.md
+ - Graph:
+ - Overview: core/dse/graph/README.md
+ - Fluent:
+ - Overview: core/dse/graph/fluent/README.md
+ - Explicit: core/dse/graph/fluent/explicit/README.md
+ - Implicit: core/dse/graph/fluent/implicit/README.md
+ - Options: core/dse/graph/options/README.md
+ - Results: core/dse/graph/results/README.md
+ - Script: core/dse/graph/script/README.md
+ - GraalVM: core/graalvm/README.md
+ - Shaded JAR: core/shaded_jar/README.md
+ - BOM: core/bom/README.md
+ - Query Builder:
+ - Overview: query_builder/README.md
+ - Select: query_builder/select/README.md
+ - Insert: query_builder/insert/README.md
+ - Update: query_builder/update/README.md
+ - Delete: query_builder/delete/README.md
+ - Schema:
+ - Overview: query_builder/schema/README.md
+ - Aggregate: query_builder/schema/aggregate/README.md
+ - Function: query_builder/schema/function/README.md
+ - Index: query_builder/schema/index/README.md
+ - Keyspace: query_builder/schema/keyspace/README.md
+ - Materialized View: query_builder/schema/materialized_view/README.md
+ - Table: query_builder/schema/table/README.md
+ - Type: query_builder/schema/type/README.md
+ - Truncate: query_builder/truncate/README.md
+ - Condition: query_builder/condition/README.md
+ - Relation: query_builder/relation/README.md
+ - Term: query_builder/term/README.md
+ - Idempotence: query_builder/idempotence/README.md
+ - Mapper:
+ - Overview: mapper/README.md
+ - Entities: mapper/entities/README.md
+ - DAOs:
+ - Overview: mapper/daos/README.md
+ - Custom Types: mapper/daos/custom_types/README.md
+ - Delete: mapper/daos/delete/README.md
+ - Get Entity: mapper/daos/getentity/README.md
+ - Increment: mapper/daos/increment/README.md
+ - Insert: mapper/daos/insert/README.md
+ - Null Saving: mapper/daos/null_saving/README.md
+ - Query: mapper/daos/query/README.md
+ - Query Provider: mapper/daos/queryprovider/README.md
+ - Select: mapper/daos/select/README.md
+ - Set Entity: mapper/daos/setentity/README.md
+ - Statement Attributes: mapper/daos/statement_attributes/README.md
+ - Update: mapper/daos/update/README.md
+ - Mapper: mapper/mapper/README.md
+ - Configuration:
+ - Overview: mapper/config/README.md
+ - Kotlin: mapper/config/kotlin/README.md
+ - Lombok: mapper/config/lombok/README.md
+ - Record: mapper/config/record/README.md
+ - Scala: mapper/config/scala/README.md
+ - Developer:
+ - Overview: developer/README.md
+ - Common:
+ - Overview: developer/common/README.md
+ - Concurrency: developer/common/concurrency/README.md
+ - Context: developer/common/context/README.md
+ - Event Bus: developer/common/event_bus/README.md
+ - Native Protocol: developer/native_protocol/README.md
+ - Netty Pipeline: developer/netty_pipeline/README.md
+ - Request Execution: developer/request_execution/README.md
+ - Admin: developer/admin/README.md
+ - OSGi: osgi/README.md
+ - API References: api/index.html
+ - FAQ: faq-README.md
+ - Changelog: changelog-README.md
+ - Upgrade Guide: upgrade-README.md
+
+plugins:
+ - search
+ - awesome-pages
diff --git a/pom.xml b/pom.xml
index 2cfeb65e757..e281bd856b1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -804,6 +804,23 @@ limitations under the License.]]>
true
all,-missing
com.datastax.*.driver.internal*
+
+
+ com.google.errorprone
+ error_prone_annotations
+ 2.3.4
+
+
+ com.github.stephenc.jcip
+ jcip-annotations
+ 1.0-1
+
+
+ com.github.spotbugs
+ spotbugs-annotations
+ 3.1.12
+
+
apiNote
@@ -882,7 +899,49 @@ limitations under the License.]]>
false
+
+
+ aggregate-javadoc
+
+ aggregate
+
+ site
+
+ false
+
+ org.apache.cassandra:java-driver-core
+ org.apache.cassandra:java-driver-query-builder
+ org.apache.cassandra:java-driver-mapper-runtime
+
+
+ core
+ query-builder
+ mapper-runtime
+
+ Apache Cassandra Java Driver ${project.version} API
+ The Apache Software Foundation. All rights reserved.
+ ]]>
+
+
+
+
+ com.google.errorprone
+ error_prone_annotations
+ 2.3.4
+
+
+ com.github.stephenc.jcip
+ jcip-annotations
+ 1.0-1
+
+
+ com.github.spotbugs
+ spotbugs-annotations
+ 3.1.12
+
+
maven-release-plugin