Skip to content

Commit e35c0f7

Browse files
committed
commit
1 parent 6692aa5 commit e35c0f7

19 files changed

+13856
-94
lines changed

build.gradle.kts

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import java.time.Duration
2+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
23

34
plugins {
45
kotlin("jvm") version "2.1.10"
5-
id("maven-publish")
6-
id("signing")
6+
id("org.jlleitschuh.gradle.ktlint") version "12.1.2"
77
id("io.github.gradle-nexus.publish-plugin") version "2.0.0"
88
}
99

@@ -12,11 +12,39 @@ version = "1.0-SNAPSHOT"
1212

1313
repositories {
1414
mavenCentral()
15+
gradlePluginPortal()
1516
maven {
1617
url = uri("https://oss.sonatype.org/content/repositories/snapshots/")
1718
}
1819
}
1920

21+
subprojects {
22+
apply(plugin = "org.jlleitschuh.gradle.ktlint")
23+
apply(plugin = "org.jetbrains.kotlin.jvm")
24+
25+
repositories {
26+
mavenCentral()
27+
gradlePluginPortal()
28+
maven {
29+
url = uri("https://oss.sonatype.org/content/repositories/snapshots/")
30+
}
31+
}
32+
33+
kotlin {
34+
jvmToolchain(21)
35+
target {
36+
compilerOptions {
37+
jvmTarget = JvmTarget.JVM_1_8
38+
}
39+
}
40+
}
41+
42+
java {
43+
sourceCompatibility = JavaVersion.VERSION_1_8
44+
targetCompatibility = JavaVersion.VERSION_1_8
45+
}
46+
}
47+
2048
nexusPublishing {
2149
repositories {
2250
sonatype {
@@ -31,13 +59,14 @@ nexusPublishing {
3159
}
3260
}
3361

34-
dependencies {
35-
testImplementation(kotlin("test"))
36-
}
37-
38-
tasks.test {
39-
useJUnitPlatform()
40-
}
4162
kotlin {
4263
jvmToolchain(21)
4364
}
65+
66+
tasks.register("prepareSpecs") {
67+
dependsOn("mergeSpecs", "transformSpecs")
68+
69+
File("$rootDir", "specs/specs.yaml")
70+
}
71+
72+
apply("gradle-tasks/specs.gradle.kts")
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.expediagroup.sdk.xap.generator.mustache
2+
3+
import com.samskivert.mustache.Mustache
4+
import com.samskivert.mustache.Template
5+
import java.io.Serializable
6+
import java.io.Writer
7+
import org.openapitools.codegen.CodegenResponse
8+
9+
class AllowedMediaTypesLambda : Mustache.Lambda, Serializable {
10+
override fun execute(
11+
fragment: Template.Fragment,
12+
writer: Writer,
13+
) {
14+
val response: CodegenResponse = fragment.context() as CodegenResponse
15+
if (response.is2xx) {
16+
val mediaTypes: List<String> =
17+
response.content.keys.filter {
18+
!it.contains("xml", ignoreCase = true)
19+
}
20+
21+
val context = mapOf("mediaTypes" to mediaTypes)
22+
fragment.execute(context, writer)
23+
}
24+
}
25+
}

generator/build.gradle.kts

Lines changed: 4 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
1-
import com.samskivert.mustache.Mustache
2-
import com.samskivert.mustache.Template
3-
import org.jlleitschuh.gradle.ktlint.tasks.KtLintFormatTask
41
import org.openapitools.codegen.CodegenConstants
5-
import org.openapitools.codegen.CodegenResponse
6-
import java.io.Serializable
7-
import java.io.Writer
2+
import com.expediagroup.sdk.xap.generator.mustache.AllowedMediaTypesLambda
83

94
plugins {
5+
`kotlin-dsl`
106
kotlin("jvm") version "2.1.10"
117
id("com.expediagroup.sdk.openapigenerator") version "0.0.3-beta-SNAPSHOT"
128
id("org.jlleitschuh.gradle.ktlint") version "12.1.2"
@@ -15,13 +11,6 @@ plugins {
1511
group = "com.expediagroup.sdk"
1612
version = "1.0-SNAPSHOT"
1713

18-
repositories {
19-
mavenCentral()
20-
maven {
21-
url = uri("https://oss.sonatype.org/content/repositories/snapshots/")
22-
}
23-
}
24-
2514
dependencies {
2615
api("org.openapitools:openapi-generator:7.11.0")
2716
testImplementation(kotlin("test"))
@@ -38,6 +27,7 @@ kotlin {
3827
openApiGenerate {
3928
inputSpec = System.getProperty("inputSpec") ?: "$projectDir/src/main/resources/specs.yaml"
4029

30+
packageName = "com.expediagroup.sdk.xap"
4131
invokerPackage = "com.expediagroup.sdk.xap"
4232
apiPackage = "com.expediagroup.sdk.xap.operations"
4333
modelPackage = "com.expediagroup.sdk.xap.models"
@@ -54,30 +44,9 @@ openApiGenerate {
5444
outputDir = "$rootDir/xap-sdk/src/main/kotlin"
5545

5646
additionalProperties.put(CodegenConstants.ENUM_PROPERTY_NAMING, "UPPERCASE")
57-
additionalProperties.put("allowedMediaTypes", Lambdas.AllowedMediaTypesLambda())
47+
additionalProperties.put("allowedMediaTypes", AllowedMediaTypesLambda())
5848

5949
configOptions.put("sourceFolder", "")
6050

6151
globalProperties.put("supportingFiles", "Room.kt")
6252
}
63-
64-
65-
class Lambdas {
66-
class AllowedMediaTypesLambda : Mustache.Lambda, Serializable {
67-
override fun execute(
68-
fragment: Template.Fragment,
69-
writer: Writer,
70-
) {
71-
val response: CodegenResponse = fragment.context() as CodegenResponse
72-
if (response.is2xx) {
73-
val mediaTypes: List<String> =
74-
response.content.keys.filter {
75-
!it.contains("xml", ignoreCase = true)
76-
}
77-
78-
val context = mapOf("mediaTypes" to mediaTypes)
79-
fragment.execute(context, writer)
80-
}
81-
}
82-
}
83-
}

generator/tasks/lambdas.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
2+

gradle-tasks/specs.gradle.kts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
tasks.register("mergeSpecs") {
2+
exec {
3+
commandLine(
4+
"npx openapi-merge-cli".split(" ")
5+
)
6+
workingDir = File(rootDir, "specs")
7+
}
8+
}
9+
10+
tasks.register("transformSpecs") {
11+
dependsOn("mergeSpecs")
12+
13+
exec {
14+
commandLine(
15+
"npx --yes -p @expediagroup/spec-transformer cli --headers --operationIdsToTags -i specs.yaml -o specs.yaml"
16+
)
17+
workingDir = File(rootDir, "specs")
18+
}
19+
}

gradle/wrapper/gradle-wrapper.jar

-16.8 KB
Binary file not shown.
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
#Sun Mar 02 20:01:10 EET 2025
21
distributionBase=GRADLE_USER_HOME
32
distributionPath=wrapper/dists
4-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
4+
networkTimeout=10000
5+
validateDistributionUrl=true
56
zipStoreBase=GRADLE_USER_HOME
67
zipStorePath=wrapper/dists

gradlew

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
# See the License for the specific language governing permissions and
1616
# limitations under the License.
1717
#
18+
# SPDX-License-Identifier: Apache-2.0
19+
#
1820

1921
##############################################################################
2022
#
@@ -55,7 +57,7 @@
5557
# Darwin, MinGW, and NonStop.
5658
#
5759
# (3) This script is generated from the Groovy template
58-
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
60+
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
5961
# within the Gradle project.
6062
#
6163
# You can find Gradle at https://github.com/gradle/gradle/.
@@ -80,13 +82,12 @@ do
8082
esac
8183
done
8284

83-
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
84-
85-
APP_NAME="Gradle"
85+
# This is normally unused
86+
# shellcheck disable=SC2034
8687
APP_BASE_NAME=${0##*/}
87-
88-
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
89-
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
88+
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
89+
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
90+
' "$PWD" ) || exit
9091

9192
# Use the maximum available, or set MAX_FD != -1 to use that value.
9293
MAX_FD=maximum
@@ -133,22 +134,29 @@ location of your Java installation."
133134
fi
134135
else
135136
JAVACMD=java
136-
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
137+
if ! command -v java >/dev/null 2>&1
138+
then
139+
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
137140
138141
Please set the JAVA_HOME variable in your environment to match the
139142
location of your Java installation."
143+
fi
140144
fi
141145

142146
# Increase the maximum file descriptors if we can.
143147
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
144148
case $MAX_FD in #(
145149
max*)
150+
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
151+
# shellcheck disable=SC2039,SC3045
146152
MAX_FD=$( ulimit -H -n ) ||
147153
warn "Could not query maximum file descriptor limit"
148154
esac
149155
case $MAX_FD in #(
150156
'' | soft) :;; #(
151157
*)
158+
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
159+
# shellcheck disable=SC2039,SC3045
152160
ulimit -n "$MAX_FD" ||
153161
warn "Could not set maximum file descriptor limit to $MAX_FD"
154162
esac
@@ -193,18 +201,28 @@ if "$cygwin" || "$msys" ; then
193201
done
194202
fi
195203

196-
# Collect all arguments for the java command;
197-
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
198-
# shell script including quotes and variable substitutions, so put them in
199-
# double quotes to make sure that they get re-expanded; and
200-
# * put everything else in single quotes, so that it's not re-expanded.
204+
205+
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
206+
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
207+
208+
# Collect all arguments for the java command:
209+
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
210+
# and any embedded shellness will be escaped.
211+
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
212+
# treated as '${Hostname}' itself on the command line.
201213

202214
set -- \
203215
"-Dorg.gradle.appname=$APP_BASE_NAME" \
204216
-classpath "$CLASSPATH" \
205217
org.gradle.wrapper.GradleWrapperMain \
206218
"$@"
207219

220+
# Stop when "xargs" is not available.
221+
if ! command -v xargs >/dev/null 2>&1
222+
then
223+
die "xargs is not available"
224+
fi
225+
208226
# Use "xargs" to parse quoted args.
209227
#
210228
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.

gradlew.bat

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@
1313
@rem See the License for the specific language governing permissions and
1414
@rem limitations under the License.
1515
@rem
16+
@rem SPDX-License-Identifier: Apache-2.0
17+
@rem
1618

17-
@if "%DEBUG%" == "" @echo off
19+
@if "%DEBUG%"=="" @echo off
1820
@rem ##########################################################################
1921
@rem
2022
@rem Gradle startup script for Windows
@@ -25,7 +27,8 @@
2527
if "%OS%"=="Windows_NT" setlocal
2628

2729
set DIRNAME=%~dp0
28-
if "%DIRNAME%" == "" set DIRNAME=.
30+
if "%DIRNAME%"=="" set DIRNAME=.
31+
@rem This is normally unused
2932
set APP_BASE_NAME=%~n0
3033
set APP_HOME=%DIRNAME%
3134

@@ -40,13 +43,13 @@ if defined JAVA_HOME goto findJavaFromJavaHome
4043

4144
set JAVA_EXE=java.exe
4245
%JAVA_EXE% -version >NUL 2>&1
43-
if "%ERRORLEVEL%" == "0" goto execute
46+
if %ERRORLEVEL% equ 0 goto execute
4447

45-
echo.
46-
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
47-
echo.
48-
echo Please set the JAVA_HOME variable in your environment to match the
49-
echo location of your Java installation.
48+
echo. 1>&2
49+
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
50+
echo. 1>&2
51+
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
52+
echo location of your Java installation. 1>&2
5053

5154
goto fail
5255

@@ -56,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
5659

5760
if exist "%JAVA_EXE%" goto execute
5861

59-
echo.
60-
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
61-
echo.
62-
echo Please set the JAVA_HOME variable in your environment to match the
63-
echo location of your Java installation.
62+
echo. 1>&2
63+
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
64+
echo. 1>&2
65+
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
66+
echo location of your Java installation. 1>&2
6467

6568
goto fail
6669

@@ -75,13 +78,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
7578

7679
:end
7780
@rem End local scope for the variables with windows NT shell
78-
if "%ERRORLEVEL%"=="0" goto mainEnd
81+
if %ERRORLEVEL% equ 0 goto mainEnd
7982

8083
:fail
8184
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
8285
rem the _cmd.exe /c_ return code!
83-
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
84-
exit /b 1
86+
set EXIT_CODE=%ERRORLEVEL%
87+
if %EXIT_CODE% equ 0 set EXIT_CODE=1
88+
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
89+
exit /b %EXIT_CODE%
8590

8691
:mainEnd
8792
if "%OS%"=="Windows_NT" endlocal

0 commit comments

Comments
 (0)