Skip to content

Commit b448641

Browse files
committed
chore: update architecture documentation for XAP SDK with additional details on Gradle tasks and module structure
1 parent 9ca62d6 commit b448641

File tree

1 file changed

+30
-16
lines changed

1 file changed

+30
-16
lines changed

ARCHITECTURE.md

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,17 @@ The repository contains the following key components:
2121

2222
# Technology Stack
2323

24-
| Capability | Technology |
25-
|-----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|
26-
| Build System | [Gradle](https://docs.gradle.org/current/userguide/userguide.html) with [Kotlin DSL](https://docs.gradle.org/current/userguide/kotlin_dsl.html) |
27-
| Code Generation | [OpenAPI Generator](https://openapi-generator.tech/) |
28-
| CI/CD | GitHub Actions |
29-
| Testing | [JUnit5](https://junit.org/junit5/) |
30-
| Version Control | Git |
31-
| Code Quality | [Kover](https://kotlin.github.io/kotlinx-kover/gradle-plugin/) |
32-
| Programming Languages | Kotlin (JVM) |
33-
| Documentation | [KDoc](https://kotlinlang.org/docs/kotlin-doc.html), [Dokka](https://kotlinlang.org/docs/dokka-introduction.html) |
34-
| Target | [Java (LTS)](https://www.oracle.com/middleeast/java/technologies/java-se-support-roadmap.html) |
24+
| Capability | Technology |
25+
|---------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|
26+
| **Build System** | [Gradle](https://docs.gradle.org/current/userguide/userguide.html) with [Kotlin DSL](https://docs.gradle.org/current/userguide/kotlin_dsl.html) |
27+
| **Code Generation** | [OpenAPI Generator](https://openapi-generator.tech/) |
28+
| **CI/CD** | GitHub Actions |
29+
| **Testing** | [JUnit5](https://junit.org/junit5/) |
30+
| **Version Control** | Git |
31+
| **Code Quality** | [Kover](https://kotlin.github.io/kotlinx-kover/gradle-plugin/) |
32+
| **Programming Languages** | Kotlin (JVM) |
33+
| **Documentation** | [KDoc](https://kotlinlang.org/docs/kotlin-doc.html), [Dokka](https://kotlinlang.org/docs/dokka-introduction.html) |
34+
| **Target** | [Java (LTS)](https://www.oracle.com/middleeast/java/technologies/java-se-support-roadmap.html) |
3535

3636
# Modules
3737

@@ -47,11 +47,12 @@ specification files pre-processing, publishing, as well as for generating and pu
4747
It also includes configurations for code quality checks, such as Ktlint and Kover. All tasks are defined using kotlin
4848
DSL.
4949

50-
| Defined Gradle Task | Description |
51-
|---------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
52-
| `mergeSpecs` | Executes the openapi-merge-cli command using npx to merge OpenAPI specs. |
53-
| `transformSpecs` | Executes the spec-transformer CLI command using npx to transform the OpenAPI specs. |
54-
| `prepareSpecs` | A wrapper for the sequential execution of `mergeSpecs` and `transformSpecs`. Generates and copies a final specs.yaml file to the generator module's resources directory |
50+
| Defined Gradle Task | Description |
51+
|---------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
52+
| `mergeSpecs` | Executes the openapi-merge-cli command using npx to merge OpenAPI specs. |
53+
| `transformSpecs` | Executes the spec-transformer CLI command using npx to transform the OpenAPI specs. |
54+
| `prepareSpecs` | A wrapper for the sequential execution of `mergeSpecs` and `transformSpecs`. Generates and copies a final specs.yaml file to the generator module's resources directory |
55+
| `publishSnapshot` | Triggers the execution of the `publish` task. It verifies the artifact has a valid snapshot version suffix, ensures the publish task exists, executes the publish task, and outputs confirmation messages with the repository URL where the artifact can be accessed. |
5556

5657
## Generator Module
5758

@@ -95,3 +96,16 @@ and reusability of build scripts and configurations.
9596
The `buildSrc` module is used to define OpenAPI Generator customizations, such as custom mustache lambdas. This module
9697
can be used to define custom Gradle tasks, plugins, and other build-related logic that can be reused across the project.
9798
It is automatically included in the build process and can be used to extend the functionality of Gradle.
99+
100+
## XAP SDK Module
101+
102+
The `xap-sdk` module is the main module that contains the generated SDK code. It includes the generated API client code,
103+
along with SDK specific configurations and SDK core libraries integrations. The module is structured as follows:
104+
105+
| Package | Generated | Description |
106+
|-----------------|-----------|----------------------------------------------------------------------------------------------------|
107+
| `core` | **No** | SDK core libraries integrations. Defines the workflow for sync and async operations execution. |
108+
| `configuration` | **No** | SDK specific configurations such as endpoints, jackson configurations and others. |
109+
| `client` | **No** | API clients that are responsible for executing operations. |
110+
| `operations` | **YES** | Representations of available API requests. Generated based on the OpenAPI spec defined operations. |
111+
| `models` | **YES** | Representation of API models. Generated based on the OpenAPI spec defined schemas |

0 commit comments

Comments
 (0)