-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #15 from Sphereon-Opensource/feature/OIDF-33
Feature/oidf 33
- Loading branch information
Showing
6 changed files
with
1,656 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
# Open API specs | ||
|
||
The Open API specs of OpenID Federation. | ||
|
||
## Entity Statement | ||
|
||
An Entity Statement contains the information needed for the Entity that is the subject of the Entity Statement to | ||
participate in federation(s). An Entity Statement is a signed JWT. The subject of the JWT is the Entity itself. The | ||
issuer of the JWT is the party that issued the Entity Statement. All Entities in a federation publish an Entity Statement | ||
about themselves called an Entity Configuration. Superior Entities in a federation publish Entity Statements about their | ||
Immediate Subordinate Entities called Subordinate Statements. | ||
|
||
### Profiles | ||
|
||
The Open API generator will generate models, infrastructures and apis by default. To make | ||
it generate models only uncomment `profiles=models-only` from gradle.properties or pass the profile in the comment line. | ||
|
||
### Run Open API generator | ||
|
||
Generate models, infrastructures and apis: | ||
```shell | ||
gradle clean openApiGenerate | ||
``` | ||
|
||
Generate only models: | ||
```shell | ||
gradle clean openApiGenerate -Pprofile=model-only | ||
``` | ||
|
||
Generate the jar file: | ||
```shell | ||
gradle clean build | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
plugins { | ||
kotlin("jvm") version "2.0.0" | ||
id("org.openapi.generator") version "7.7.0" | ||
id("maven-publish") | ||
} | ||
|
||
group = "com.sphereon.oid.fed" | ||
version = "0.1.0-SNAPSHOT" | ||
|
||
project.extra.set("openApiPackage", "com.sphereon.oid.fed.openapi") | ||
|
||
val profiles = project.properties["profiles"]?.toString()?.split(",") ?: emptyList() | ||
val isModelsOnlyProfile = profiles.contains("models-only") | ||
val ktorVersion = "2.3.11" | ||
|
||
repositories { | ||
mavenCentral() | ||
} | ||
|
||
dependencies { | ||
implementation("io.ktor:ktor-client-core:$ktorVersion") | ||
implementation("io.ktor:ktor-client-content-negotiation:$ktorVersion") | ||
implementation("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion") | ||
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.0") | ||
implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.0") | ||
} | ||
|
||
openApiGenerate { | ||
val openApiPackage: String by project | ||
generatorName.set("kotlin") | ||
packageName.set("com.sphereon.oid.fed.openapi") | ||
apiPackage.set("$openApiPackage.api") | ||
modelPackage.set("$openApiPackage.models") | ||
inputSpec.set("$projectDir/src/main/kotlin/com/sphereon/oid/fed/openapi/openapi.yaml") | ||
library.set("multiplatform") | ||
outputDir.set("$projectDir/build/generated") | ||
configOptions.set( | ||
mapOf( | ||
"dateLibrary" to "string" | ||
) | ||
) | ||
|
||
if (isModelsOnlyProfile) { | ||
globalProperties.set( | ||
configOptions.get().plus( | ||
mapOf( | ||
"models" to "" | ||
) | ||
) | ||
) | ||
} | ||
} | ||
|
||
|
||
publishing { | ||
publications { | ||
create<MavenPublication>("mavenKotlin") { | ||
from(components["kotlin"]) | ||
} | ||
} | ||
} | ||
|
||
tasks.compileKotlin { | ||
dependsOn(tasks.openApiGenerate) | ||
} | ||
|
||
tasks.jar { | ||
dependsOn(tasks.compileKotlin) | ||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE | ||
archiveBaseName.set(project.name) | ||
from(configurations.runtimeClasspath.get().map { if (it.isDirectory) it else zipTree(it) }) | ||
from("$projectDir/build/classes/kotlin/main") | ||
} | ||
|
||
kotlin { | ||
sourceSets.main { | ||
kotlin.srcDirs( | ||
"$projectDir/build/generated/src/commonMain/kotlin" | ||
) | ||
} | ||
jvmToolchain(21) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
kotlin.code.style=official | ||
#profiles=models-only |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
plugins { | ||
id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" | ||
} | ||
rootProject.name = "openapi" |
Oops, something went wrong.