feat: fix cloud native image running graalvm

This commit is contained in:
2024-09-28 21:07:22 -03:00
parent a02c1ecede
commit 1f816dd88c
5 changed files with 616 additions and 7 deletions
+1 -1
View File
@@ -21,7 +21,7 @@ ENV BUILD_NUMBER=${BUILD_NUMBER}
# Copy
WORKDIR /app
COPY --from=build /app/target/tasknote-api ./tasknote-api
COPY --from=build /app/target/server ./tasknote-api
# User, port and health check
USER 1001
+3 -6
View File
@@ -42,6 +42,7 @@
<jacoco.output.data>${project.build.directory}/coverage-reports</jacoco.output.data>
<timestamp>${maven.build.timestamp}</timestamp>
<maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss</maven.build.timestamp.format>
<hibernate.version>6.5.2.Final</hibernate.version>
</properties>
<!-- Profiles -->
@@ -184,8 +185,6 @@
</dependencies>
<build>
<finalName>tasknote-api</finalName>
<plugins>
<plugin>
<groupId>org.hibernate.orm.tooling</groupId>
@@ -205,10 +204,6 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
@@ -443,6 +438,8 @@
</executions>
</plugin>
</plugins>
<finalName>tasknote-api</finalName>
</build>
</project>
@@ -38,7 +38,16 @@ import org.springframework.context.annotation.ImportRuntimeHints;
UserResponse.class,
io.jsonwebtoken.Claims.class,
io.jsonwebtoken.Jwts.class,
io.jsonwebtoken.Jwts.SIG.class,
io.jsonwebtoken.Jwts.ENC.class,
io.jsonwebtoken.Jwts.KEY.class,
io.jsonwebtoken.impl.security.StandardSecureDigestAlgorithms.class,
io.jsonwebtoken.impl.security.StandardKeyOperations.class,
io.jsonwebtoken.impl.security.StandardEncryptionAlgorithms.class,
io.jsonwebtoken.impl.security.StandardKeyAlgorithms.class,
io.jsonwebtoken.impl.io.StandardCompressionAlgorithms.class,
io.jsonwebtoken.impl.DefaultClaimsBuilder.class,
io.jsonwebtoken.impl.DefaultJwtParserBuilder.class,
})
@ImportRuntimeHints(value = {HttpServletRequestRuntimeHint.class})
public class CloudNativeConfig {}
@@ -0,0 +1,578 @@
[
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.MacSigner"
},
"name": "com.sun.crypto.provider.HmacCore$HmacSHA256",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.MacSigner"
},
"name": "com.sun.crypto.provider.HmacCore$HmacSHA384",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.MacSigner"
},
"name": "com.sun.crypto.provider.HmacCore$HmacSHA512",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.MacProvider"
},
"name": "com.sun.crypto.provider.KeyGeneratorCore$HmacKG$SHA256",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.MacProvider"
},
"name": "com.sun.crypto.provider.KeyGeneratorCore$HmacKG$SHA384",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.MacProvider"
},
"name": "com.sun.crypto.provider.KeyGeneratorCore$HmacKG$SHA512",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.DefaultJwtBuilder"
},
"name": "io.jsonwebtoken.impl.DefaultClaims",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.DefaultJwtBuilder"
},
"name": "io.jsonwebtoken.impl.DefaultJwsHeader",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.Jwts"
},
"name": "io.jsonwebtoken.impl.DefaultJwtBuilder",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.Jwts"
},
"name": "io.jsonwebtoken.impl.DefaultJwtParserBuilder",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.CompressionCodecs"
},
"name": "io.jsonwebtoken.impl.compression.DeflateCompressionCodec",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.CompressionCodecs"
},
"name": "io.jsonwebtoken.impl.compression.GzipCompressionCodec",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.security.Keys"
},
"name": "io.jsonwebtoken.impl.crypto.EllipticCurveProvider",
"methods": [
{
"name": "generateKeyPair",
"parameterTypes": [
"io.jsonwebtoken.SignatureAlgorithm"
]
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.security.Keys"
},
"name": "io.jsonwebtoken.impl.crypto.MacProvider",
"methods": [
{
"name": "generateKey",
"parameterTypes": [
"io.jsonwebtoken.SignatureAlgorithm"
]
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.security.Keys"
},
"name": "io.jsonwebtoken.impl.crypto.RsaProvider",
"methods": [
{
"name": "generateKeyPair",
"parameterTypes": [
"io.jsonwebtoken.SignatureAlgorithm"
]
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.EllipticCurveProvider"
},
"name": "java.security.AlgorithmParametersSpi"
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.EllipticCurveSigner"
},
"name": "java.security.SecureRandomParameters"
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.MacProvider"
},
"name": "java.security.SecureRandomParameters"
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.SignatureProvider"
},
"name": "java.security.SecureRandomParameters"
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.EllipticCurveSigner"
},
"name": "java.security.interfaces.ECPrivateKey"
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.EllipticCurveSigner"
},
"name": "java.security.interfaces.ECPublicKey"
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.RsaSigner"
},
"name": "java.security.interfaces.RSAPrivateKey"
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.RsaSigner"
},
"name": "java.security.interfaces.RSAPublicKey"
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.gson.io.GsonSerializer"
},
"name": "java.sql.Date"
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.EllipticCurveSigner"
},
"name": "sun.security.provider.NativePRNG",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.MacProvider"
},
"name": "sun.security.provider.NativePRNG",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.SignatureProvider"
},
"name": "sun.security.provider.NativePRNG",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.EllipticCurveSignatureValidator"
},
"name": "sun.security.provider.SHA2$SHA256",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.EllipticCurveSigner"
},
"name": "sun.security.provider.SHA2$SHA256",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.MacSigner"
},
"name": "sun.security.provider.SHA2$SHA256",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.RsaSignatureValidator"
},
"name": "sun.security.provider.SHA2$SHA256",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.RsaSigner"
},
"name": "sun.security.provider.SHA2$SHA256",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.SignatureProvider"
},
"name": "sun.security.provider.SHA2$SHA256",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.EllipticCurveSignatureValidator"
},
"name": "sun.security.provider.SHA5$SHA384",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.EllipticCurveSigner"
},
"name": "sun.security.provider.SHA5$SHA384",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.MacSigner"
},
"name": "sun.security.provider.SHA5$SHA384",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.RsaSignatureValidator"
},
"name": "sun.security.provider.SHA5$SHA384",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.RsaSigner"
},
"name": "sun.security.provider.SHA5$SHA384",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.SignatureProvider"
},
"name": "sun.security.provider.SHA5$SHA384",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.EllipticCurveSignatureValidator"
},
"name": "sun.security.provider.SHA5$SHA512",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.EllipticCurveSigner"
},
"name": "sun.security.provider.SHA5$SHA512",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.MacSigner"
},
"name": "sun.security.provider.SHA5$SHA512",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.RsaSignatureValidator"
},
"name": "sun.security.provider.SHA5$SHA512",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.RsaSigner"
},
"name": "sun.security.provider.SHA5$SHA512",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.SignatureProvider"
},
"name": "sun.security.provider.SHA5$SHA512",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.RsaProvider"
},
"name": "sun.security.rsa.RSAKeyPairGenerator$Legacy",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.RsaSignatureValidator"
},
"name": "sun.security.rsa.RSASignature$SHA256withRSA",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.RsaSigner"
},
"name": "sun.security.rsa.RSASignature$SHA256withRSA",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.RsaSignatureValidator"
},
"name": "sun.security.rsa.RSASignature$SHA384withRSA",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.RsaSigner"
},
"name": "sun.security.rsa.RSASignature$SHA384withRSA",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.RsaSignatureValidator"
},
"name": "sun.security.rsa.RSASignature$SHA512withRSA",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.crypto.RsaSigner"
},
"name": "sun.security.rsa.RSASignature$SHA512withRSA",
"methods": [
{
"name": "<init>",
"parameterTypes": []
}
]
}
]
@@ -0,0 +1,25 @@
{
"bundles": [],
"resources": {
"includes": [
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.lang.Services"
},
"pattern": "\\QMETA-INF/services/io.jsonwebtoken.CompressionCodec\\E"
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.DefaultJwtParserBuilder"
},
"pattern": "\\QMETA-INF/services/io.jsonwebtoken.io.Deserializer\\E"
},
{
"condition": {
"typeReachable": "io.jsonwebtoken.impl.lang.LegacyServices"
},
"pattern": "\\QMETA-INF/services/io.jsonwebtoken.io.Serializer\\E"
}
]
}
}