{"id":15685542,"url":"https://github.com/ddobrin/native-spring-on-k8s-with-graalvm-workshop","last_synced_at":"2025-10-10T21:47:44.001Z","repository":{"id":48042530,"uuid":"358681283","full_name":"ddobrin/native-spring-on-k8s-with-graalvm-workshop","owner":"ddobrin","description":"Workshop materials for Spring Native workshop","archived":false,"fork":false,"pushed_at":"2021-08-10T14:35:18.000Z","size":86750,"stargazers_count":9,"open_issues_count":0,"forks_count":6,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-10-08T12:50:44.508Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ddobrin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-04-16T18:03:18.000Z","updated_at":"2021-09-16T07:33:57.000Z","dependencies_parsed_at":"2022-08-12T17:20:50.168Z","dependency_job_id":null,"html_url":"https://github.com/ddobrin/native-spring-on-k8s-with-graalvm-workshop","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/ddobrin/native-spring-on-k8s-with-graalvm-workshop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddobrin%2Fnative-spring-on-k8s-with-graalvm-workshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddobrin%2Fnative-spring-on-k8s-with-graalvm-workshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddobrin%2Fnative-spring-on-k8s-with-graalvm-workshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddobrin%2Fnative-spring-on-k8s-with-graalvm-workshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ddobrin","download_url":"https://codeload.github.com/ddobrin/native-spring-on-k8s-with-graalvm-workshop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddobrin%2Fnative-spring-on-k8s-with-graalvm-workshop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279005428,"owners_count":26083883,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-03T17:26:25.371Z","updated_at":"2025-10-10T21:47:43.986Z","avatar_url":"https://github.com/ddobrin.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# native-spring-on-k8s-with-graalvm-workshop\n\nThis repo contains all the materials required for the `Native Spring on K8s with GraalVM` workshop.\n\nThe workshop is designed to help Spring Boot developers build new/modernize existing applications using Spring Native and deploy them to Kubernetes. \nBasic knowledge of Spring Boot and Kubernetes is assumed for successful completion.\n\n---\n\n## Context\n\nThis content contains sample code supporting the workshop agenda, with a focus on building Native Applications using Spring Native and GraalVM.\n\nThe content is organized around a number of independent sections, each with a `README.md` file explaining how to build and run the samples, \nor pointing out areas of interest, for further exploration. \n\nThe content is geared around the following main areas:\n* [Prerequisite Software Setup and Validation](setup/README.md) \n* Understanding [GraalVM](graalvm/README.md)\n* Building [Spring Native](spring-native/README.md) Applications with GraalVM\n* [Best Practices](best-practices/README.md) for designing native-friendly Spring apps and libraries\n* [Complete](complete/README.md) Spring Native examples\n----\n## Repository\n\nThis workshop repository can be cloned to your machine as follows:\n```shell\n\u003e git clone https://github.com/ddobrin/native-spring-on-k8s-with-graalvm\n```\n\nFull samples are provided for each lab or demo! \n\nAll samples are relative to the repository root, for ex.:\n```shell\n# Petclinic\n\u003crepo-root\u003e/complete/petclinic-jdbc\n```\n\n---------\n\n## Environment setup and validation\n**Please start** by cloning the repo, then **follow** the [environment setup and validation section](setup/README.md) `prior` to the start of the workshop.\n\n---------\n## Workshop - Detailed Agenda\n\n1. Introductions\n2. [Setup Validation](setup/README.md) - say \"Hello Workshop\" \n    * **[Hands-on Setup Lab](setup/README.md#Build-Run-App)**\n3. Let's get started - How fast are your pets? Let's build some images for them !\n    * **[Hands-on Lab #1](complete/petclinic-jdbc/README.md)**\n4. Demystifying Native Images\n    * Let's talk about JVM vs Native\n    * Introducing ahead-of-time compilation (AOT)\n    * Making close-world assumptions\n    * When to modernize apps with native images ? Let's see the use-cases\n5. [Understanding GraalVM](graalvm/README.md)\n    * GraalVM Architecture\n    * Native Image technology for ahead-of-time compilation\n    * Build configuration for a native image build process\n        * How to configure Native Image Builds using the Java Agent -- **[Demo](graalvm/README.md#Demo)** \n    * Initialization\n        * Runtime vs Build-Time Initialization\n        * Understanding the Class Initialization strategy for Native Images\n            * **[Hands-on Lab #2](graalvm/README.md#Lab)** \n    * AOT compilation limitations - what do I need to know ?\n        * Dynamic Class Loading, Reflection, Dynamic Proxies, Accessing Resources, Serialization\n        * Mitigating AOT limitations -- **[Demo(s)](graalvm/README.md#Demo)** \n    * Building and Containerizing native images with the GraalVM Maven plugin and Docker -- **[Demo](graalvm/README.md#maven-and-docker)**       \n    * Visualization Tools\n        * GraalVM Dashboard -- **[Demo](graalvm/README.md#graalvm-dashboard)** \n6. [Building Spring Native Applications](spring-native/README.md) with GraalVM\n    * What is Spring Native and why use it ?\n    * AOT compilation limitations - how do Native Hints in Spring help bypass them ? -- **[Demo(s)](spring-native/README.md#Demo)**\n       * Accessing Resources in Spring Native Images \n         * **[Hands-on Lab #3](spring-native/README.md#Lab)**\n    * Spring Native's limitations - what do I need to know ?\n    * Building with the Spring AOT Maven plugin \n    * Cloud Native Buildpacks -support source-to-image for native images \n        * Building, containerizing and running a Spring Native app and **_diving_** into the built image\n            * **[Optional Hands-on Lab #4](spring-native/README.md#Lab)**\n    * Using a container-based Spring Native build environment\n    * Troubleshooting tips\n7. [Best Practices](best-practices/README.md) for designing native-friendly Spring apps and libraries\n   * Identification of AOT limitations in the app - **[Demo](best-practices/README.md)**\n   * Building a Spring Native Shared Library - **[Demo](best-practices/README.md)**\n   * Comparing Images\n8. Spring Native Roadmap\n\n#### Appendix:\n   * [Complete Spring Native examples](complete/README.md)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fddobrin%2Fnative-spring-on-k8s-with-graalvm-workshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fddobrin%2Fnative-spring-on-k8s-with-graalvm-workshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fddobrin%2Fnative-spring-on-k8s-with-graalvm-workshop/lists"}