diff --git a/.github/workflows/plugin-it.yml b/.github/workflows/plugin-it.yml index 0569067aba..a74592dbdd 100644 --- a/.github/workflows/plugin-it.yml +++ b/.github/workflows/plugin-it.yml @@ -1,4 +1,4 @@ -name: Gradle Plugin Integration Tests +name: Plugin Integration Tests on: workflow_call: @@ -24,8 +24,15 @@ jobs: uses: gradle/gradle-build-action@v2 - name: Android Test run: ./gradlew build + - name: Archive failures + uses: actions/upload-artifact@v3 + if: failure() + with: + name: gradle-plugin-android-build-reports + path: integration/gradle-plugin-android-test/**/build/reports + retention-days: 7 - integration-tests: + gradle-integration-tests: timeout-minutes: 30 runs-on: ubuntu-latest defaults: @@ -45,3 +52,41 @@ jobs: uses: gradle/gradle-build-action@v2 - name: Integration Tests run: ./gradlew build + - name: Archive failures + uses: actions/upload-artifact@v3 + if: failure() + with: + name: gradle-plugin-build-reports + path: integration/gradle-plugin-integration-tests/**/build/reports + retention-days: 7 + + maven-integration-tests: + timeout-minutes: 30 + runs-on: ubuntu-latest + defaults: + run: + working-directory: integration/maven-plugin-integration-tests + + steps: + - uses: actions/checkout@v3 + - name: Validate Gradle wrapper + uses: gradle/wrapper-validation-action@v1 + - name: Set up Java 17 + uses: actions/setup-java@v3 + with: + java-version: 17 + distribution: 'zulu' + cache: 'maven' + - name: Set up Gradle cache + uses: gradle/gradle-build-action@v2 + - name: Integration Tests + run: ./gradlew build + - name: Archive failures + uses: actions/upload-artifact@v3 + if: failure() + with: + name: maven-plugin-build-reports + path: | + integration/maven-plugin-integration-tests/build/integration/**/build.log + integration/maven-plugin-integration-tests/build/integration/**/target/surefire-reports + retention-days: 7 diff --git a/.github/workflows/release-code.yml b/.github/workflows/release-code.yml index d743649755..0531304f07 100644 --- a/.github/workflows/release-code.yml +++ b/.github/workflows/release-code.yml @@ -44,6 +44,4 @@ jobs: name: build-reports path: | ./**/build/reports - plugins/graphql-kotlin-maven-plugin/build/integration/**/build.log - plugins/graphql-kotlin-maven-plugin/build/integration/**/target/surefire-reports retention-days: 7 diff --git a/integration/maven-plugin-integration-tests/.mvn/wrapper/maven-wrapper.jar b/integration/maven-plugin-integration-tests/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000..bf82ff01c6 Binary files /dev/null and b/integration/maven-plugin-integration-tests/.mvn/wrapper/maven-wrapper.jar differ diff --git a/integration/maven-plugin-integration-tests/.mvn/wrapper/maven-wrapper.properties b/integration/maven-plugin-integration-tests/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000000..ca5ab4bab1 --- /dev/null +++ b/integration/maven-plugin-integration-tests/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,18 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.7/apache-maven-3.8.7-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar diff --git a/integration/maven-plugin-integration-tests/build.gradle.kts b/integration/maven-plugin-integration-tests/build.gradle.kts new file mode 100644 index 0000000000..751a5a33a9 --- /dev/null +++ b/integration/maven-plugin-integration-tests/build.gradle.kts @@ -0,0 +1,94 @@ +import com.github.tomakehurst.wiremock.standalone.WireMockServerRunner +import java.time.Duration +import java.util.Properties + +description = "GraphQL Kotlin Maven Plugin that can generate type-safe GraphQL Kotlin client and GraphQL schema in SDL format using reflections" + +buildscript { + dependencies { + classpath(libs.wiremock.standalone) + } +} + +@Suppress("DSL_SCOPE_VIOLATION") // TODO: remove once KTIJ-19369 / Gradle#22797 is fixed +plugins { + alias(libs.plugins.kotlin.jvm) +} + +repositories { + mavenCentral() + mavenLocal { + content { + includeGroup("com.expediagroup") + } + } +} + +val properties = Properties() +properties.load(File(rootDir.parentFile.parent, "gradle.properties").inputStream()) +for ((key, value) in properties) { + project.ext[key.toString()] = value +} + +tasks { + val kotlinJvmVersion: String by project + /* + Integration tests are run through maven-invoker-plugin which will execute tests under src/integration/ + */ + val mavenEnvironmentVariables = mapOf( + "graphqlKotlinVersion" to project.ext["version"], + "graphqlJavaVersion" to libs.versions.graphql.java.get(), + "kotlinJvmTarget" to kotlinJvmVersion, + "kotlinVersion" to libs.versions.kotlin.get(), + "kotlinxCoroutinesVersion" to libs.versions.kotlinx.coroutines.get(), + "kotlinPoetVersion" to libs.versions.poet.get(), + "kotlinxSerializationVersion" to libs.versions.kotlinx.serialization.get(), + "ktorVersion" to libs.versions.ktor.get(), + "reactorVersion" to libs.versions.reactor.core.get(), + "junitVersion" to libs.versions.junit.get() + ) + var wireMockServer: WireMockServerRunner? = null + var wireMockServerPort: Int? = null + val startWireMock by register("startWireMock") { + dependsOn(gradle.includedBuild("graphql-kotlin").task(":resolveIntegrationTestDependencies")) + finalizedBy("stopWireMock") + + doLast { + val wireMockConfig = arrayOf( + "--root-dir=${project.projectDir}/integration/wiremock", + "--port=0" + ) + wireMockServer = WireMockServerRunner() + wireMockServer?.run(*wireMockConfig) + wireMockServerPort = wireMockServer?.port() + logger.info("wiremock started at port $wireMockServerPort") + } + } + val stopWireMock by register("stopWireMock") { + mustRunAfter("startWireMock") + + doLast { + val server = wireMockServer + if (server?.isRunning == true) { + logger.info("attempting to stop wiremock server") + server.stop() + logger.info("wiremock server stopped") + } + } + } + val integrationTest by register("integrationTest") { + dependsOn(startWireMock.path) + finalizedBy(stopWireMock.path) + timeout.set(Duration.ofSeconds(500)) + doLast { + exec { + environment(mavenEnvironmentVariables) + environment("graphqlEndpoint", "http://localhost:$wireMockServerPort") + commandLine("${project.projectDir}/mvnw", "dependency:go-offline", "invoker:install", "invoker:run", "--no-transfer-progress") + } + } + } + check { + dependsOn(integrationTest.path) + } +} diff --git a/integration/maven-plugin-integration-tests/gradle/wrapper/gradle-wrapper.jar b/integration/maven-plugin-integration-tests/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000..943f0cbfa7 Binary files /dev/null and b/integration/maven-plugin-integration-tests/gradle/wrapper/gradle-wrapper.jar differ diff --git a/integration/maven-plugin-integration-tests/gradle/wrapper/gradle-wrapper.properties b/integration/maven-plugin-integration-tests/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000..f398c33c4b --- /dev/null +++ b/integration/maven-plugin-integration-tests/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip +networkTimeout=10000 +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/integration/maven-plugin-integration-tests/gradlew b/integration/maven-plugin-integration-tests/gradlew new file mode 100755 index 0000000000..65dcd68d65 --- /dev/null +++ b/integration/maven-plugin-integration-tests/gradlew @@ -0,0 +1,244 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/integration/maven-plugin-integration-tests/gradlew.bat b/integration/maven-plugin-integration-tests/gradlew.bat new file mode 100644 index 0000000000..6689b85bee --- /dev/null +++ b/integration/maven-plugin-integration-tests/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/basic-setup/pom.xml b/integration/maven-plugin-integration-tests/integration/basic-setup/pom.xml similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/basic-setup/pom.xml rename to integration/maven-plugin-integration-tests/integration/basic-setup/pom.xml diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/basic-setup/src/main/resources/ExampleQuery.graphql b/integration/maven-plugin-integration-tests/integration/basic-setup/src/main/resources/ExampleQuery.graphql similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/basic-setup/src/main/resources/ExampleQuery.graphql rename to integration/maven-plugin-integration-tests/integration/basic-setup/src/main/resources/ExampleQuery.graphql diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/basic-setup/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GraphQLMavenPluginTest.kt b/integration/maven-plugin-integration-tests/integration/basic-setup/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GraphQLMavenPluginTest.kt similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/basic-setup/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GraphQLMavenPluginTest.kt rename to integration/maven-plugin-integration-tests/integration/basic-setup/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GraphQLMavenPluginTest.kt diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/complete-setup-jackson/pom.xml b/integration/maven-plugin-integration-tests/integration/complete-setup-jackson/pom.xml similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/complete-setup-jackson/pom.xml rename to integration/maven-plugin-integration-tests/integration/complete-setup-jackson/pom.xml diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/complete-setup-jackson/src/main/kotlin/com/example/UUIDScalarConverter.kt b/integration/maven-plugin-integration-tests/integration/complete-setup-jackson/src/main/kotlin/com/example/UUIDScalarConverter.kt similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/complete-setup-jackson/src/main/kotlin/com/example/UUIDScalarConverter.kt rename to integration/maven-plugin-integration-tests/integration/complete-setup-jackson/src/main/kotlin/com/example/UUIDScalarConverter.kt diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/complete-setup-jackson/src/main/resources/DeprecatedQuery.graphql b/integration/maven-plugin-integration-tests/integration/complete-setup-jackson/src/main/resources/DeprecatedQuery.graphql similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/complete-setup-jackson/src/main/resources/DeprecatedQuery.graphql rename to integration/maven-plugin-integration-tests/integration/complete-setup-jackson/src/main/resources/DeprecatedQuery.graphql diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/complete-setup-jackson/src/main/resources/ExampleQuery.graphql b/integration/maven-plugin-integration-tests/integration/complete-setup-jackson/src/main/resources/ExampleQuery.graphql similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/complete-setup-jackson/src/main/resources/ExampleQuery.graphql rename to integration/maven-plugin-integration-tests/integration/complete-setup-jackson/src/main/resources/ExampleQuery.graphql diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/complete-setup-jackson/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GraphQLMavenPluginTest.kt b/integration/maven-plugin-integration-tests/integration/complete-setup-jackson/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GraphQLMavenPluginTest.kt similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/complete-setup-jackson/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GraphQLMavenPluginTest.kt rename to integration/maven-plugin-integration-tests/integration/complete-setup-jackson/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GraphQLMavenPluginTest.kt diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/complete-setup-kotlinx/pom.xml b/integration/maven-plugin-integration-tests/integration/complete-setup-kotlinx/pom.xml similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/complete-setup-kotlinx/pom.xml rename to integration/maven-plugin-integration-tests/integration/complete-setup-kotlinx/pom.xml diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/complete-setup-kotlinx/src/main/kotlin/com/example/UUIDScalarConverter.kt b/integration/maven-plugin-integration-tests/integration/complete-setup-kotlinx/src/main/kotlin/com/example/UUIDScalarConverter.kt similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/complete-setup-kotlinx/src/main/kotlin/com/example/UUIDScalarConverter.kt rename to integration/maven-plugin-integration-tests/integration/complete-setup-kotlinx/src/main/kotlin/com/example/UUIDScalarConverter.kt diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/complete-setup-kotlinx/src/main/resources/DeprecatedQuery.graphql b/integration/maven-plugin-integration-tests/integration/complete-setup-kotlinx/src/main/resources/DeprecatedQuery.graphql similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/complete-setup-kotlinx/src/main/resources/DeprecatedQuery.graphql rename to integration/maven-plugin-integration-tests/integration/complete-setup-kotlinx/src/main/resources/DeprecatedQuery.graphql diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/complete-setup-kotlinx/src/main/resources/ExampleQuery.graphql b/integration/maven-plugin-integration-tests/integration/complete-setup-kotlinx/src/main/resources/ExampleQuery.graphql similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/complete-setup-kotlinx/src/main/resources/ExampleQuery.graphql rename to integration/maven-plugin-integration-tests/integration/complete-setup-kotlinx/src/main/resources/ExampleQuery.graphql diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/complete-setup-kotlinx/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GraphQLMavenPluginTest.kt b/integration/maven-plugin-integration-tests/integration/complete-setup-kotlinx/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GraphQLMavenPluginTest.kt similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/complete-setup-kotlinx/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GraphQLMavenPluginTest.kt rename to integration/maven-plugin-integration-tests/integration/complete-setup-kotlinx/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GraphQLMavenPluginTest.kt diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/download-sdl-timeout/invoker.properties b/integration/maven-plugin-integration-tests/integration/download-sdl-timeout/invoker.properties similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/download-sdl-timeout/invoker.properties rename to integration/maven-plugin-integration-tests/integration/download-sdl-timeout/invoker.properties diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/download-sdl-timeout/pom.xml b/integration/maven-plugin-integration-tests/integration/download-sdl-timeout/pom.xml similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/download-sdl-timeout/pom.xml rename to integration/maven-plugin-integration-tests/integration/download-sdl-timeout/pom.xml diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/download-sdl/pom.xml b/integration/maven-plugin-integration-tests/integration/download-sdl/pom.xml similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/download-sdl/pom.xml rename to integration/maven-plugin-integration-tests/integration/download-sdl/pom.xml diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/download-sdl/src/test/kotlin/com/expediagroup/graphql/plugin/maven/DownloadSDLMojoTest.kt b/integration/maven-plugin-integration-tests/integration/download-sdl/src/test/kotlin/com/expediagroup/graphql/plugin/maven/DownloadSDLMojoTest.kt similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/download-sdl/src/test/kotlin/com/expediagroup/graphql/plugin/maven/DownloadSDLMojoTest.kt rename to integration/maven-plugin-integration-tests/integration/download-sdl/src/test/kotlin/com/expediagroup/graphql/plugin/maven/DownloadSDLMojoTest.kt diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-client/pom.xml b/integration/maven-plugin-integration-tests/integration/generate-client/pom.xml similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-client/pom.xml rename to integration/maven-plugin-integration-tests/integration/generate-client/pom.xml diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-client/schema.graphql b/integration/maven-plugin-integration-tests/integration/generate-client/schema.graphql similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-client/schema.graphql rename to integration/maven-plugin-integration-tests/integration/generate-client/schema.graphql diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-client/src/main/resources/ExampleQuery.graphql b/integration/maven-plugin-integration-tests/integration/generate-client/src/main/resources/ExampleQuery.graphql similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-client/src/main/resources/ExampleQuery.graphql rename to integration/maven-plugin-integration-tests/integration/generate-client/src/main/resources/ExampleQuery.graphql diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-client/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GenerateClientMojoTest.kt b/integration/maven-plugin-integration-tests/integration/generate-client/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GenerateClientMojoTest.kt similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-client/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GenerateClientMojoTest.kt rename to integration/maven-plugin-integration-tests/integration/generate-client/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GenerateClientMojoTest.kt diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-federated/pom.xml b/integration/maven-plugin-integration-tests/integration/generate-sdl-federated/pom.xml similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-federated/pom.xml rename to integration/maven-plugin-integration-tests/integration/generate-sdl-federated/pom.xml diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-federated/src/main/kotlin/com/example/Application.kt b/integration/maven-plugin-integration-tests/integration/generate-sdl-federated/src/main/kotlin/com/example/Application.kt similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-federated/src/main/kotlin/com/example/Application.kt rename to integration/maven-plugin-integration-tests/integration/generate-sdl-federated/src/main/kotlin/com/example/Application.kt diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-federated/src/main/kotlin/com/example/SimpleQuery.kt b/integration/maven-plugin-integration-tests/integration/generate-sdl-federated/src/main/kotlin/com/example/SimpleQuery.kt similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-federated/src/main/kotlin/com/example/SimpleQuery.kt rename to integration/maven-plugin-integration-tests/integration/generate-sdl-federated/src/main/kotlin/com/example/SimpleQuery.kt diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-federated/src/main/resources/application.yml b/integration/maven-plugin-integration-tests/integration/generate-sdl-federated/src/main/resources/application.yml similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-federated/src/main/resources/application.yml rename to integration/maven-plugin-integration-tests/integration/generate-sdl-federated/src/main/resources/application.yml diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-federated/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GenerateSDLMojoTest.kt b/integration/maven-plugin-integration-tests/integration/generate-sdl-federated/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GenerateSDLMojoTest.kt similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-federated/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GenerateSDLMojoTest.kt rename to integration/maven-plugin-integration-tests/integration/generate-sdl-federated/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GenerateSDLMojoTest.kt diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-hooks/pom.xml b/integration/maven-plugin-integration-tests/integration/generate-sdl-hooks/pom.xml similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-hooks/pom.xml rename to integration/maven-plugin-integration-tests/integration/generate-sdl-hooks/pom.xml diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-hooks/src/main/kotlin/com/example/Application.kt b/integration/maven-plugin-integration-tests/integration/generate-sdl-hooks/src/main/kotlin/com/example/Application.kt similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-hooks/src/main/kotlin/com/example/Application.kt rename to integration/maven-plugin-integration-tests/integration/generate-sdl-hooks/src/main/kotlin/com/example/Application.kt diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-hooks/src/main/kotlin/com/example/SimpleQuery.kt b/integration/maven-plugin-integration-tests/integration/generate-sdl-hooks/src/main/kotlin/com/example/SimpleQuery.kt similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-hooks/src/main/kotlin/com/example/SimpleQuery.kt rename to integration/maven-plugin-integration-tests/integration/generate-sdl-hooks/src/main/kotlin/com/example/SimpleQuery.kt diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-hooks/src/main/kotlin/com/example/hooks/CustomFederatedHooks.kt b/integration/maven-plugin-integration-tests/integration/generate-sdl-hooks/src/main/kotlin/com/example/hooks/CustomFederatedHooks.kt similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-hooks/src/main/kotlin/com/example/hooks/CustomFederatedHooks.kt rename to integration/maven-plugin-integration-tests/integration/generate-sdl-hooks/src/main/kotlin/com/example/hooks/CustomFederatedHooks.kt diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-hooks/src/main/kotlin/com/example/hooks/CustomHooksProvider.kt b/integration/maven-plugin-integration-tests/integration/generate-sdl-hooks/src/main/kotlin/com/example/hooks/CustomHooksProvider.kt similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-hooks/src/main/kotlin/com/example/hooks/CustomHooksProvider.kt rename to integration/maven-plugin-integration-tests/integration/generate-sdl-hooks/src/main/kotlin/com/example/hooks/CustomHooksProvider.kt diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-hooks/src/main/resources/META-INF/services/com.expediagroup.graphql.plugin.schema.hooks.SchemaGeneratorHooksProvider b/integration/maven-plugin-integration-tests/integration/generate-sdl-hooks/src/main/resources/META-INF/services/com.expediagroup.graphql.plugin.schema.hooks.SchemaGeneratorHooksProvider similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-hooks/src/main/resources/META-INF/services/com.expediagroup.graphql.plugin.schema.hooks.SchemaGeneratorHooksProvider rename to integration/maven-plugin-integration-tests/integration/generate-sdl-hooks/src/main/resources/META-INF/services/com.expediagroup.graphql.plugin.schema.hooks.SchemaGeneratorHooksProvider diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-hooks/src/main/resources/application.yml b/integration/maven-plugin-integration-tests/integration/generate-sdl-hooks/src/main/resources/application.yml similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-hooks/src/main/resources/application.yml rename to integration/maven-plugin-integration-tests/integration/generate-sdl-hooks/src/main/resources/application.yml diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-hooks/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GenerateSDLMojoTest.kt b/integration/maven-plugin-integration-tests/integration/generate-sdl-hooks/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GenerateSDLMojoTest.kt similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl-hooks/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GenerateSDLMojoTest.kt rename to integration/maven-plugin-integration-tests/integration/generate-sdl-hooks/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GenerateSDLMojoTest.kt diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl/pom.xml b/integration/maven-plugin-integration-tests/integration/generate-sdl/pom.xml similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl/pom.xml rename to integration/maven-plugin-integration-tests/integration/generate-sdl/pom.xml diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl/src/main/kotlin/com/example/Application.kt b/integration/maven-plugin-integration-tests/integration/generate-sdl/src/main/kotlin/com/example/Application.kt similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl/src/main/kotlin/com/example/Application.kt rename to integration/maven-plugin-integration-tests/integration/generate-sdl/src/main/kotlin/com/example/Application.kt diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl/src/main/kotlin/com/example/SimpleQuery.kt b/integration/maven-plugin-integration-tests/integration/generate-sdl/src/main/kotlin/com/example/SimpleQuery.kt similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl/src/main/kotlin/com/example/SimpleQuery.kt rename to integration/maven-plugin-integration-tests/integration/generate-sdl/src/main/kotlin/com/example/SimpleQuery.kt diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl/src/main/resources/application.yml b/integration/maven-plugin-integration-tests/integration/generate-sdl/src/main/resources/application.yml similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl/src/main/resources/application.yml rename to integration/maven-plugin-integration-tests/integration/generate-sdl/src/main/resources/application.yml diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GenerateSDLMojoTest.kt b/integration/maven-plugin-integration-tests/integration/generate-sdl/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GenerateSDLMojoTest.kt similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-sdl/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GenerateSDLMojoTest.kt rename to integration/maven-plugin-integration-tests/integration/generate-sdl/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GenerateSDLMojoTest.kt diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-test-client/pom.xml b/integration/maven-plugin-integration-tests/integration/generate-test-client/pom.xml similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-test-client/pom.xml rename to integration/maven-plugin-integration-tests/integration/generate-test-client/pom.xml diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-test-client/schema.graphql b/integration/maven-plugin-integration-tests/integration/generate-test-client/schema.graphql similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-test-client/schema.graphql rename to integration/maven-plugin-integration-tests/integration/generate-test-client/schema.graphql diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-test-client/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GenerateClientMojoTest.kt b/integration/maven-plugin-integration-tests/integration/generate-test-client/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GenerateClientMojoTest.kt similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-test-client/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GenerateClientMojoTest.kt rename to integration/maven-plugin-integration-tests/integration/generate-test-client/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GenerateClientMojoTest.kt diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/generate-test-client/src/test/resources/ExampleQuery.graphql b/integration/maven-plugin-integration-tests/integration/generate-test-client/src/test/resources/ExampleQuery.graphql similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/generate-test-client/src/test/resources/ExampleQuery.graphql rename to integration/maven-plugin-integration-tests/integration/generate-test-client/src/test/resources/ExampleQuery.graphql diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/introspect-schema/pom.xml b/integration/maven-plugin-integration-tests/integration/introspect-schema/pom.xml similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/introspect-schema/pom.xml rename to integration/maven-plugin-integration-tests/integration/introspect-schema/pom.xml diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/introspect-schema/src/test/kotlin/com/expediagroup/graphql/plugin/maven/IntrospectSchemaMojoTest.kt b/integration/maven-plugin-integration-tests/integration/introspect-schema/src/test/kotlin/com/expediagroup/graphql/plugin/maven/IntrospectSchemaMojoTest.kt similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/introspect-schema/src/test/kotlin/com/expediagroup/graphql/plugin/maven/IntrospectSchemaMojoTest.kt rename to integration/maven-plugin-integration-tests/integration/introspect-schema/src/test/kotlin/com/expediagroup/graphql/plugin/maven/IntrospectSchemaMojoTest.kt diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/introspect-timeout/invoker.properties b/integration/maven-plugin-integration-tests/integration/introspect-timeout/invoker.properties similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/introspect-timeout/invoker.properties rename to integration/maven-plugin-integration-tests/integration/introspect-timeout/invoker.properties diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/introspect-timeout/pom.xml b/integration/maven-plugin-integration-tests/integration/introspect-timeout/pom.xml similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/introspect-timeout/pom.xml rename to integration/maven-plugin-integration-tests/integration/introspect-timeout/pom.xml diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/settings.xml b/integration/maven-plugin-integration-tests/integration/settings.xml similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/settings.xml rename to integration/maven-plugin-integration-tests/integration/settings.xml diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/wiremock/__files/introspectionResult.json b/integration/maven-plugin-integration-tests/integration/wiremock/__files/introspectionResult.json similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/wiremock/__files/introspectionResult.json rename to integration/maven-plugin-integration-tests/integration/wiremock/__files/introspectionResult.json diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/wiremock/__files/response.json b/integration/maven-plugin-integration-tests/integration/wiremock/__files/response.json similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/wiremock/__files/response.json rename to integration/maven-plugin-integration-tests/integration/wiremock/__files/response.json diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/wiremock/__files/testSchema.graphql b/integration/maven-plugin-integration-tests/integration/wiremock/__files/testSchema.graphql similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/wiremock/__files/testSchema.graphql rename to integration/maven-plugin-integration-tests/integration/wiremock/__files/testSchema.graphql diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/wiremock/mappings/introspection.json b/integration/maven-plugin-integration-tests/integration/wiremock/mappings/introspection.json similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/wiremock/mappings/introspection.json rename to integration/maven-plugin-integration-tests/integration/wiremock/mappings/introspection.json diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/wiremock/mappings/introspectionTimeout.json b/integration/maven-plugin-integration-tests/integration/wiremock/mappings/introspectionTimeout.json similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/wiremock/mappings/introspectionTimeout.json rename to integration/maven-plugin-integration-tests/integration/wiremock/mappings/introspectionTimeout.json diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/wiremock/mappings/query.json b/integration/maven-plugin-integration-tests/integration/wiremock/mappings/query.json similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/wiremock/mappings/query.json rename to integration/maven-plugin-integration-tests/integration/wiremock/mappings/query.json diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/wiremock/mappings/sdl.json b/integration/maven-plugin-integration-tests/integration/wiremock/mappings/sdl.json similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/wiremock/mappings/sdl.json rename to integration/maven-plugin-integration-tests/integration/wiremock/mappings/sdl.json diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/wiremock/mappings/sdlTimeout.json b/integration/maven-plugin-integration-tests/integration/wiremock/mappings/sdlTimeout.json similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/wiremock/mappings/sdlTimeout.json rename to integration/maven-plugin-integration-tests/integration/wiremock/mappings/sdlTimeout.json diff --git a/plugins/graphql-kotlin-maven-plugin/src/integration/wiremock/mappings/sdlWithHeaders.json b/integration/maven-plugin-integration-tests/integration/wiremock/mappings/sdlWithHeaders.json similarity index 100% rename from plugins/graphql-kotlin-maven-plugin/src/integration/wiremock/mappings/sdlWithHeaders.json rename to integration/maven-plugin-integration-tests/integration/wiremock/mappings/sdlWithHeaders.json diff --git a/plugins/graphql-kotlin-maven-plugin/mvnw b/integration/maven-plugin-integration-tests/mvnw similarity index 79% rename from plugins/graphql-kotlin-maven-plugin/mvnw rename to integration/maven-plugin-integration-tests/mvnw index 41c0f0c23d..b7f064624f 100755 --- a/plugins/graphql-kotlin-maven-plugin/mvnw +++ b/integration/maven-plugin-integration-tests/mvnw @@ -19,7 +19,7 @@ # ---------------------------------------------------------------------------- # ---------------------------------------------------------------------------- -# Maven Start Up Batch script +# Apache Maven Wrapper startup batch script, version 3.1.1 # # Required ENV vars: # ------------------ @@ -27,7 +27,6 @@ # # Optional ENV vars # ----------------- -# M2_HOME - location of maven2's installed home dir # MAVEN_OPTS - parameters passed to the Java VM when running Maven # e.g. to debug Maven itself, use # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 @@ -36,6 +35,10 @@ if [ -z "$MAVEN_SKIP_RC" ] ; then + if [ -f /usr/local/etc/mavenrc ] ; then + . /usr/local/etc/mavenrc + fi + if [ -f /etc/mavenrc ] ; then . /etc/mavenrc fi @@ -58,9 +61,9 @@ case "`uname`" in # See https://developer.apple.com/library/mac/qa/qa1170/_index.html if [ -z "$JAVA_HOME" ]; then if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" + JAVA_HOME="`/usr/libexec/java_home`"; export JAVA_HOME else - export JAVA_HOME="/Library/Java/Home" + JAVA_HOME="/Library/Java/Home"; export JAVA_HOME fi fi ;; @@ -72,36 +75,8 @@ if [ -z "$JAVA_HOME" ] ; then fi fi -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - # For Cygwin, ensure paths are in UNIX format before anything is touched if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` [ -n "$CLASSPATH" ] && @@ -110,8 +85,6 @@ fi # For Mingw, ensure paths are in UNIX format before anything is touched if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" [ -n "$JAVA_HOME" ] && JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" fi @@ -145,7 +118,7 @@ if [ -z "$JAVACMD" ] ; then JAVACMD="$JAVA_HOME/bin/java" fi else - JAVACMD="`which java`" + JAVACMD="`\\unset -f command; \\command -v java`" fi fi @@ -159,12 +132,9 @@ if [ -z "$JAVA_HOME" ] ; then echo "Warning: JAVA_HOME environment variable is not set." fi -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - # traverses directory structure from process work directory to filesystem root # first directory with .mvn subdirectory is considered project base directory find_maven_basedir() { - if [ -z "$1" ] then echo "Path not specified to find_maven_basedir" @@ -184,7 +154,7 @@ find_maven_basedir() { fi # end of workaround done - echo "${basedir}" + printf '%s' "$(cd "$basedir"; pwd)" } # concatenates all lines of a file @@ -194,11 +164,16 @@ concat_lines() { fi } -BASE_DIR=`find_maven_basedir "$(pwd)"` +BASE_DIR=$(find_maven_basedir "$(dirname $0)") if [ -z "$BASE_DIR" ]; then exit 1; fi +MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi + ########################################################################################## # Extension to allow automatically downloading the maven-wrapper.jar from Maven-central # This allows using the maven wrapper in projects that prohibit checking in binary data. @@ -212,16 +187,16 @@ else echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." fi if [ -n "$MVNW_REPOURL" ]; then - jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" else - jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" fi while IFS="=" read key value; do - case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + case "$key" in (wrapperUrl) wrapperUrl="$value"; break ;; esac done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" if [ "$MVNW_VERBOSE" = true ]; then - echo "Downloading from: $jarUrl" + echo "Downloading from: $wrapperUrl" fi wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" if $cygwin; then @@ -229,42 +204,49 @@ else fi if command -v wget > /dev/null; then + QUIET="--quiet" if [ "$MVNW_VERBOSE" = true ]; then echo "Found wget ... using wget" + QUIET="" fi if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - wget "$jarUrl" -O "$wrapperJarPath" + wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" else - wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" + wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" fi + [ $? -eq 0 ] || rm -f "$wrapperJarPath" elif command -v curl > /dev/null; then + QUIET="--silent" if [ "$MVNW_VERBOSE" = true ]; then echo "Found curl ... using curl" + QUIET="" fi if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - curl -o "$wrapperJarPath" "$jarUrl" -f + curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L else - curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L fi - + [ $? -eq 0 ] || rm -f "$wrapperJarPath" else if [ "$MVNW_VERBOSE" = true ]; then echo "Falling back to using Java to download" fi - javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + javaSource="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" # For Cygwin, switch paths to Windows format before running javac if $cygwin; then + javaSource=`cygpath --path --windows "$javaSource"` javaClass=`cygpath --path --windows "$javaClass"` fi - if [ -e "$javaClass" ]; then - if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ -e "$javaSource" ]; then + if [ ! -e "$javaClass" ]; then if [ "$MVNW_VERBOSE" = true ]; then echo " - Compiling MavenWrapperDownloader.java ..." fi # Compiling the Java class - ("$JAVA_HOME/bin/javac" "$javaClass") + ("$JAVA_HOME/bin/javac" "$javaSource") fi - if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ -e "$javaClass" ]; then # Running the downloader if [ "$MVNW_VERBOSE" = true ]; then echo " - Running MavenWrapperDownloader.java ..." @@ -278,16 +260,10 @@ fi # End of extension ########################################################################################## -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -if [ "$MVNW_VERBOSE" = true ]; then - echo $MAVEN_PROJECTBASEDIR -fi MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" # For Cygwin, switch paths to Windows format before running java if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` [ -n "$CLASSPATH" ] && @@ -305,6 +281,7 @@ WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain exec "$JAVACMD" \ $MAVEN_OPTS \ + $MAVEN_DEBUG_OPTS \ -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/plugins/graphql-kotlin-maven-plugin/mvnw.cmd b/integration/maven-plugin-integration-tests/mvnw.cmd old mode 100755 new mode 100644 similarity index 78% rename from plugins/graphql-kotlin-maven-plugin/mvnw.cmd rename to integration/maven-plugin-integration-tests/mvnw.cmd index 86115719e5..cba1f040dc --- a/plugins/graphql-kotlin-maven-plugin/mvnw.cmd +++ b/integration/maven-plugin-integration-tests/mvnw.cmd @@ -1,182 +1,187 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM set title of command window -title %0 -@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - -FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B -) - -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -@REM This allows using the maven wrapper in projects that prohibit checking in binary data. -if exist %WRAPPER_JAR% ( - if "%MVNW_VERBOSE%" == "true" ( - echo Found %WRAPPER_JAR% - ) -) else ( - if not "%MVNW_REPOURL%" == "" ( - SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - ) - if "%MVNW_VERBOSE%" == "true" ( - echo Couldn't find %WRAPPER_JAR%, downloading it ... - echo Downloading from: %DOWNLOAD_URL% - ) - - powershell -Command "&{"^ - "$webclient = new-object System.Net.WebClient;"^ - "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ - "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ - "}"^ - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ - "}" - if "%MVNW_VERBOSE%" == "true" ( - echo Finished downloading %WRAPPER_JAR% - ) -) -@REM End of extension - -@REM Provide a "standardized" way to retrieve the CLI args that will -@REM work with both Windows and non-Windows executions. -set MAVEN_CMD_LINE_ARGS=%* - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Apache Maven Wrapper startup batch script, version 3.1.1 +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* +if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" + +FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %WRAPPER_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% ^ + %JVM_CONFIG_MAVEN_PROPS% ^ + %MAVEN_OPTS% ^ + %MAVEN_DEBUG_OPTS% ^ + -classpath %WRAPPER_JAR% ^ + "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ + %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" +if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%"=="on" pause + +if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% + +cmd /C exit /B %ERROR_CODE% diff --git a/plugins/graphql-kotlin-maven-plugin/pom.xml b/integration/maven-plugin-integration-tests/pom.xml similarity index 85% rename from plugins/graphql-kotlin-maven-plugin/pom.xml rename to integration/maven-plugin-integration-tests/pom.xml index 690fc1b786..9012f36a78 100755 --- a/plugins/graphql-kotlin-maven-plugin/pom.xml +++ b/integration/maven-plugin-integration-tests/pom.xml @@ -7,7 +7,7 @@ com.expediagroup graphql-kotlin-maven-plugin-integration-test - ${graphqlKotlinVersion} + 1.0-SNAPSHOT Project for running integration tests verifying graphql-kotlin-maven-plugin @@ -104,30 +104,6 @@ build src/main/kotlin - - org.jetbrains.kotlin - kotlin-maven-plugin - ${kotlin.version} - - ${kotlin.jvmTarget} - - - - compile - compile - - compile - - - - test-compile - test-compile - - test-compile - - - - org.apache.maven.plugins maven-invoker-plugin @@ -151,8 +127,8 @@ */pom.xml - src/integration - src/integration/settings.xml + integration + integration/settings.xml true diff --git a/integration/maven-plugin-integration-tests/settings.gradle.kts b/integration/maven-plugin-integration-tests/settings.gradle.kts new file mode 100644 index 0000000000..fcd3a391f3 --- /dev/null +++ b/integration/maven-plugin-integration-tests/settings.gradle.kts @@ -0,0 +1,12 @@ +rootProject.name = "maven-plugin-integration-tests" + +dependencyResolutionManagement { + versionCatalogs { + create("libs") { + from(files("../../gradle/libs.versions.toml")) + } + } +} + +// composite graphql-kotlin library build +includeBuild("../..") diff --git a/plugins/graphql-kotlin-maven-plugin/.mvn/wrapper/MavenWrapperDownloader.java b/plugins/graphql-kotlin-maven-plugin/.mvn/wrapper/MavenWrapperDownloader.java deleted file mode 100755 index b901097f2d..0000000000 --- a/plugins/graphql-kotlin-maven-plugin/.mvn/wrapper/MavenWrapperDownloader.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright 2007-present the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import java.net.*; -import java.io.*; -import java.nio.channels.*; -import java.util.Properties; - -public class MavenWrapperDownloader { - - private static final String WRAPPER_VERSION = "0.5.6"; - /** - * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. - */ - private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" - + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; - - /** - * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to - * use instead of the default one. - */ - private static final String MAVEN_WRAPPER_PROPERTIES_PATH = - ".mvn/wrapper/maven-wrapper.properties"; - - /** - * Path where the maven-wrapper.jar will be saved to. - */ - private static final String MAVEN_WRAPPER_JAR_PATH = - ".mvn/wrapper/maven-wrapper.jar"; - - /** - * Name of the property which should be used to override the default download url for the wrapper. - */ - private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; - - public static void main(String args[]) { - System.out.println("- Downloader started"); - File baseDirectory = new File(args[0]); - System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); - - // If the maven-wrapper.properties exists, read it and check if it contains a custom - // wrapperUrl parameter. - File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); - String url = DEFAULT_DOWNLOAD_URL; - if(mavenWrapperPropertyFile.exists()) { - FileInputStream mavenWrapperPropertyFileInputStream = null; - try { - mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); - Properties mavenWrapperProperties = new Properties(); - mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); - url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); - } catch (IOException e) { - System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); - } finally { - try { - if(mavenWrapperPropertyFileInputStream != null) { - mavenWrapperPropertyFileInputStream.close(); - } - } catch (IOException e) { - // Ignore ... - } - } - } - System.out.println("- Downloading from: " + url); - - File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); - if(!outputFile.getParentFile().exists()) { - if(!outputFile.getParentFile().mkdirs()) { - System.out.println( - "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); - } - } - System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); - try { - downloadFileFromURL(url, outputFile); - System.out.println("Done"); - System.exit(0); - } catch (Throwable e) { - System.out.println("- Error downloading"); - e.printStackTrace(); - System.exit(1); - } - } - - private static void downloadFileFromURL(String urlString, File destination) throws Exception { - if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { - String username = System.getenv("MVNW_USERNAME"); - char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); - Authenticator.setDefault(new Authenticator() { - @Override - protected PasswordAuthentication getPasswordAuthentication() { - return new PasswordAuthentication(username, password); - } - }); - } - URL website = new URL(urlString); - ReadableByteChannel rbc; - rbc = Channels.newChannel(website.openStream()); - FileOutputStream fos = new FileOutputStream(destination); - fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); - fos.close(); - rbc.close(); - } - -} diff --git a/plugins/graphql-kotlin-maven-plugin/.mvn/wrapper/maven-wrapper.jar b/plugins/graphql-kotlin-maven-plugin/.mvn/wrapper/maven-wrapper.jar deleted file mode 100755 index 2cc7d4a55c..0000000000 Binary files a/plugins/graphql-kotlin-maven-plugin/.mvn/wrapper/maven-wrapper.jar and /dev/null differ diff --git a/plugins/graphql-kotlin-maven-plugin/.mvn/wrapper/maven-wrapper.properties b/plugins/graphql-kotlin-maven-plugin/.mvn/wrapper/maven-wrapper.properties deleted file mode 100755 index 642d572ce9..0000000000 --- a/plugins/graphql-kotlin-maven-plugin/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1,2 +0,0 @@ -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip -wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar diff --git a/plugins/graphql-kotlin-maven-plugin/build.gradle.kts b/plugins/graphql-kotlin-maven-plugin/build.gradle.kts index 50d828e9c2..6d27a9f67a 100644 --- a/plugins/graphql-kotlin-maven-plugin/build.gradle.kts +++ b/plugins/graphql-kotlin-maven-plugin/build.gradle.kts @@ -1,14 +1,5 @@ -import com.github.tomakehurst.wiremock.standalone.WireMockServerRunner -import java.time.Duration - description = "GraphQL Kotlin Maven Plugin that can generate type-safe GraphQL Kotlin client and GraphQL schema in SDL format using reflections" -buildscript { - dependencies { - classpath(libs.wiremock.standalone) - } -} - @Suppress("DSL_SCOPE_VIOLATION") // TODO: remove once KTIJ-19369 / Gradle#22797 is fixed plugins { id("com.expediagroup.graphql.conventions") @@ -22,8 +13,6 @@ dependencies { implementation(libs.maven.plugin.annotations) implementation(libs.maven.plugin.api) implementation(libs.maven.project) - testImplementation(projects.graphqlKotlinSpringServer) - testImplementation(projects.graphqlKotlinFederatedHooksProvider) } tasks { @@ -35,65 +24,4 @@ tasks { } } } - - val kotlinJvmVersion: String by project - /* - Integration tests are run through maven-invoker-plugin which will execute tests under src/integration/ - */ - val mavenEnvironmentVariables = mapOf( - "graphqlKotlinVersion" to project.version, - "graphqlJavaVersion" to libs.versions.graphql.java.get(), - "kotlinJvmTarget" to kotlinJvmVersion, - "kotlinVersion" to libs.versions.kotlin.get(), - "kotlinxCoroutinesVersion" to libs.versions.kotlinx.coroutines.get(), - "kotlinPoetVersion" to libs.versions.poet.get(), - "kotlinxSerializationVersion" to libs.versions.kotlinx.serialization.get(), - "ktorVersion" to libs.versions.ktor.get(), - "reactorVersion" to libs.versions.reactor.core.get(), - "junitVersion" to libs.versions.junit.get() - ) - var wireMockServer: WireMockServerRunner? = null - var wireMockServerPort: Int? = null - val startWireMock by register("startWireMock") { - dependsOn(":resolveIntegrationTestDependencies") - finalizedBy("stopWireMock") - - doLast { - val wireMockConfig = arrayOf( - "--root-dir=${project.projectDir}/src/integration/wiremock", - "--port=0" - ) - wireMockServer = WireMockServerRunner() - wireMockServer?.run(*wireMockConfig) - wireMockServerPort = wireMockServer?.port() - logger.info("wiremock started at port $wireMockServerPort") - } - } - val stopWireMock by register("stopWireMock") { - mustRunAfter("startWireMock") - - doLast { - val server = wireMockServer - if (server?.isRunning == true) { - logger.info("attempting to stop wiremock server") - server.stop() - logger.info("wiremock server stopped") - } - } - } - val integrationTest by register("integrationTest") { - dependsOn(startWireMock.path) - finalizedBy(stopWireMock.path) - timeout.set(Duration.ofSeconds(500)) - doLast { - exec { - environment(mavenEnvironmentVariables) - environment("graphqlEndpoint", "http://localhost:$wireMockServerPort") - commandLine("${project.projectDir}/mvnw", "dependency:go-offline", "invoker:install", "invoker:run", "--no-transfer-progress") - } - } - } - check { - dependsOn(integrationTest.path) - } }