NONSTOP* ) nonstop=true ;;
esac
+
+# Loop in case we encounter an error.
+for attempt in 1 2 3; do
+ if [ ! -e "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" ]; then
+ if ! curl -s -S --retry 3 -L -o "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" "https://raw.githubusercontent.com/gradle/gradle/v8.2.1/gradle/wrapper/gradle-wrapper.jar"; then
+ rm -f "$APP_HOME/gradle/wrapper/gradle-wrapper.jar"
+ # Pause for a bit before looping in case the server throttled us.
+ sleep 5
+ continue
+ fi
+ fi
+done
+
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+++ /dev/null
-@rem\r
-@rem Copyright 2015 the original author or authors.\r
-@rem\r
-@rem Licensed under the Apache License, Version 2.0 (the "License");\r
-@rem you may not use this file except in compliance with the License.\r
-@rem You may obtain a copy of the License at\r
-@rem\r
-@rem https://www.apache.org/licenses/LICENSE-2.0\r
-@rem\r
-@rem Unless required by applicable law or agreed to in writing, software\r
-@rem distributed under the License is distributed on an "AS IS" BASIS,\r
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-@rem See the License for the specific language governing permissions and\r
-@rem limitations under the License.\r
-@rem\r
-\r
-@if "%DEBUG%"=="" @echo off\r
-@rem ##########################################################################\r
-@rem\r
-@rem Gradle startup script for Windows\r
-@rem\r
-@rem ##########################################################################\r
-\r
-@rem Set local scope for the variables with windows NT shell\r
-if "%OS%"=="Windows_NT" setlocal\r
-\r
-set DIRNAME=%~dp0\r
-if "%DIRNAME%"=="" set DIRNAME=.\r
-@rem This is normally unused\r
-set APP_BASE_NAME=%~n0\r
-set APP_HOME=%DIRNAME%\r
-\r
-@rem Resolve any "." and ".." in APP_HOME to make it shorter.\r
-for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi\r
-\r
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.\r
-set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"\r
-\r
-@rem Find java.exe\r
-if defined JAVA_HOME goto findJavaFromJavaHome\r
-\r
-set JAVA_EXE=java.exe\r
-%JAVA_EXE% -version >NUL 2>&1\r
-if %ERRORLEVEL% equ 0 goto execute\r
-\r
-echo.\r
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.\r
-echo.\r
-echo Please set the JAVA_HOME variable in your environment to match the\r
-echo location of your Java installation.\r
-\r
-goto fail\r
-\r
-:findJavaFromJavaHome\r
-set JAVA_HOME=%JAVA_HOME:"=%\r
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe\r
-\r
-if exist "%JAVA_EXE%" goto execute\r
-\r
-echo.\r
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%\r
-echo.\r
-echo Please set the JAVA_HOME variable in your environment to match the\r
-echo location of your Java installation.\r
-\r
-goto fail\r
-\r
-:execute\r
-@rem Setup the command line\r
-\r
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar\r
-\r
-\r
-@rem Execute Gradle\r
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*\r
-\r
-:end\r
-@rem End local scope for the variables with windows NT shell\r
-if %ERRORLEVEL% equ 0 goto mainEnd\r
-\r
-:fail\r
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of\r
-rem the _cmd.exe /c_ return code!\r
-set EXIT_CODE=%ERRORLEVEL%\r
-if %EXIT_CODE% equ 0 set EXIT_CODE=1\r
-if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%\r
-exit /b %EXIT_CODE%\r
-\r
-:mainEnd\r
-if "%OS%"=="Windows_NT" endlocal\r
-\r
-:omega\r
The POI Source Release bundles the Gradle Wrapper. (https://docs.gradle.org/current/userguide/gradle_wrapper.html)
This is released under the Apache License, v2.0.
-Copyright © 2015-2021 the original authors.
\ No newline at end of file
+Copyright © 2015-2021 the original authors.
+
+The wrapper.gradle file was developed by the Apache Kafka project and is released under the Apache License, v2.0.
--- /dev/null
+/*
+ * 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
+ *
+ * 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.
+ */
+
+// This file contains tasks for the gradle wrapper generation.
+
+// Ensure the wrapper script is generated based on the version defined in the project
+// and not the version installed on the machine running the task.
+// Read more about the wrapper here: https://docs.gradle.org/current/userguide/gradle_wrapper.html
+wrapper {
+ gradleVersion = project.gradleVersion
+ distributionType = Wrapper.DistributionType.ALL
+}
+
+// Custom task to inject support for downloading the gradle wrapper jar if it doesn't exist.
+// This allows us to avoid checking in the jar to our repository.
+// Additionally adds a license header to the wrapper while editing the file contents.
+task bootstrapWrapper() {
+ // In the doLast block so this runs when the task is called and not during project configuration.
+ doLast {
+ def wrapperBasePath = "\$APP_HOME/gradle/wrapper"
+ def wrapperJarPath = wrapperBasePath + "/gradle-wrapper.jar"
+
+ // Add a trailing zero to the version if needed.
+ def fullVersion = project.gradleVersion.count(".") == 1 ? "${project.gradleVersion}.0" : versions.gradle
+ // Leverages the wrapper jar checked into the gradle project on github because the jar isn't
+ // available elsewhere. Using raw.githubusercontent.com instead of github.com because
+ // github.com servers deprecated TLSv1/TLSv1.1 support some time ago, so older versions
+ // of curl (built against OpenSSL library that doesn't support TLSv1.2) would fail to
+ // fetch the jar.
+ def wrapperBaseUrl = "https://raw.githubusercontent.com/gradle/gradle/v$fullVersion/gradle/wrapper"
+ def wrapperJarUrl = wrapperBaseUrl + "/gradle-wrapper.jar"
+
+ def bootstrapString = """
+ # Loop in case we encounter an error.
+ for attempt in 1 2 3; do
+ if [ ! -e "$wrapperJarPath" ]; then
+ if ! curl -s -S --retry 3 -L -o "$wrapperJarPath" "$wrapperJarUrl"; then
+ rm -f "$wrapperJarPath"
+ # Pause for a bit before looping in case the server throttled us.
+ sleep 5
+ continue
+ fi
+ fi
+ done
+ """.stripIndent()
+
+ def wrapperScript = wrapper.scriptFile
+ def wrapperLines = wrapperScript.readLines()
+ wrapperScript.withPrintWriter { out ->
+ def bootstrapWritten = false
+ wrapperLines.each { line ->
+ // Print the wrapper bootstrap before the first usage of the wrapper jar.
+ if (!bootstrapWritten && line.contains("gradle-wrapper.jar")) {
+ out.println(bootstrapString)
+ bootstrapWritten = true
+ }
+ out.print(line)
+ out.println()
+ }
+ }
+ }
+}
+wrapper.finalizedBy bootstrapWrapper
+
+// Remove the generated batch file since we don't test building in the Windows environment.
+task removeWindowsScript(type: Delete) {
+ delete "$rootDir/gradlew.bat"
+}
+wrapper.finalizedBy removeWindowsScript