From 54c354876be53cec5d4f0028e1f4b53089d81657 Mon Sep 17 00:00:00 2001 From: Alexander Miller Date: Fri, 20 Oct 2023 10:27:21 +0200 Subject: [PATCH] Add S3 example. --- .github/workflows/ci.yml | 40 ++++ build.gradle.kts | 65 +++++++ examples/s3/build.gradle.kts | 23 +++ examples/s3/http/S3.http | 19 ++ examples/s3/http/http-client.env.json | 7 + .../main/kotlin/example/aws/s3/Application.kt | 17 ++ .../aws/s3/ApplicationConfiguration.kt | 90 +++++++++ .../example/aws/s3/api/BookCoverController.kt | 49 +++++ .../example/aws/s3/domain/BookCoverService.kt | 63 +++++++ .../example/aws/s3/domain/S3Properties.kt | 17 ++ .../s3/src/main/resources/application.yaml | 7 + .../main/resources/bookcovers/clean_code.jpg | Bin 0 -> 6513 bytes .../bookcovers/fellowship_of_the_ring.jpg | Bin 0 -> 6700 bytes .../bookcovers/mythical-man-month.jpg | Bin 0 -> 100702 bytes .../aws/s3/domain/BookCoverServiceTest.kt | 85 +++++++++ gradle.properties | 4 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54711 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 172 ++++++++++++++++++ gradlew.bat | 84 +++++++++ settings.gradle.kts | 3 + 21 files changed, 751 insertions(+) create mode 100644 .github/workflows/ci.yml create mode 100644 build.gradle.kts create mode 100644 examples/s3/build.gradle.kts create mode 100644 examples/s3/http/S3.http create mode 100644 examples/s3/http/http-client.env.json create mode 100644 examples/s3/src/main/kotlin/example/aws/s3/Application.kt create mode 100644 examples/s3/src/main/kotlin/example/aws/s3/ApplicationConfiguration.kt create mode 100644 examples/s3/src/main/kotlin/example/aws/s3/api/BookCoverController.kt create mode 100644 examples/s3/src/main/kotlin/example/aws/s3/domain/BookCoverService.kt create mode 100644 examples/s3/src/main/kotlin/example/aws/s3/domain/S3Properties.kt create mode 100644 examples/s3/src/main/resources/application.yaml create mode 100644 examples/s3/src/main/resources/bookcovers/clean_code.jpg create mode 100644 examples/s3/src/main/resources/bookcovers/fellowship_of_the_ring.jpg create mode 100644 examples/s3/src/main/resources/bookcovers/mythical-man-month.jpg create mode 100644 examples/s3/src/test/kotlin/example/aws/s3/domain/BookCoverServiceTest.kt create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle.kts diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..b49eb5d --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,40 @@ +name: CI-Build + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +concurrency: + group: ci_${{ github.ref }} + cancel-in-progress: true + +env: + javaVersion: "17" + javaDistribution: "liberica" + +jobs: + ci-platform-aws: + runs-on: ubuntu-latest + needs: + - s3 + steps: + - run: echo "CI-Build completed!" + + s3: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + java-version: ${{ env.javaVersion }} + distribution: ${{ env.javaDistribution }} + - run: | + chmod +x gradlew + ./gradlew :examples:s3:build + - uses: actions/upload-artifact@v3 + if: always() + with: + name: test-results_s3 + path: "**/build/reports/tests" diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..8233ee8 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,65 @@ +import io.spring.gradle.dependencymanagement.dsl.DependencyManagementExtension +import org.gradle.api.file.DuplicatesStrategy.INCLUDE +import org.gradle.api.tasks.testing.logging.TestLogEvent.FAILED +import org.gradle.api.tasks.testing.logging.TestLogEvent.SKIPPED +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +plugins { + id("org.springframework.boot") version "3.1.0" apply false + id("io.spring.dependency-management") version "1.1.0" apply false + id("org.asciidoctor.jvm.convert") version "3.3.2" apply false + + kotlin("jvm") version "1.8.21" apply false + kotlin("plugin.spring") version "1.8.21" apply false + kotlin("plugin.jpa") version "1.8.21" apply false + kotlin("plugin.noarg") version "1.8.21" apply false +} + +allprojects { + repositories { mavenCentral(); mavenLocal() } + + if (project.childProjects.isNotEmpty()) return@allprojects + + apply { + plugin("io.spring.dependency-management") + } + + the().apply { + imports { + mavenBom("org.jetbrains.kotlin:kotlin-bom:1.8.21") + mavenBom("org.testcontainers:testcontainers-bom:1.18.3") + mavenBom(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES) + } + + dependencies { + dependency("com.ninja-squad:springmockk:4.0.2") + dependency("io.mockk:mockk-jvm:1.13.5") + dependency("org.testcontainers:junit-jupiter:1.18.1") + dependency("org.testcontainers:localstack:1.18.1") + dependency("com.amazonaws:aws-java-sdk-s3:1.12.272") + dependency("com.amazonaws:aws-java-sdk-sts:1.12.272") + dependency("io.kotest:kotest-assertions-core:5.6.2") + } + } + + tasks { + withType { duplicatesStrategy = INCLUDE } + withType { duplicatesStrategy = INCLUDE } + withType { + sourceCompatibility = "17" + targetCompatibility = "17" + } + withType { + kotlinOptions { + freeCompilerArgs = listOf("-Xjsr305=strict") + jvmTarget = "17" + incremental = false + } + } + withType { + group = "verification" + useJUnitPlatform() + testLogging { events(FAILED, SKIPPED) } + } + } +} diff --git a/examples/s3/build.gradle.kts b/examples/s3/build.gradle.kts new file mode 100644 index 0000000..955617c --- /dev/null +++ b/examples/s3/build.gradle.kts @@ -0,0 +1,23 @@ +plugins { + id("org.springframework.boot") + id("io.spring.dependency-management") + + kotlin("jvm") + kotlin("plugin.spring") +} + +dependencies { + implementation("org.springframework.boot:spring-boot-starter") + implementation("org.springframework.boot:spring-boot-starter-web") + implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") + implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation("org.testcontainers:localstack") + implementation("com.amazonaws:aws-java-sdk-s3") + implementation("com.amazonaws:aws-java-sdk-sts") + + testImplementation("org.springframework.boot:spring-boot-starter-test") + testImplementation("io.mockk:mockk-jvm") + testImplementation("com.ninja-squad:springmockk") + testImplementation("org.testcontainers:junit-jupiter") + testImplementation("io.kotest:kotest-assertions-core") +} diff --git a/examples/s3/http/S3.http b/examples/s3/http/S3.http new file mode 100644 index 0000000..bfcf637 --- /dev/null +++ b/examples/s3/http/S3.http @@ -0,0 +1,19 @@ +### Get Clean Code Cover +GET localhost:8080/books/{{clean-code}}/cover + +### Get Lord of the Rings Cover +GET localhost:8080/books/{{lord-of-the-rings}}/cover + +### Get Mythical Man Month Cover +### Will fail at first because the cover has to be added by the PUT request below. +GET localhost:8080/books/{{mythical-man-moth}}/cover + +### Put Mythical Man Month Cover +PUT localhost:8080/books/{{mythical-man-moth}}/cover +Content-Type: multipart/form-data; boundary=boundary + +--boundary +Content-Disposition: form-data; name="cover"; filename="mythical-man-month.jpg" +Content-Type: image/jpeg + +< ../src/main/resources/bookcovers/mythical-man-month.jpg diff --git a/examples/s3/http/http-client.env.json b/examples/s3/http/http-client.env.json new file mode 100644 index 0000000..730007a --- /dev/null +++ b/examples/s3/http/http-client.env.json @@ -0,0 +1,7 @@ +{ + "ldev": { + "clean-code": "73a3a94e-9ec7-4c35-82ff-9235fa4a2a86", + "lord-of-the-rings": "81abeacb-9850-4691-94b8-2fff9bb7b1a7", + "mythical-man-moth": "021e0ea7-6fda-4682-9747-eb7161154885" + } +} \ No newline at end of file diff --git a/examples/s3/src/main/kotlin/example/aws/s3/Application.kt b/examples/s3/src/main/kotlin/example/aws/s3/Application.kt new file mode 100644 index 0000000..5a268e9 --- /dev/null +++ b/examples/s3/src/main/kotlin/example/aws/s3/Application.kt @@ -0,0 +1,17 @@ +package example.aws.s3 + +import org.springframework.boot.autoconfigure.SpringBootApplication +import org.springframework.boot.builder.SpringApplicationBuilder +import org.springframework.boot.runApplication + +@SpringBootApplication +class Application + +/** + * Start the application from a builder (instead of the usual [runApplication]) so we can supply our [S3Initializer]. + */ +fun main(args: Array) { + SpringApplicationBuilder(Application::class.java) + .initializers(S3Initializer()) + .run(*args) +} diff --git a/examples/s3/src/main/kotlin/example/aws/s3/ApplicationConfiguration.kt b/examples/s3/src/main/kotlin/example/aws/s3/ApplicationConfiguration.kt new file mode 100644 index 0000000..f5120ba --- /dev/null +++ b/examples/s3/src/main/kotlin/example/aws/s3/ApplicationConfiguration.kt @@ -0,0 +1,90 @@ +package example.aws.s3 + +import com.amazonaws.auth.AWSStaticCredentialsProvider +import com.amazonaws.auth.BasicAWSCredentials +import com.amazonaws.client.builder.AwsClientBuilder +import com.amazonaws.services.s3.AmazonS3 +import com.amazonaws.services.s3.AmazonS3ClientBuilder +import example.aws.s3.domain.S3Properties +import org.springframework.boot.context.event.ApplicationStartedEvent +import org.springframework.context.ApplicationContextInitializer +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration +import org.springframework.context.event.EventListener +import org.springframework.context.support.GenericApplicationContext +import org.testcontainers.containers.localstack.LocalStackContainer +import org.testcontainers.utility.DockerImageName +import java.io.File +import java.util.function.Supplier + +@Configuration +class ApplicationConfiguration( + + /** + * There is no real [AmazonS3] bean available to us, we artificially create and inject our own using the + * [S3Initializer] below. IntelliJ does not know that, so we have to suppress its inspections about missing beans. + */ + @Suppress("SpringJavaInjectionPointsAutowiringInspection") + private val s3: AmazonS3, + private val s3properties: S3Properties, +) { + + /** + * Our S3 is not permanent, but is instead re-created every time the app is running. Therefore, we also have to + * create a bucket every time the container starts. + * + * We also use this opportunity to add 2 book covers into the bucket to serve as pre-made examples. + */ + @EventListener + fun createBucketAddExamples(event: ApplicationStartedEvent) { + s3.createBucket(s3properties.bucketName) + + val cleanCodeCover = File(this::class.java.getResource("/bookcovers/clean_code.jpg")!!.path) + val lotrCover = File(this::class.java.getResource("/bookcovers/fellowship_of_the_ring.jpg")!!.path) + + s3.putObject(s3properties.bucketName, s3properties.books.cleanCode, cleanCodeCover) + s3.putObject(s3properties.bucketName, s3properties.books.lordOfTheRings, lotrCover) + } +} + +/** + * This [ApplicationContextInitializer] is the means by which we create an S3 instance, both for our tests, and also as + * a substitute for not having a real AWS environment in this simple example. + */ +class S3Initializer : ApplicationContextInitializer { + + override fun initialize(applicationContext: GenericApplicationContext) { + val container = S3Container().withServices(LocalStackContainer.Service.S3).apply { start() } + createS3Bean(container, applicationContext) + } + + /** + * Normally you would declare a [Bean] method where you create and configure your [AmazonS3] client. Since we use + * a Test Container we instead inject our client directly in Spring's application context. + */ + private fun createS3Bean( + container: LocalStackContainer, + applicationContext: GenericApplicationContext + ) { + applicationContext.registerBean( + AmazonS3::class.java.simpleName, + AmazonS3::class.java, + Supplier { + AmazonS3ClientBuilder + .standard() + .withEndpointConfiguration( + AwsClientBuilder.EndpointConfiguration( + container.getEndpointOverride(LocalStackContainer.Service.S3).toString(), + container.region + ) + ) + .withCredentials( + AWSStaticCredentialsProvider(BasicAWSCredentials(container.accessKey, container.secretKey)) + ) + .build() + } + ) + } + + private class S3Container : LocalStackContainer(DockerImageName.parse("localstack/localstack:0.11.3")) +} diff --git a/examples/s3/src/main/kotlin/example/aws/s3/api/BookCoverController.kt b/examples/s3/src/main/kotlin/example/aws/s3/api/BookCoverController.kt new file mode 100644 index 0000000..a07ea0f --- /dev/null +++ b/examples/s3/src/main/kotlin/example/aws/s3/api/BookCoverController.kt @@ -0,0 +1,49 @@ +package example.aws.s3.api + +import example.aws.s3.domain.BookCoverData +import example.aws.s3.domain.BookCoverService +import org.springframework.core.io.InputStreamResource +import org.springframework.core.io.Resource +import org.springframework.http.HttpStatus.CREATED +import org.springframework.http.MediaType +import org.springframework.http.ResponseEntity +import org.springframework.http.ResponseEntity.notFound +import org.springframework.http.ResponseEntity.ok +import org.springframework.web.bind.annotation.GetMapping +import org.springframework.web.bind.annotation.PathVariable +import org.springframework.web.bind.annotation.PutMapping +import org.springframework.web.bind.annotation.RequestParam +import org.springframework.web.bind.annotation.ResponseStatus +import org.springframework.web.bind.annotation.RestController +import org.springframework.web.multipart.MultipartFile +import java.util.* + +/** + * Simple REST controller that allows to either GET or PUT a cover for a specific book. + */ +@RestController +class BookCoverController( + private val bookCoverService: BookCoverService +) { + + @GetMapping("/books/{id}/cover") + fun getCover(@PathVariable("id") id: UUID): ResponseEntity { + val coverData: BookCoverData = bookCoverService.findCover(id) + ?: return notFound().build() + + return ok() + .contentLength(coverData.contentLength) + .contentType(MediaType.parseMediaType(coverData.contentType)) + .body(InputStreamResource(coverData.byteStream)) + } + + @ResponseStatus(CREATED) + @PutMapping("/books/{id}/cover") + fun putCover( + @PathVariable("id") id: UUID, + @RequestParam("cover") cover: MultipartFile, + ) { + bookCoverService.saveCover(id, cover) + } + +} \ No newline at end of file diff --git a/examples/s3/src/main/kotlin/example/aws/s3/domain/BookCoverService.kt b/examples/s3/src/main/kotlin/example/aws/s3/domain/BookCoverService.kt new file mode 100644 index 0000000..d2d8c22 --- /dev/null +++ b/examples/s3/src/main/kotlin/example/aws/s3/domain/BookCoverService.kt @@ -0,0 +1,63 @@ +package example.aws.s3.domain + +import com.amazonaws.services.s3.AmazonS3 +import com.amazonaws.services.s3.model.AmazonS3Exception +import com.amazonaws.services.s3.model.ObjectMetadata +import org.springframework.boot.context.properties.EnableConfigurationProperties +import org.springframework.http.HttpStatus.NOT_FOUND +import org.springframework.stereotype.Service +import org.springframework.web.multipart.MultipartFile +import java.io.ByteArrayInputStream +import java.io.InputStream +import java.util.* + +/** + * Business class that implements the details of loading and saving book covers. Offers a clean api that hides the + * lower level details of the S3 sdk. + */ +@Service +@Suppress("SpringJavaInjectionPointsAutowiringInspection") +@EnableConfigurationProperties(S3Properties::class) +class BookCoverService( + private val s3: AmazonS3, + private val s3Properties: S3Properties, +) { + + fun findCover(id: UUID): BookCoverData? { + val s3Object = try { + s3.getObject(s3Properties.bucketName, id.toString()) + } catch (e: AmazonS3Exception) { + when (e.statusCode) { + NOT_FOUND.value() -> return null + else -> throw e + } + } + return BookCoverData( + byteStream = s3Object.objectContent, + contentLength = s3Object.objectMetadata.contentLength, + contentType = s3Object.objectMetadata.contentType, + ) + } + + fun saveCover( + id: UUID, + cover: MultipartFile, + ) { + s3.putObject( + s3Properties.bucketName, + id.toString(), + cover.inputStream, + ObjectMetadata().also { + it.contentLength = cover.size + it.contentType = cover.contentType + } + ) + } + +} + +data class BookCoverData( + val byteStream: InputStream, + val contentLength: Long, + val contentType: String, +) diff --git a/examples/s3/src/main/kotlin/example/aws/s3/domain/S3Properties.kt b/examples/s3/src/main/kotlin/example/aws/s3/domain/S3Properties.kt new file mode 100644 index 0000000..78116de --- /dev/null +++ b/examples/s3/src/main/kotlin/example/aws/s3/domain/S3Properties.kt @@ -0,0 +1,17 @@ +package example.aws.s3.domain + +import org.springframework.boot.context.properties.ConfigurationProperties + +/** + * Contains the name of our bucket as well as predefined book ids we use as example data. + */ +@ConfigurationProperties(prefix = "example.s3") +data class S3Properties( + val bucketName: String, + val books: Books, +) { + data class Books( + val cleanCode: String, + val lordOfTheRings: String, + ) +} \ No newline at end of file diff --git a/examples/s3/src/main/resources/application.yaml b/examples/s3/src/main/resources/application.yaml new file mode 100644 index 0000000..04661b4 --- /dev/null +++ b/examples/s3/src/main/resources/application.yaml @@ -0,0 +1,7 @@ +#file: noinspection SpringBootApplicationYaml +example: + s3: + bucket-name: "example-bucket" + books: + clean-code: "73a3a94e-9ec7-4c35-82ff-9235fa4a2a86" + lord-of-the-rings: "81abeacb-9850-4691-94b8-2fff9bb7b1a7" diff --git a/examples/s3/src/main/resources/bookcovers/clean_code.jpg b/examples/s3/src/main/resources/bookcovers/clean_code.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e65df9ab66ce8876db9c1019de9205d02e4800a2 GIT binary patch literal 6513 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 E0H!n|)c^nh literal 0 HcmV?d00001 diff --git a/examples/s3/src/main/resources/bookcovers/mythical-man-month.jpg b/examples/s3/src/main/resources/bookcovers/mythical-man-month.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7f0b4bf6e6cf8c5d38a3f7dfaa58b2227e827708 GIT binary patch literal 100702 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 z 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 literal 0 HcmV?d00001 diff --git a/examples/s3/src/test/kotlin/example/aws/s3/domain/BookCoverServiceTest.kt b/examples/s3/src/test/kotlin/example/aws/s3/domain/BookCoverServiceTest.kt new file mode 100644 index 0000000..c927f9e --- /dev/null +++ b/examples/s3/src/test/kotlin/example/aws/s3/domain/BookCoverServiceTest.kt @@ -0,0 +1,85 @@ +package example.aws.s3.domain + +import example.aws.s3.S3Initializer +import io.kotest.matchers.shouldBe +import org.junit.jupiter.api.Test +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.boot.test.context.SpringBootTest +import org.springframework.context.annotation.ComponentScan +import org.springframework.http.MediaType.IMAGE_JPEG_VALUE +import org.springframework.http.MediaType.IMAGE_PNG_VALUE +import org.springframework.mock.web.MockMultipartFile +import org.springframework.test.context.ContextConfiguration +import java.util.UUID.randomUUID +import kotlin.annotation.AnnotationTarget.CLASS + +@Retention +@Target(CLASS) +@ContextConfiguration(initializers = [S3Initializer::class]) +annotation class RunWithDockerizedS3 + +/** + * Test that boots the business logic slice of the application and uses LocalStack to also start a locally running S3 + * bucket. + */ +@SpringBootTest +@ComponentScan(basePackageClasses = [BookCoverService::class]) +@RunWithDockerizedS3 +class BookCoverServiceTest(@Autowired private val cut: BookCoverService) { + + private val id = randomUUID() + + @Test + fun `returns null when there are no covers`() { + val result = cut.findCover(id) + + result shouldBe null + } + + @Test + fun `returns null when there is no cover for the given id`() { + val cover = MockMultipartFile( + id.toString(), "testfile.jpeg", IMAGE_JPEG_VALUE, "123".toByteArray() + ) + cut.saveCover(id, cover) + + val result = cut.findCover(randomUUID()) + + result shouldBe null + } + + @Test + fun `correctly finds saved cover`() { + val cover = MockMultipartFile( + id.toString(), "testfile.jpeg", IMAGE_JPEG_VALUE, "123".toByteArray() + ) + cut.saveCover(id, cover) + + val result = cut.findCover(id) + + result!! + result.contentType shouldBe IMAGE_JPEG_VALUE + result.contentLength shouldBe 3 + result.byteStream.readAllBytes() shouldBe "123".toByteArray() + } + + @Test + fun `correctly updates saved cover`() { + val cover1 = MockMultipartFile( + id.toString(), "testfile.jpeg", IMAGE_JPEG_VALUE, "123".toByteArray() + ) + val cover2 = MockMultipartFile( + id.toString(), "testfile.png", IMAGE_PNG_VALUE, "45678".toByteArray() + ) + cut.saveCover(id, cover1) + cut.saveCover(id, cover2) + + val result = cut.findCover(id) + + result!! + result.contentType shouldBe IMAGE_PNG_VALUE + result.contentLength shouldBe 5 + result.byteStream.readAllBytes() shouldBe "45678".toByteArray() + } + +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..2964a16 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,4 @@ +org.gradle.caching=true +org.gradle.daemon=true +org.gradle.parallel=true +org.gradle.workers.max=5 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..1ce6e58f1ce8ae3a3be37719a2180b5567cea91d GIT binary patch literal 54711 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# 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 + ;; + 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" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save ( ) { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..f955316 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,84 @@ +@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=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@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= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +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 init + +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 + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +: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 %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="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! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..d892db1 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,3 @@ +rootProject.name = "cnt-platform-aws" + +include("examples:s3")