diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d87c6e2..7bc12d4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -34,7 +34,7 @@ jobs: - name: Publish to Maven Central run: | - ./mvnw -B clean deploy -PsonatypeRelease -DskipTests -pl '!jacoco-coverage-aggregate-report' + ./mvnw -B clean deploy -PsonatypeRelease -DskipTests -pl '!jacoco-coverage-aggregate-report,!documentation' env: MAVEN_USERNAME: ${{ secrets.MAVEN_CENTRAL_USER }} MAVEN_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }} diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml index c4a59e2..a27838b 100644 --- a/.github/workflows/snapshot.yml +++ b/.github/workflows/snapshot.yml @@ -27,7 +27,7 @@ jobs: - name: Publish Snapshot to Maven Central run: | - ./mvnw -B clean deploy -PsonatypeSnapshot -DskipTests -pl '!jacoco-coverage-aggregate-report' + ./mvnw -B clean deploy -PsonatypeSnapshot -DskipTests -pl '!jacoco-coverage-aggregate-report,!documentation' env: MAVEN_USERNAME: ${{ secrets.MAVEN_CENTRAL_USER }} MAVEN_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }} diff --git a/.gitignore b/.gitignore index 3b1e9ee..3ce9a8a 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ workbench.xmi .factorypath documentation/venv documentation/site +documentation/target diff --git a/documentation/README.md b/documentation/README.md index 3e526b3..588db08 100644 --- a/documentation/README.md +++ b/documentation/README.md @@ -1,33 +1,99 @@ -## Documentation +## Документация -### Local Build +### Локальная сборка документации -To deploy the site locally on the current branch/tag: +Чтобы собрать документацию локально на текущей ветке/теге: -1. ```bash +1. Перейдите на ветку/тег и инициализируйте python-окружение: + + ```shell git checkout - ``` -2. ```bash cd documentation - ``` -3. ```bash python3 -m venv venv - ``` -4. ```bash source venv/bin/activate - ``` -5. ```bash pip install -r requirements.txt ``` -6. ```bash - mkdocs serve + +2. Соберите или запустите сайт: + + ```shell + mkdocs build + ``` + + ```shell + mkdocs serve ``` -### Schemas +### Интернационализация + +На данный момент документация поддерживает два языка: + +- Русский 🇷🇺 - по умолчанию +- Английский 🇺🇸 + +### Правила написания новых страниц и разделов + +#### Раздел + +`Раздел` - группа страниц, описывающая одну конкретную тему. Раздел может включать подразделы. +Раздел оформаляется в отдельной директории. Каждый раздел обязан иметь страницу с именем `index.md`, +в которой описывается тематика раздела. + +`Страница` - страница с произвольным именем и расширением `.md`, написанная на `markdown`. + +При добавлении страницы и раздела, добавьте их в секцию `nav` в файле `mkdocs.yml`: -Documentation supports `.drawio` format schemas. Place your schema in the `assets` directory. In the markdown text, -refer to the schema as a regular markdown image. The path to the image must be relative: +Пример раздела: + +> ![alt](readme-images/sections.png) + +Пример оформленной навигации для этого раздела: + +> ![alt](readme-images/navigation.png) + +### Схемы + +#### Plantuml + +Документация поддерживает рендеринг `plantuml-диаграмм`. Для того чтобы добавить схему plantuml в +текст страницы `markdown` используйте блок кода с расширением `puml`: + +> \`\`\`puml +> +> @startuml +> +> Alice -> Bob: test +> +> @enduml +> +> \`\`\` + +#### Drawio + +Документация поддерживает отображение схем, написанных в `drawio` (файлы с расширением `.drawio`). +Необходимо добавить схему в директорию `assets`. В тексте markdown добавьте схему также как +добавляете обыное изображение, используя относительный путь: ```markdown ![](../../../../assets//schema.drawio) ``` + +### Code Snippets + +Документация поддерживает добавление в текст markdown включение текста из других файлов (snippets). +Для того, чтобы добавить snippet в текст markdown изучите +документацию [расширения](https://facelessuser.github.io/pymdown-extensions/extensions/snippets/). +Путь к файлам, которые будут включены вычисляется относительно директории +`docs/documentation/examples`. + +#### Дополнительные возможности + +Также поддерживаются следующие дополнения: + +- Использование [emoji](https://squidfunk.github.io/mkdocs-material/reference/icons-emojis/) в + тексте страниц. +- [Табы](https://squidfunk.github.io/mkdocs-material/reference/content-tabs/) +- [Сноски](https://squidfunk.github.io/mkdocs-material/reference/footnotes/) +- [Диаграммы mermaid](https://squidfunk.github.io/mkdocs-material/reference/diagrams/) +- [Admonitions](https://squidfunk.github.io/mkdocs-material/reference/admonitions/) +- [Аннотации](https://squidfunk.github.io/mkdocs-material/reference/annotations/) diff --git a/documentation/README_EN.md b/documentation/README_EN.md new file mode 100644 index 0000000..e0d0be2 --- /dev/null +++ b/documentation/README_EN.md @@ -0,0 +1,98 @@ +## Documentation + +### Local documentation deploy + +To deploy documentation locally on current branch/tag: + +1. Checkout branch/tag and initialize python-environment: + + ```shell + git checkout + cd documentation + python3 -m venv venv + source venv/bin/activate + pip install -r requirements.txt + ``` + +2. Build or serve site: + + ```shell + mkdocs build + ``` + + ```shell + mkdocs serve + ``` + +### Internationalization + +Documentation supports two languages: + +- Russian 🇷🇺 - by default +- English 🇺🇸 + +### New pages writing rules + +#### Section + +`Section` is group of pages, describing one certain topic. Section can include subsections. Write +section on separate directory. Each section must have page with `index.md` name that describe topic +area. + +`Page` is page with any name and `.md` extension. + +When a new section and page are being written, they should be added to the `nav` section in the +`mkdocs.yml` file. + +Section example: + +> ![alt](readme-images/sections.png) + +Example of a decorated navigation for this section: + +> ![alt](readme-images/navigation.png) + +### Схемы + +#### Plantuml + +The documentation supports the rendering of `plantuml diagrams`. To add the plantuml schema to the +text of the `markdown` page, use a block of code with the `puml` extension.: + +> \`\`\`puml +> +> @startuml +> +> Alice -> Bob: test +> +> @enduml +> +> \`\`\` + +#### Drawio + +The documentation supports the display of diagrams written in `drawio` (files with the `.drawio` +extension). It is necessary to add the schema to the `assets` directory. In the Markdown text, add a +diagram in the same way as you add an image using a relative path: + +```markdown +![](../../../../assets//schema.drawio) +``` + +### Code Snippets + +The documentation supports adding text inclusions from other files (snippets) to the Markdown text. +To add snippet to the Markdown text, read the +extension's [documentation](https://facelessuser.github.io/pymdown-extensions/extensions/snippets/). +The path to the files to be included is calculated relative to the `docs/documentation/examples` +directory. + +#### Additional extensions + +- Usage of [emoji](https://squidfunk.github.io/mkdocs-material/reference/icons-emojis/) in Markdown + pages +- [Tabs of content](https://squidfunk.github.io/mkdocs-material/reference/content-tabs/) +- [Footnotes](https://squidfunk.github.io/mkdocs-material/reference/footnotes/) +- [Mermaid diagrams](https://squidfunk.github.io/mkdocs-material/reference/diagrams/) +- [Admonitions](https://squidfunk.github.io/mkdocs-material/reference/admonitions/) +- [Annotations](https://squidfunk.github.io/mkdocs-material/reference/annotations/) diff --git a/documentation/docs/documentation/client/examples/connection/index.en.md b/documentation/docs/documentation/client/examples/connection/index.en.md new file mode 100644 index 0000000..0ec3595 --- /dev/null +++ b/documentation/docs/documentation/client/examples/connection/index.en.md @@ -0,0 +1,7 @@ +--- +title: Connection to nodes +hide: + - toc +--- + +This section provides examples of connecting to Tarantool using the `tarantool-java-sdk`. diff --git a/documentation/docs/documentation/client/examples/connection/index.md b/documentation/docs/documentation/client/examples/connection/index.md new file mode 100644 index 0000000..dabe45d --- /dev/null +++ b/documentation/docs/documentation/client/examples/connection/index.md @@ -0,0 +1,7 @@ +--- +title: Подключение к узлам +hide: + - toc +--- + +В данном разделе приводятся примеры подключения к Tarantool с помощью `tarantool-java-sdk`. diff --git a/documentation/docs/documentation/client/examples/connection/single-node.en.md b/documentation/docs/documentation/client/examples/connection/single-node.en.md new file mode 100644 index 0000000..44b6c3c --- /dev/null +++ b/documentation/docs/documentation/client/examples/connection/single-node.en.md @@ -0,0 +1,34 @@ +--- +title: Connection to single node Tarantool +--- + +To connect to a single node, run the following code: + +=== "tarantool-java-sdk" + + ```java title="Connection to single node Tarantool" + --8<-- "src/client/simple/connection/SingleNodeConnectionNewConnectorTest.java:new-simple-connection" + ``` + + ```java title="Parent abstract class to create docker container" + --8<-- "src/client/simple/connection/SingleNodeConnection.java:single-node-connection" + ``` + + ```java title="Class to create container" + --8<-- "src/testcontainers/single/CreateSingleNode.java:create-single-node" + ``` + +=== "cartridge-java" + + ```java title="Connection to single node Tarantool" + --8<-- "src/client/simple/connection/SingleNodeConnectionCartridgeJavaTest.java:old-simple-connection" + ``` + + ```java title="Parent abstract class to create docker container" + --8<-- "src/client/simple/connection/SingleNodeConnection.java:single-node-connection" + ``` + + ```java title="Class to create container" + --8<-- "src/testcontainers/single/CreateSingleNode.java:create-single-node" + ``` + \ No newline at end of file diff --git a/documentation/docs/documentation/client/examples/connection/single-node.md b/documentation/docs/documentation/client/examples/connection/single-node.md new file mode 100644 index 0000000..218d4d5 --- /dev/null +++ b/documentation/docs/documentation/client/examples/connection/single-node.md @@ -0,0 +1,34 @@ +--- +title: Подключение к одиночному узлу +--- + +Для того чтобы подключиться к одиночному узлу необходимо выполнить следующий код: + +=== "tarantool-java-sdk" + + ```java title="Подключение к одному узлу Tarantool" + --8<-- "src/client/simple/connection/SingleNodeConnectionNewConnectorTest.java:new-simple-connection" + ``` + + ```java title="Родительский класс с созданием контейнера" + --8<-- "src/client/simple/connection/SingleNodeConnection.java:single-node-connection" + ``` + + ```java title="Класс, который создает контейнер" + --8<-- "src/testcontainers/single/CreateSingleNode.java:create-single-node" + ``` + +=== "cartridge-java" + + ```java title="Подключение к одному узлу Tarantool" + --8<-- "src/client/simple/connection/SingleNodeConnectionCartridgeJavaTest.java:old-simple-connection" + ``` + + ```java title="Родительский класс с созданием контейнера" + --8<-- "src/client/simple/connection/SingleNodeConnection.java:single-node-connection" + ``` + + ```java title="Класс, который создает контейнер" + --8<-- "src/testcontainers/single/CreateSingleNode.java:create-single-node" + ``` + \ No newline at end of file diff --git a/documentation/docs/documentation/client/examples/index.en.md b/documentation/docs/documentation/client/examples/index.en.md new file mode 100644 index 0000000..2500ea7 --- /dev/null +++ b/documentation/docs/documentation/client/examples/index.en.md @@ -0,0 +1,12 @@ +--- +title: Usage examples +hide: + - toc +--- + +This section provides examples of using the `tarantool-java-sdk`. + +???+ note + + Where possible, the code is compared with + [cartridge-java](https://github.com/tarantool/cartridge-java) diff --git a/documentation/docs/documentation/client/examples/index.md b/documentation/docs/documentation/client/examples/index.md new file mode 100644 index 0000000..72d969f --- /dev/null +++ b/documentation/docs/documentation/client/examples/index.md @@ -0,0 +1,12 @@ +--- +title: Примеры использования +hide: + - toc +--- + +В разделе приводятся примеры использования `tarantool-java-sdk`. + +???+ note "Заметка" + + Где это возможно, производится сравнение кода с + [cartridge-java](https://github.com/tarantool/cartridge-java) diff --git a/documentation/docs/documentation/examples/src/client/simple/connection/SingleNodeConnection.java b/documentation/docs/documentation/examples/src/client/simple/connection/SingleNodeConnection.java new file mode 100644 index 0000000..2da1bcb --- /dev/null +++ b/documentation/docs/documentation/examples/src/client/simple/connection/SingleNodeConnection.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2025 VK DIGITAL TECHNOLOGIES LIMITED LIABILITY COMPANY + * All Rights Reserved. + */ + +package client.simple.connection; + +// --8<-- [start:single-node-connection] + +import java.io.IOException; +import java.nio.file.Path; + +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.io.TempDir; +import org.testcontainers.containers.tarantool.Tarantool3Container; +import org.testcontainers.containers.tarantool.TarantoolContainer; +import org.testcontainers.utility.DockerImageName; +import testcontainers.single.CreateSingleNode; + +public abstract class SingleNodeConnection { + + @TempDir protected static Path TEMP_DIR; + + private static final DockerImageName image = DockerImageName.parse("tarantool/tarantool:3.4.1"); + + protected static TarantoolContainer CONTAINER; + + @BeforeAll + static void beforeAll() throws IOException { + CONTAINER = createSingleNodeContainer(TEMP_DIR); + CONTAINER.start(); + } + + @AfterAll + static void afterAll() throws IOException { + CONTAINER.stop(); + } + + protected abstract void simpleConnection(); + + protected static TarantoolContainer createSingleNodeContainer(Path tempPath) + throws IOException { + final Path pathToConfig = CreateSingleNode.createSingleNodeConfig(tempPath); + return new Tarantool3Container(image, "test-node").withConfigPath(pathToConfig); + } +} +// --8<-- [end:single-node-connection] diff --git a/documentation/docs/documentation/examples/src/client/simple/connection/SingleNodeConnectionCartridgeJavaTest.java b/documentation/docs/documentation/examples/src/client/simple/connection/SingleNodeConnectionCartridgeJavaTest.java new file mode 100644 index 0000000..ae5800d --- /dev/null +++ b/documentation/docs/documentation/examples/src/client/simple/connection/SingleNodeConnectionCartridgeJavaTest.java @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2025 VK DIGITAL TECHNOLOGIES LIMITED LIABILITY COMPANY + * All Rights Reserved. + */ + +package client.simple.connection; + +// --8<-- [start:old-simple-connection] + +import java.net.InetSocketAddress; +import java.util.List; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import testcontainers.single.CreateSingleNode; + +import io.tarantool.driver.api.TarantoolClient; +import io.tarantool.driver.api.TarantoolClientFactory; +import io.tarantool.driver.api.TarantoolResult; +import io.tarantool.driver.api.tuple.TarantoolTuple; + +public class SingleNodeConnectionCartridgeJavaTest extends SingleNodeConnection { + + @Test + @Override + protected void simpleConnection() { + try (TarantoolClient> client = setupClient()) { + final List result = client.eval("return _TARANTOOL").join(); + + Assertions.assertEquals(1, result.size()); + + final Object object = result.get(0); + + Assertions.assertInstanceOf(String.class, object); + Assertions.assertTrue(((String) object).contains("3.4.1")); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + private static TarantoolClient> setupClient() { + // Получаем адрес и порт из докера + // Gets address and port from docker + final InetSocketAddress nodeAddress = CONTAINER.mappedAddress(); + + return TarantoolClientFactory.createClient() + .withAddress(nodeAddress.getHostName(), nodeAddress.getPort()) + .withCredentials(CreateSingleNode.LOGIN, CreateSingleNode.PWD.toString()) + .build(); + } +} +// --8<-- [end:old-simple-connection] diff --git a/documentation/docs/documentation/examples/src/client/simple/connection/SingleNodeConnectionNewConnectorTest.java b/documentation/docs/documentation/examples/src/client/simple/connection/SingleNodeConnectionNewConnectorTest.java new file mode 100644 index 0000000..825924f --- /dev/null +++ b/documentation/docs/documentation/examples/src/client/simple/connection/SingleNodeConnectionNewConnectorTest.java @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2025 VK DIGITAL TECHNOLOGIES LIMITED LIABILITY COMPANY + * All Rights Reserved. + */ + +package client.simple.connection; + +// --8<-- [start:new-simple-connection] + +import java.net.InetSocketAddress; +import java.util.Collections; +import java.util.List; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import testcontainers.single.CreateSingleNode; + +import io.tarantool.client.box.TarantoolBoxClient; +import io.tarantool.client.factory.TarantoolBoxClientBuilder; +import io.tarantool.client.factory.TarantoolFactory; +import io.tarantool.mapping.TarantoolResponse; +import io.tarantool.pool.InstanceConnectionGroup; + +public class SingleNodeConnectionNewConnectorTest extends SingleNodeConnection { + + @Test + @Override + protected void simpleConnection() { + // Получаем адрес и порт из докера + // Gets address and port from docker + final InetSocketAddress nodeAddress = CONTAINER.mappedAddress(); + + // Настраиваем группу подключения + // Set ups connection group + final InstanceConnectionGroup connectionGroup = + InstanceConnectionGroup.builder() + .withHost(nodeAddress.getHostName()) + .withPort(nodeAddress.getPort()) + .withUser(CreateSingleNode.LOGIN) + .withPassword(CreateSingleNode.PWD.toString()) + .build(); + + final TarantoolBoxClientBuilder clientBuilder = + TarantoolFactory.box().withGroups(Collections.singletonList(connectionGroup)); + + try (final TarantoolBoxClient singleNodeClient = clientBuilder.build()) { + + final TarantoolResponse> response = + singleNodeClient.eval("return _TARANTOOL", String.class).join(); + final List results = response.get(); + + Assertions.assertEquals(1, results.size()); + Assertions.assertTrue(results.get(0).contains("3.4.1")); + } catch (Exception e) { + throw new RuntimeException(e); + } + } +} +// --8<-- [end:new-simple-connection] diff --git a/documentation/docs/documentation/examples/src/testcontainers/single/CreateSingleNode.java b/documentation/docs/documentation/examples/src/testcontainers/single/CreateSingleNode.java new file mode 100644 index 0000000..5a3a647 --- /dev/null +++ b/documentation/docs/documentation/examples/src/testcontainers/single/CreateSingleNode.java @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2025 VK DIGITAL TECHNOLOGIES LIMITED LIABILITY COMPANY + * All Rights Reserved. + */ + +package testcontainers.single; + +// --8<-- [start:create-single-node] + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Collections; + +import org.testcontainers.containers.tarantool.config.ConfigurationUtils; + +import io.tarantool.autogen.Tarantool3Configuration; +import io.tarantool.autogen.credentials.Credentials; +import io.tarantool.autogen.credentials.users.Users; +import io.tarantool.autogen.credentials.users.usersProperty.UsersProperty; +import io.tarantool.autogen.groups.Groups; +import io.tarantool.autogen.groups.groupsProperty.GroupsProperty; +import io.tarantool.autogen.groups.groupsProperty.replicasets.Replicasets; +import io.tarantool.autogen.groups.groupsProperty.replicasets.replicasetsProperty.ReplicasetsProperty; +import io.tarantool.autogen.groups.groupsProperty.replicasets.replicasetsProperty.instances.Instances; +import io.tarantool.autogen.groups.groupsProperty.replicasets.replicasetsProperty.instances.instancesProperty.InstancesProperty; +import io.tarantool.autogen.groups.groupsProperty.replicasets.replicasetsProperty.instances.instancesProperty.iproto.Iproto; +import io.tarantool.autogen.groups.groupsProperty.replicasets.replicasetsProperty.instances.instancesProperty.iproto.listen.Listen; + +public class CreateSingleNode { + + public static final String NODE = "test-node"; + + public static final CharSequence PWD = "secret"; + + public static final String LOGIN = "test-user"; + + /* + // Создает конфигурацию вида: + // Creates configuration like: + --- + credentials: + users: + test-user: + password: "secret" + roles: + - "super" + groups: + test-group: + replicasets: + test-rs: + instances: + test-node: + iproto: + listen: + - uri: "0.0.0.0:3301" + */ + public static Path createSingleNodeConfig(Path tempDir) throws IOException { + final Path pathToConfigFile = Files.createFile(tempDir.resolve("config.yaml")); + + final Credentials credentials = + Credentials.builder() + .withUsers( + Users.builder() + .withAdditionalProperty( + LOGIN, + UsersProperty.builder() + .withRoles(Collections.singletonList("super")) + .withPassword(PWD.toString()) + .build()) + .build()) + .build(); + + final Iproto iproto = + Iproto.builder() + .withListen(Collections.singletonList(Listen.builder().withUri("0.0.0.0:3301").build())) + .build(); + + final InstancesProperty instance = InstancesProperty.builder().withIproto(iproto).build(); + + final ReplicasetsProperty replicaset = + ReplicasetsProperty.builder() + .withInstances(Instances.builder().withAdditionalProperty(NODE, instance).build()) + .build(); + + final GroupsProperty group = + GroupsProperty.builder() + .withReplicasets( + Replicasets.builder().withAdditionalProperty("test-rs", replicaset).build()) + .build(); + + final Tarantool3Configuration configuration = + Tarantool3Configuration.builder() + .withGroups(Groups.builder().withAdditionalProperty("test-group", group).build()) + .withCredentials(credentials) + .build(); + + ConfigurationUtils.writeToFile(configuration, pathToConfigFile); + return pathToConfigFile; + } +} + +// --8<-- [end:create-single-node] diff --git a/documentation/mkdocs.yml b/documentation/mkdocs.yml index 45e14f9..1a0bde8 100644 --- a/documentation/mkdocs.yml +++ b/documentation/mkdocs.yml @@ -41,10 +41,14 @@ plugins: Одиночный узел: Single Node Кластер TarantoolDB: TarantoolDB Cluster Кластер TQE: TQE Cluster + Примеры использования: Usage examples + Подключение к узлам: Connecting to nodes - drawio: darkmode: true - plantuml: puml_url: https://www.plantuml.com/plantuml/ + # в секундах(in seconds) + request_timeout: 300 theme: features: @@ -118,6 +122,11 @@ nav: - documentation/client/arch/connection-to-multiple-nodes.md - documentation/client/arch/call.md - documentation/client/arch/tuple_pojo_mapping.md + - Примеры использования: + - documentation/client/examples/index.md + - Подключение к узлам: + - documentation/client/examples/connection/index.md + - documentation/client/examples/connection/single-node.md - Tarantool Testcontainers: - documentation/testcontainers/index.md - Одиночный узел: @@ -139,7 +148,6 @@ markdown_extensions: - tables - admonition - pymdownx.details - - pymdownx.superfences - pymdownx.tabbed: alternate_style: true - footnotes @@ -154,10 +162,17 @@ markdown_extensions: line_spans: __spanz pygments_lang_class: true - pymdownx.inlinehilite - - pymdownx.snippets + - pymdownx.snippets: + check_paths: true + base_path: docs/documentation/examples - def_list - pymdownx.tasklist: custom_checkbox: true + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format exclude_docs: | venv diff --git a/documentation/pom.xml b/documentation/pom.xml new file mode 100644 index 0000000..3a4394f --- /dev/null +++ b/documentation/pom.xml @@ -0,0 +1,111 @@ + + + 4.0.0 + + io.tarantool + tarantool-java-sdk + 2.0.0-SNAPSHOT + + + documentation + + + 0.13.0 + 5.14.0 + 17 + 17 + ${project.parent.basedir}/LICENSE_HEADER.txt + + + + + + io.tarantool + tarantool-client + 2.0.0-SNAPSHOT + import + pom + + + io.tarantool + testcontainers + 2.0.0-SNAPSHOT + import + pom + + + org.junit + junit-bom + ${junit.version} + import + pom + + + io.tarantool + cartridge-driver + ${cartridge-java.version} + test + + + + + + + io.tarantool + tarantool-client + test + + + io.tarantool + testcontainers + test + + + org.junit.jupiter + junit-jupiter + test + + + ch.qos.logback + logback-classic + test + + + io.tarantool + cartridge-driver + + + io.netty + netty-transport + + + io.netty + netty-handler + + + io.netty + netty-codec + + + io.netty + netty-codec-http + + + org.msgpack + msgpack-core + + + + + + + docs/documentation/examples/src + + + docs/documentation/examples/resources + + + + diff --git a/documentation/readme-images/navigation.png b/documentation/readme-images/navigation.png new file mode 100644 index 0000000..25cc23a Binary files /dev/null and b/documentation/readme-images/navigation.png differ diff --git a/documentation/readme-images/sections.png b/documentation/readme-images/sections.png new file mode 100644 index 0000000..58a73e2 Binary files /dev/null and b/documentation/readme-images/sections.png differ diff --git a/documentation/requirements.txt b/documentation/requirements.txt index e361f0a..9c72964 100644 --- a/documentation/requirements.txt +++ b/documentation/requirements.txt @@ -1,5 +1,5 @@ mkdocs-material==9.7.0 mike==v2.1.3 -mkdocs-drawio==v1.12.2 +mkdocs-drawio==v1.13.0 mkdocs_puml==v2.3.0 mkdocs-static-i18n[material]==v1.3.0 diff --git a/pom.xml b/pom.xml index 44d92b5..29d1540 100644 --- a/pom.xml +++ b/pom.xml @@ -642,5 +642,6 @@ testcontainers jacoco-coverage-aggregate-report testcontainers-autogen + documentation