From 888e5a2e755babde05002f507182201d1174fc7b Mon Sep 17 00:00:00 2001
From: arauin <amandus.rauin@rwth-aachen.de>
Date: Wed, 4 Dec 2024 15:56:25 +0100
Subject: [PATCH] openjdk: add role to download/install openjdk 21

---
 openjdk/defaults/main.yml     |  3 +++
 openjdk/tasks/main.yml        | 34 ++++++++++++++++++++++++++++++++++
 openjdk/templates/jdk21.sh.j2 |  0
 openjdk/vars/main.yml         |  2 ++
 4 files changed, 39 insertions(+)
 create mode 100644 openjdk/defaults/main.yml
 create mode 100644 openjdk/tasks/main.yml
 create mode 100644 openjdk/templates/jdk21.sh.j2
 create mode 100644 openjdk/vars/main.yml

diff --git a/openjdk/defaults/main.yml b/openjdk/defaults/main.yml
new file mode 100644
index 0000000..7995277
--- /dev/null
+++ b/openjdk/defaults/main.yml
@@ -0,0 +1,3 @@
+---
+openjdk_download_url: "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.5%2B11/OpenJDK21U-jdk_x64_linux_hotspot_21.0.5_11.tar.gz"
+openjdk_checksum: "sha256:3c654d98404c073b8a7e66bffb27f4ae3e7ede47d13284c132d40a83144bfd8c"
diff --git a/openjdk/tasks/main.yml b/openjdk/tasks/main.yml
new file mode 100644
index 0000000..f38a85e
--- /dev/null
+++ b/openjdk/tasks/main.yml
@@ -0,0 +1,34 @@
+---
+# tasks/main.yml
+- name: Download OpenJDK 21
+  get_url:
+    url: "{{ openjdk_download_url }}"
+    dest: "/tmp/openjdk.tar.gz"
+    mode: "0644"
+    checksum: "{{ openjdk_checksum }}"
+
+- name: Ensure OpenJDK directory exists
+  file:
+    path: "{{ openjdk_dir }}"
+    state: directory
+    mode: "0755"
+
+- name: Extract OpenJDK archive
+  unarchive:
+    src: "/tmp/openjdk.tar.gz"
+    dest: "{{ openjdk_dir }}"
+    remote_src: true
+    extra_opts:
+      - --strip-components=1 # This removes the top-level directory
+    creates: "{{ openjdk_dir }}/bin/java"
+
+- name: Create Java environment script
+  template:
+    src: jdk21.sh.j2
+    dest: /etc/profile.d/jdk21.sh
+    mode: "0644"
+
+- name: Set Java alternatives
+  alternatives:
+    name: java
+    path: "{{openjdk_dir}}/bin/java"
diff --git a/openjdk/templates/jdk21.sh.j2 b/openjdk/templates/jdk21.sh.j2
new file mode 100644
index 0000000..e69de29
diff --git a/openjdk/vars/main.yml b/openjdk/vars/main.yml
new file mode 100644
index 0000000..9b3fa6b
--- /dev/null
+++ b/openjdk/vars/main.yml
@@ -0,0 +1,2 @@
+---
+openjdk_dir: "/usr/local/openjdk-21"
-- 
GitLab