Skip to content

Commit f980325

Browse files
hawflaumoelasmar
andauthored
Feat: java21 runtime support (#80) (#574)
* Add support for java21 * fix black formatting * update gha to use java 21 * add missing java 21 testing projects * use gradle-8.4 for java21 --------- Co-authored-by: Mohamed ElAsmar <[email protected]>
1 parent b2609a3 commit f980325

File tree

52 files changed

+821
-16
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+821
-16
lines changed

.github/workflows/build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ jobs:
193193
- uses: actions/setup-java@v3
194194
with:
195195
distribution: 'corretto'
196-
java-version: '17'
196+
java-version: '21'
197197
- run: make init
198198
- run: pytest -vv tests/integration/workflows/java_maven
199199

@@ -223,7 +223,7 @@ jobs:
223223
- uses: actions/setup-java@v3
224224
with:
225225
distribution: 'zulu'
226-
java-version: '17'
226+
java-version: '21'
227227
- run: make init
228228
- run: pytest -vv tests/integration/workflows/java_gradle
229229

aws_lambda_builders/validator.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
"java8": [ARM64, X86_64],
2626
"java11": [ARM64, X86_64],
2727
"java17": [ARM64, X86_64],
28+
"java21": [ARM64, X86_64],
2829
"go1.x": [ARM64, X86_64],
2930
"dotnet6": [ARM64, X86_64],
3031
"provided": [ARM64, X86_64],

tests/integration/workflows/java_gradle/test_java_gradle.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
["java8"],
2525
["java11"],
2626
["java17"],
27+
["java21"],
2728
],
2829
)
2930
class TestJavaGradle(TestCase):
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
allprojects {
2+
repositories {
3+
mavenCentral()
4+
}
5+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
plugins {
2+
id 'java'
3+
}
4+
5+
repositories {
6+
mavenCentral()
7+
}
8+
9+
dependencies {
10+
implementation 'software.amazon.awssdk:annotations:2.1.0'
11+
}
12+
13+
java.sourceCompatibility = JavaVersion.VERSION_21
14+
java.targetCompatibility = JavaVersion.VERSION_21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package aws.lambdabuilders;
2+
3+
public class Foo {
4+
public void sayHello() {
5+
System.out.println("Hello world!");
6+
}
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
plugins {
2+
id 'java'
3+
}
4+
5+
repositories {
6+
mavenCentral()
7+
}
8+
9+
dependencies {
10+
implementation 'software.amazon.awssdk:annotations:2.1.0'
11+
implementation project(':common')
12+
}
13+
14+
java.sourceCompatibility = JavaVersion.VERSION_21
15+
java.targetCompatibility = JavaVersion.VERSION_21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package aws.lambdabuilders;
2+
3+
public class Lambda1_Main {
4+
public static void main(String[] args) {
5+
System.out.println("Hello AWS Lambda Builders!");
6+
}
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
plugins {
2+
id 'java'
3+
}
4+
5+
repositories {
6+
mavenCentral()
7+
}
8+
9+
dependencies {
10+
implementation 'software.amazon.awssdk:annotations:2.1.0'
11+
}
12+
13+
java.sourceCompatibility = JavaVersion.VERSION_21
14+
java.targetCompatibility = JavaVersion.VERSION_21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package aws.lambdabuilders;
2+
3+
public class Lambda2_Main {
4+
public static void main(String[] args) {
5+
System.out.println("Hello AWS Lambda Builders!");
6+
}
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
rootProject.name = 'multi-build'
2+
include 'lambda1', 'lambda2', 'common'
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
allprojects {
2+
repositories {
3+
mavenCentral()
4+
}
5+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
plugins {
2+
id 'java'
3+
}
4+
5+
repositories {
6+
mavenCentral()
7+
}
8+
9+
dependencies {
10+
implementation 'software.amazon.awssdk:annotations:2.1.0'
11+
}
12+
13+
java.sourceCompatibility = JavaVersion.VERSION_21
14+
java.targetCompatibility = JavaVersion.VERSION_21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package aws.lambdabuilders;
2+
3+
public class Lambda1_Main {
4+
public static void main(String[] args) {
5+
System.out.println("Hello AWS Lambda Builders!");
6+
}
7+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
plugins {
2+
id 'java'
3+
}
4+
5+
repositories {
6+
mavenCentral()
7+
}
8+
9+
dependencies {
10+
implementation 'software.amazon.awssdk:annotations:2.1.0'
11+
}
12+
13+
java.sourceCompatibility = JavaVersion.VERSION_21
14+
java.targetCompatibility = JavaVersion.VERSION_21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package aws.lambdabuilders;
2+
3+
public class Lambda2_Main {
4+
public static void main(String[] args) {
5+
System.out.println("Hello AWS Lambda Builders!");
6+
}
7+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
rootProject.name = 'multi-build'
2+
include 'lambda1', 'lambda2'

tests/integration/workflows/java_gradle/testdata/single-build/java17/layer/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ dependencies {
1818
group = 'aws.lambdabuilders'
1919
version = '1.0'
2020
description = 'common-layer-gradle'
21-
java.sourceCompatibility = JavaVersion.VERSION_11
22-
java.targetCompatibility = JavaVersion.VERSION_11
21+
java.sourceCompatibility = JavaVersion.VERSION_17
22+
java.targetCompatibility = JavaVersion.VERSION_17
2323

2424
build.finalizedBy publishToMavenLocal
2525

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
plugins {
2+
id 'java'
3+
id 'java-library'
4+
id 'maven-publish'
5+
}
6+
7+
repositories {
8+
mavenLocal()
9+
maven {
10+
url = uri('https://repo.maven.apache.org/maven2/')
11+
}
12+
}
13+
14+
dependencies {
15+
api 'com.amazonaws:aws-lambda-java-core:1.2.0'
16+
}
17+
18+
group = 'aws.lambdabuilders'
19+
version = '1.0'
20+
description = 'common-layer-gradle'
21+
java.sourceCompatibility = JavaVersion.VERSION_21
22+
java.targetCompatibility = JavaVersion.VERSION_21
23+
24+
build.finalizedBy publishToMavenLocal
25+
26+
publishing {
27+
publications {
28+
maven(MavenPublication) {
29+
from(components.java)
30+
}
31+
}
32+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
rootProject.name = 'common-layer-gradle'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package aws.lambdabuilders;
2+
3+
import com.amazonaws.services.lambda.runtime.LambdaLogger;
4+
5+
public class CommonCode {
6+
7+
public static void doSomethingOnLayer(final LambdaLogger logger, final String s) {
8+
logger.log("Doing something on layer" + s);
9+
}
10+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
plugins {
2+
id 'java'
3+
}
4+
5+
repositories {
6+
mavenCentral()
7+
}
8+
9+
dependencies {
10+
implementation 'software.amazon.awssdk:does-not-exist:1.2.3'
11+
}
12+
13+
java.sourceCompatibility = JavaVersion.VERSION_21
14+
java.targetCompatibility = JavaVersion.VERSION_21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package aws.lambdabuilders;
2+
3+
public class Main {
4+
public static void main(String[] args) {
5+
System.out.println("Hello AWS Lambda Builders!");
6+
}
7+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
plugins {
2+
id 'java'
3+
}
4+
5+
repositories {
6+
mavenCentral()
7+
}
8+
9+
dependencies {
10+
implementation 'software.amazon.awssdk:annotations:2.1.0'
11+
}
12+
13+
java.sourceCompatibility = JavaVersion.VERSION_21
14+
java.targetCompatibility = JavaVersion.VERSION_21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
distributionBase=GRADLE_USER_HOME
2+
distributionPath=wrapper/dists
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
4+
zipStoreBase=GRADLE_USER_HOME
5+
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)