Skip to content

Commit 9d3ae54

Browse files
committed
Update GraalVM plugin version in the archetype-app-quickstart and sdk-native-image-test and update native-image.properties in netty-nio-client
1 parent 44520e8 commit 9d3ae54

File tree

10 files changed

+64
-95
lines changed

10 files changed

+64
-95
lines changed

archetypes/archetype-app-quickstart/src/main/resources/archetype-resources/pom.xml

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
<exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>
1717
<aws.java.sdk.version>${javaSdkVersion}</aws.java.sdk.version>
1818
<slf4j.version>1.7.28</slf4j.version>
19-
<graalvm.version>21.0.0</graalvm.version>
19+
#if( $nativeImage == 'true')
20+
<graalvm.native.maven.plugin.version>0.9.6</graalvm.native.maven.plugin.version>
21+
#end
2022
<junit5.version>5.8.1</junit5.version>
2123
</properties>
2224

@@ -83,15 +85,6 @@
8385
</dependency>
8486
#end
8587

86-
#if( $nativeImage == 'true')
87-
<dependency>
88-
<groupId>org.graalvm.sdk</groupId>
89-
<artifactId>graal-sdk</artifactId>
90-
<version>${graalvm.version}</version>
91-
<scope>provided</scope>
92-
</dependency>
93-
#end
94-
9588
<!-- Test Dependencies -->
9689
<dependency>
9790
<groupId>org.junit.jupiter</groupId>
@@ -118,13 +111,14 @@
118111
<build>
119112
<plugins>
120113
<plugin>
121-
<groupId>org.graalvm.nativeimage</groupId>
114+
<groupId>org.graalvm.buildtools</groupId>
122115
<artifactId>native-image-maven-plugin</artifactId>
123-
<version>${graalvm.version}</version>
116+
<version>${graalvm.native.maven.plugin.version}</version>
124117
<executions>
125118
<execution>
119+
<id>build-native</id>
126120
<goals>
127-
<goal>native-image</goal>
121+
<goal>build</goal>
128122
</goals>
129123
<phase>package</phase>
130124
</execution>

archetypes/archetype-app-quickstart/src/test/resources/projects/apachehttpclient/reference/pom.xml

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>
1616
<aws.java.sdk.version>2.11.0</aws.java.sdk.version>
1717
<slf4j.version>1.7.28</slf4j.version>
18-
<graalvm.version>21.0.0</graalvm.version>
18+
<graalvm.native.maven.plugin.version>0.9.6</graalvm.native.maven.plugin.version>
1919
<junit5.version>5.8.1</junit5.version>
2020
</properties>
2121

@@ -78,13 +78,6 @@
7878
<version>${slf4j.version}</version>
7979
</dependency>
8080

81-
<dependency>
82-
<groupId>org.graalvm.sdk</groupId>
83-
<artifactId>graal-sdk</artifactId>
84-
<version>${graalvm.version}</version>
85-
<scope>provided</scope>
86-
</dependency>
87-
8881
<!-- Test Dependencies -->
8982
<dependency>
9083
<groupId>org.junit.jupiter</groupId>
@@ -110,13 +103,14 @@
110103
<build>
111104
<plugins>
112105
<plugin>
113-
<groupId>org.graalvm.nativeimage</groupId>
106+
<groupId>org.graalvm.buildtools</groupId>
114107
<artifactId>native-image-maven-plugin</artifactId>
115-
<version>${graalvm.version}</version>
108+
<version>${graalvm.native.maven.plugin.version}</version>
116109
<executions>
117110
<execution>
111+
<id>build-native</id>
118112
<goals>
119-
<goal>native-image</goal>
113+
<goal>build</goal>
120114
</goals>
121115
<phase>package</phase>
122116
</execution>

archetypes/archetype-app-quickstart/src/test/resources/projects/apachehttpclientwithoutnativeimage/reference/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>
1616
<aws.java.sdk.version>2.11.0</aws.java.sdk.version>
1717
<slf4j.version>1.7.28</slf4j.version>
18-
<graalvm.version>21.0.0</graalvm.version>
18+
<graalvm.native.maven.plugin.version>0.9.6</graalvm.native.maven.plugin.version>
1919
<junit5.version>5.8.1</junit5.version>
2020
</properties>
2121

archetypes/archetype-app-quickstart/src/test/resources/projects/nettyclient/reference/pom.xml

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>
1616
<aws.java.sdk.version>2.11.0</aws.java.sdk.version>
1717
<slf4j.version>1.7.28</slf4j.version>
18-
<graalvm.version>21.0.0</graalvm.version>
18+
<graalvm.native.maven.plugin.version>0.9.6</graalvm.native.maven.plugin.version>
1919
<junit5.version>5.8.1</junit5.version>
2020
</properties>
2121

@@ -64,14 +64,6 @@
6464
<version>${slf4j.version}</version>
6565
</dependency>
6666

67-
68-
<dependency>
69-
<groupId>org.graalvm.sdk</groupId>
70-
<artifactId>graal-sdk</artifactId>
71-
<version>${graalvm.version}</version>
72-
<scope>provided</scope>
73-
</dependency>
74-
7567
<!-- Test Dependencies -->
7668
<dependency>
7769
<groupId>org.junit.jupiter</groupId>
@@ -97,13 +89,14 @@
9789
<build>
9890
<plugins>
9991
<plugin>
100-
<groupId>org.graalvm.nativeimage</groupId>
92+
<groupId>org.graalvm.buildtools</groupId>
10193
<artifactId>native-image-maven-plugin</artifactId>
102-
<version>${graalvm.version}</version>
94+
<version>${graalvm.native.maven.plugin.version}</version>
10395
<executions>
10496
<execution>
97+
<id>build-native</id>
10598
<goals>
106-
<goal>native-image</goal>
99+
<goal>build</goal>
107100
</goals>
108101
<phase>package</phase>
109102
</execution>

archetypes/archetype-app-quickstart/src/test/resources/projects/urlhttpclient/reference/pom.xml

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>
1616
<aws.java.sdk.version>2.11.0</aws.java.sdk.version>
1717
<slf4j.version>1.7.28</slf4j.version>
18-
<graalvm.version>21.0.0</graalvm.version>
18+
<graalvm.native.maven.plugin.version>0.9.6</graalvm.native.maven.plugin.version>
1919
<junit5.version>5.8.1</junit5.version>
2020
</properties>
2121

@@ -64,14 +64,6 @@
6464
<version>${slf4j.version}</version>
6565
</dependency>
6666

67-
68-
<dependency>
69-
<groupId>org.graalvm.sdk</groupId>
70-
<artifactId>graal-sdk</artifactId>
71-
<version>${graalvm.version}</version>
72-
<scope>provided</scope>
73-
</dependency>
74-
7567
<!-- Test Dependencies -->
7668
<dependency>
7769
<groupId>org.junit.jupiter</groupId>
@@ -97,13 +89,14 @@
9789
<build>
9890
<plugins>
9991
<plugin>
100-
<groupId>org.graalvm.nativeimage</groupId>
92+
<groupId>org.graalvm.buildtools</groupId>
10193
<artifactId>native-image-maven-plugin</artifactId>
102-
<version>${graalvm.version}</version>
94+
<version>${graalvm.native.maven.plugin.version}</version>
10395
<executions>
10496
<execution>
97+
<id>build-native</id>
10598
<goals>
106-
<goal>native-image</goal>
99+
<goal>build</goal>
107100
</goals>
108101
<phase>package</phase>
109102
</execution>

http-clients/netty-nio-client/src/main/resources/META-INF/native-image/software.amazon.awssdk/netty-nio-client/native-image.properties

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,10 @@
1313
# permissions and limitations under the License.
1414
#
1515
Args=--allow-incomplete-classpath \
16-
--initialize-at-run-time=io.netty.util.internal.logging.Log4JLogger,org.apache.log4j.Logger,\
17-
io.netty.handler.ssl.ReferenceCountedOpenSslClientContext,\
18-
io.netty.handler.ssl.ReferenceCountedOpenSslServerContext,\
19-
io.netty.handler.ssl.ReferenceCountedOpenSslContext,\
20-
io.netty.handler.ssl.JdkNpnApplicationProtocolNegotiator,\
21-
io.netty.handler.ssl.ConscryptAlpnSslEngine,\
22-
io.netty.handler.ssl.JettyAlpnSslEngine$ClientEngine,\
23-
io.netty.handler.ssl.JettyAlpnSslEngine$ServerEngine,\
24-
io.netty.handler.ssl.JettyNpnSslEngine,\
25-
io.netty.handler.ssl.ReferenceCountedOpenSslEngine
16+
--initialize-at-run-time=io.netty.internal.tcnative.SSL,\
17+
io.netty.internal.tcnative.CertificateVerifier,\
18+
io.netty.internal.tcnative.AsyncSSLPrivateKeyMethod,\
19+
io.netty.internal.tcnative.SSLPrivateKeyMethod,\
20+
io.netty.handler.ssl.OpenSslPrivateKeyMethod,\
21+
io.netty.handler.ssl.ReferenceCountedOpenSslEngine,\
22+
io.netty.handler.ssl.OpenSslAsyncPrivateKeyMethod

test/sdk-native-image-test/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,15 @@
44
This module contains a sample application using AWS SDK for Java 2.x, and it
55
is used to test GraalVM Native Image compilation.
66

7+
## Prerequisites
8+
9+
To run the tests, you need to have GraalVM and Native Image set up properly in your workspace.
10+
See [Setting up GraalVM with native-image support](https://graalvm.github.io/native-build-tools/latest/graalvm-setup.html)
11+
712
## How to run
13+
14+
You can run the integration tests by using the following commands.
15+
816
```
917
mvn clean install -pl :sdk-native-image-test -P quick --am
1018

test/sdk-native-image-test/pom.xml

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
<maven.compiler.plugin.version>3.6.1</maven.compiler.plugin.version>
3434
<exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>
3535
<slf4j.version>1.7.30</slf4j.version>
36-
<graalvm.version>21.1.0</graalvm.version>
36+
<graalvm.native.maven.plugin.version>0.9.6</graalvm.native.maven.plugin.version>
3737
</properties>
3838

3939
<dependencies>
@@ -87,24 +87,6 @@
8787
<artifactId>jcl-over-slf4j</artifactId>
8888
<version>${slf4j.version}</version>
8989
</dependency>
90-
91-
<dependency>
92-
<groupId>org.graalvm.sdk</groupId>
93-
<artifactId>graal-sdk</artifactId>
94-
<version>${graalvm.version}</version>
95-
<scope>provided</scope>
96-
</dependency>
97-
<dependency>
98-
<groupId>software.amazon.awssdk</groupId>
99-
<artifactId>service-test-utils</artifactId>
100-
<version>${awsjavasdk.version}</version>
101-
</dependency>
102-
<dependency>
103-
<groupId>software.amazon.awssdk</groupId>
104-
<artifactId>test-utils</artifactId>
105-
<version>${awsjavasdk.version}</version>
106-
<scope>compile</scope>
107-
</dependency>
10890
</dependencies>
10991

11092
<build>
@@ -146,13 +128,14 @@
146128
<build>
147129
<plugins>
148130
<plugin>
149-
<groupId>org.graalvm.nativeimage</groupId>
150-
<artifactId>native-image-maven-plugin</artifactId>
151-
<version>${graalvm.version}</version>
131+
<groupId>org.graalvm.buildtools</groupId>
132+
<artifactId>native-maven-plugin</artifactId>
133+
<version>${graalvm.native.maven.plugin.version}</version>
152134
<executions>
153135
<execution>
136+
<id>build-native</id>
154137
<goals>
155-
<goal>native-image</goal>
138+
<goal>build</goal>
156139
</goals>
157140
<phase>package</phase>
158141
</execution>
@@ -161,10 +144,12 @@
161144
<imageName>sdk-native-image-test</imageName>
162145
<mainClass>software.amazon.awssdk.nativeimagetest.App</mainClass>
163146
<buildArgs combine.children="append">
147+
<!-- BouncyCastleAlpn issue tracked in https://github.com/netty/netty/issues/11369 -->
164148
<buildArgs>
165149
--verbose
166150
--no-fallback
167151
--initialize-at-build-time=org.slf4j
152+
--initialize-at-run-time=io.netty.handler.ssl.BouncyCastleAlpnSslUtils
168153
</buildArgs>
169154
</buildArgs>
170155
</configuration>

test/sdk-native-image-test/src/main/java/software/amazon/awssdk/nativeimagetest/DependencyFactory.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515

1616
package software.amazon.awssdk.nativeimagetest;
1717

18+
import software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain;
19+
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
20+
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
1821
import software.amazon.awssdk.enhanced.dynamodb.DynamoDbEnhancedClient;
1922
import software.amazon.awssdk.http.apache.ApacheHttpClient;
2023
import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
@@ -23,12 +26,20 @@
2326
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
2427
import software.amazon.awssdk.services.s3.S3AsyncClient;
2528
import software.amazon.awssdk.services.s3.S3Client;
26-
import software.amazon.awssdk.testutils.service.AwsTestBase;
2729

2830
/**
2931
* The module containing all dependencies required by the {@link App}.
3032
*/
31-
public class DependencyFactory extends AwsTestBase {
33+
public class DependencyFactory {
34+
35+
/** Default Properties Credentials file path. */
36+
private static final String TEST_CREDENTIALS_PROFILE_NAME = "aws-test-account";
37+
38+
public static final AwsCredentialsProviderChain CREDENTIALS_PROVIDER_CHAIN =
39+
AwsCredentialsProviderChain.of(ProfileCredentialsProvider.builder()
40+
.profileName(TEST_CREDENTIALS_PROFILE_NAME)
41+
.build(),
42+
DefaultCredentialsProvider.create());
3243

3344
private DependencyFactory() {
3445
}

test/sdk-native-image-test/src/main/java/software/amazon/awssdk/nativeimagetest/S3TestRunner.java

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,19 @@
1515

1616
package software.amazon.awssdk.nativeimagetest;
1717

18-
import java.io.InputStream;
18+
import java.nio.charset.StandardCharsets;
19+
import java.util.UUID;
1920
import org.slf4j.Logger;
2021
import org.slf4j.LoggerFactory;
2122
import software.amazon.awssdk.core.async.AsyncResponseTransformer;
2223
import software.amazon.awssdk.core.sync.RequestBody;
2324
import software.amazon.awssdk.services.s3.S3AsyncClient;
2425
import software.amazon.awssdk.services.s3.S3Client;
2526
import software.amazon.awssdk.services.s3.model.CreateBucketResponse;
26-
import software.amazon.awssdk.testutils.RandomInputStream;
27-
import software.amazon.awssdk.testutils.service.S3BucketUtils;
28-
import software.amazon.awssdk.utils.IoUtils;
2927

3028
public class S3TestRunner implements TestRunner {
31-
private static final String BUCKET_NAME = S3BucketUtils.temporaryBucketName("native-image");
32-
private static final Logger logger = LoggerFactory.getLogger(DynamoDbEnhancedClientTestRunner.class);
29+
private static final String BUCKET_NAME = "v2-native-image-tests-" + UUID.randomUUID();
30+
private static final Logger logger = LoggerFactory.getLogger(S3TestRunner.class);
3331
private static final String KEY = "key";
3432
private final S3Client s3ApacheHttpClient;
3533
private final S3Client s3UrlConnectionHttpClient;
@@ -45,15 +43,12 @@ public S3TestRunner() {
4543
public void runTests() {
4644
logger.info("starting to run S3 tests");
4745
CreateBucketResponse bucketResponse = null;
48-
InputStream inputStream = null;
4946
try {
5047
bucketResponse = s3UrlConnectionHttpClient.createBucket(b -> b.bucket(BUCKET_NAME));
5148

5249
s3UrlConnectionHttpClient.waiter().waitUntilBucketExists(b -> b.bucket(BUCKET_NAME));
5350

54-
inputStream = new RandomInputStream(10_000);
55-
56-
RequestBody requestBody = RequestBody.fromInputStream(inputStream, 10_000);
51+
RequestBody requestBody = RequestBody.fromBytes("helloworld".getBytes(StandardCharsets.UTF_8));
5752

5853
s3ApacheHttpClient.putObject(b -> b.bucket(BUCKET_NAME).key(KEY),
5954
requestBody);
@@ -67,7 +62,6 @@ public void runTests() {
6762

6863
s3NettyClient.deleteBucket(b -> b.bucket(BUCKET_NAME)).join();
6964
}
70-
IoUtils.closeQuietly(inputStream, null);
7165
}
7266
}
7367
}

0 commit comments

Comments
 (0)