This SDK provides a Java client to interact with the Adobe Commerce Optimizer (ACO) Data Ingestion API. It is built using OpenAPI Generator and Maven for streamlined integration and customization.
The project contains both generated code (from the OpenAPI specification) and manually written logic (for authentication, client handling, etc.).
.
βββ README.md # Project documentation (manually written)
βββ catalog-ingestion-openapi-spec.yaml # OpenAPI specification (downloaded or maintained)
βββ generator/ # Code generation configuration
β βββ generator-config.yaml # OpenAPI generator config (used by plugin)
β βββ templates/ # Mustache templates for SDK customization
β β βββ AdobeCredentials.mustache
β β βββ ClientBuilder.mustache
β β βββ ClientConfig.mustache
β β βββ Environment.mustache
β β βββ Region.mustache
β β βββ client.mustache
β β βββ clientImpl.mustache
β β βββ licenseInfo.mustache
βββ pom.xml # Maven build configuration
βββ src/main/java/com/adobe/aco/
β βββ auth/ # Manual IMS authentication logic
β βββ client/ # Client interface/impl (generated via templates)
β βββ error/ # Custom error types (manual)
β βββ http/ # HTTP client layer (manual)
β βββ model/ # POJOs generated from OpenAPI spec
β βββ ClientExample.java # Sample client usage (manual)
βββ target/ # Compiled classes and artifacts (Maven output)
- All classes in
src/main/java/com/adobe/aco/model/are generated from the OpenAPI spec. Client.javaandClientImpl.javaare generated using custom Mustache templates from the/generator/templates/directory.- The
openapi-generator-maven-pluginhandles the generation as part of the Maven lifecycle (generate-sources).
- All content in
auth/,error/,http/, and utility classes likeClientBuilderandClientConfigare hand-written. - Custom Mustache templates reside in
generator/templates/. pom.xmlandgenerator-config.yamldefine the generation process and options..openapi-generator-ignoreexcludes unwanted files likeApiClient,Configuration, and Gradle artifacts.
- Deprecated: The
generate.shscript was previously used to invoke OpenAPI CLI. This has been replaced by the Maven plugin. - The OpenAPI spec is downloaded or maintained locally as
catalog-ingestion-openapi-spec.yaml.