swaggeraem4j

Java client generated from Swagger AEM specification using Swagger Code Generator.

License

License

Categories

Categories

Swagger Program Interface REST Frameworks
GroupId

GroupId

com.shinesolutions
ArtifactId

ArtifactId

swaggeraem4j
Last Version

Last Version

0.10.0
Release Date

Release Date

Type

Type

jar
Description

Description

swaggeraem4j
Java client generated from Swagger AEM specification using Swagger Code Generator.
Project URL

Project URL

https://github.com/shinesolutions/swagger-aem
Source Code Management

Source Code Management

https://github.com/shinesolutions/swagger-aem

Download swaggeraem4j

How to add to project

<!-- https://jarcasting.com/artifacts/com.shinesolutions/swaggeraem4j/ -->
<dependency>
    <groupId>com.shinesolutions</groupId>
    <artifactId>swaggeraem4j</artifactId>
    <version>0.10.0</version>
</dependency>
// https://jarcasting.com/artifacts/com.shinesolutions/swaggeraem4j/
implementation 'com.shinesolutions:swaggeraem4j:0.10.0'
// https://jarcasting.com/artifacts/com.shinesolutions/swaggeraem4j/
implementation ("com.shinesolutions:swaggeraem4j:0.10.0")
'com.shinesolutions:swaggeraem4j:jar:0.10.0'
<dependency org="com.shinesolutions" name="swaggeraem4j" rev="0.10.0">
  <artifact name="swaggeraem4j" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.shinesolutions', module='swaggeraem4j', version='0.10.0')
)
libraryDependencies += "com.shinesolutions" % "swaggeraem4j" % "0.10.0"
[com.shinesolutions/swaggeraem4j "0.10.0"]

Dependencies

compile (5)

Group / Artifact Type Version
io.swagger : swagger-annotations jar 1.5.15
com.squareup.okhttp : okhttp jar 2.7.5
com.squareup.okhttp : logging-interceptor jar 2.7.5
com.google.code.gson : gson jar 2.8.1
org.threeten : threetenbp jar 1.3.5

test (1)

Group / Artifact Type Version
junit : junit jar 4.12

Project Modules

There are no modules declared in this project.

Swagger AEM

Swagger AEM is an OpenAPI specification for Adobe Experience Manager (AEM) API.

This specification is used to generate client libraries for Ruby, Python, node.js, and Java using Swagger Code Generator.

Learn more about Swagger AEM:

Swagger AEM is part of AEM OpenCloud platform but it can be used as a stand-alone.

Generated Clients

Language Package Getting Started Status
Ruby swagger_aem Published Version README CHANGELOG swagger_aem Build Status
Python swaggeraem Published Version README CHANGELOG
Java swaggeraem4j Published Version README CHANGELOG
JavaScript Work in progress README CHANGELOG

Development

To run build targets using swagger-codegen in your path:

make <target>

If you want to use a custom swagger-codegen-cli.jar:

SWAGGER_CODEGEN_CLI_JAR=/path/to/swagger-codegen-cli.jar make <target>

Testing

Unit tests are generated by swagger-codegen along with the client code.

Integration tests are part of Swagger AEM and require an AEM instance running on port 4502 with Shine Solutions AEM Health Check package installed.

Frequently Asked Questions

  • Q: Why does each OSGI config need to be declared as a single operation in the OpenAPI spec?
    A: There are two reasons. The first one is to explicitly define which parameters are relevant for which OSGI config, which won't be clear when we have one operation for all OSGI configs with all parameters declared within that operation. The second one is to manage the usability of the generated code. A single operation will translate to a single method with all parameters supported, which is fine in generated Ruby client because it supports optional hash, but it's a problem with generated Java client because all parameters will be declared within the method signature where caller will have to pass in nulls for the parameters that aren't relevant for the OSGI config being processed, on top of the risk of hitting maximum number of 255 parameters per method (as per JVM Specification for Java SE 11).

Contribution

Since swagger-aem contains multiple languages, add a [ruby|python|javascript|java] prefix to language-specific commits, this will help with filtering full commits log.

Tagging should also be prefixed with:

  • api when the release is for the OpenAPI specification, e.g. api-1.0.0
  • ruby|python|javascript|java when the release is for the generated client, e.g. ruby-0.9.2, python-0.9.0

Presentations

com.shinesolutions

Shine Solutions Group

Empowering our enterprise and government partners with pragmatic technology solutions

Versions

Version
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0