Skip to content

Commit 0a97542

Browse files
authored
Merge pull request #2956 from objectcomputing/feature-2955/native-image-support
Support for native images in all features
2 parents 785e54e + 31b5494 commit 0a97542

19 files changed

+98
-51
lines changed

.github/workflows/gradle-build-feature.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ jobs:
2222
uses: actions/setup-node@v4
2323
with:
2424
node-version: '22'
25-
- name: Set up JDK 21
25+
- name: Set up JDK 23
2626
uses: actions/setup-java@v4
2727
with:
2828
distribution: 'temurin' # See 'Supported distributions' for available options
29-
java-version: 21
29+
java-version: 23
3030
- name: Cache Gradle packages
3131
uses: actions/cache@v4
3232
with:

.github/workflows/gradle-build-native-feature.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ jobs:
2222
uses: actions/setup-node@v4
2323
with:
2424
node-version: '22'
25-
- name: Set up GraalVM 21
26-
uses: graalvm/setup-graalvm@v1.1.8
25+
- name: Set up GraalVM 23
26+
uses: graalvm/setup-graalvm@v1.3.3
2727
with:
2828
distribution: 'graalvm'
29-
java-version: '21'
29+
java-version: '23'
3030
- name: Cache Gradle packages
3131
uses: actions/cache@v4
3232
with:

.github/workflows/gradle-build-publish.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ jobs:
1313
steps:
1414
- uses: actions/checkout@v4
1515
- name: Set up Node Stable
16-
uses: actions/setup-node@v2-beta
16+
uses: actions/setup-node@v4
1717
with:
1818
node-version: '22'
19-
- name: Set up JDK 21
19+
- name: Set up JDK 23
2020
uses: actions/setup-java@v4
2121
with:
2222
distribution: 'temurin' # See 'Supported distributions' for available options
23-
java-version: 21
23+
java-version: 23
2424
- name: Cache Gradle packages
2525
uses: actions/cache@v4
2626
with:

.github/workflows/gradle-dependency-submission.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: Gradle Dependency Submission
22

33
on:
44
push:
5-
branches: [ 'develop', 'master', 'feature-2532/graal' ]
5+
branches: [ 'develop', 'master' ]
66
env:
77
HUSKY: 0
88
permissions:
@@ -18,6 +18,6 @@ jobs:
1818
uses: actions/setup-java@v4
1919
with:
2020
distribution: 'temurin'
21-
java-version: 21
21+
java-version: 23
2222
- name: Generate and submit dependency graph
2323
uses: gradle/actions/dependency-submission@v4

.github/workflows/gradle-deploy-develop.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ jobs:
2222
uses: actions/setup-node@v4
2323
with:
2424
node-version: '22'
25-
- name: Set up Temurin 21
25+
- name: Set up Temurin 23
2626
uses: actions/setup-java@v4
2727
with:
2828
distribution: 'temurin'
29-
java-version: 21
29+
java-version: 23
3030
- name: Cache Gradle packages
3131
uses: actions/cache@v4
3232
with:
@@ -53,11 +53,11 @@ jobs:
5353
uses: actions/setup-node@v4
5454
with:
5555
node-version: '22'
56-
- name: Set up Temurin 21
56+
- name: Set up Temurin 23
5757
uses: actions/setup-java@v4
5858
with:
5959
distribution: 'temurin' # See 'Supported distributions' for available options
60-
java-version: 21
60+
java-version: 23
6161
- name: Cache Gradle packages
6262
uses: actions/cache@v4
6363
with:

.github/workflows/gradle-deploy-native-develop.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ jobs:
2222
uses: actions/setup-node@v4
2323
with:
2424
node-version: '22'
25-
- name: Set up GraalVM 21
25+
- name: Set up GraalVM 23
2626
uses: graalvm/[email protected]
2727
with:
2828
distribution: 'graalvm'
29-
java-version: '21'
29+
java-version: '23'
3030
- name: Cache Gradle packages
3131
uses: actions/cache@v4
3232
with:
@@ -53,11 +53,11 @@ jobs:
5353
uses: actions/setup-node@v4
5454
with:
5555
node-version: '22'
56-
- name: Set up GraalVM 21
56+
- name: Set up GraalVM 23
5757
uses: graalvm/[email protected]
5858
with:
5959
distribution: 'graalvm'
60-
java-version: '21'
60+
java-version: '23'
6161
- name: Cache Gradle packages
6262
uses: actions/cache@v4
6363
with:

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
Thumbs.db
22
.DS_Store
33
.gradle
4+
.micronaut
45
bin/
56
build/
67
target/

docs/getting-started/running/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ You can use any email that the system has in its loaded test data. The "password
3636
If you wish to use the native executables built with GraalVM, you will need to switch over to that Java compiler using the following command:
3737

3838
```shell
39-
nvm use java 21.0.2-graalce
39+
sdk use java 23.0.2-graalce
4040
```
4141

42-
21.0.2-graalce is the most recent version of GraalVM Community Edition, as of the time this was written. You can replace that version with a different Graal distribution as appropriate.
42+
23.0.2-graalce is the most recent version of GraalVM Community Edition, as of the time this was written. You can replace that version with a different Graal distribution as appropriate.
4343

4444
You can then run a native build using:
4545

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

server/build.gradle

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
22

33
plugins {
4-
id 'maven-publish'
4+
id('maven-publish')
5+
id("io.micronaut.application") version "4.5.2"
56
id("com.gradleup.shadow") version "8.3.6"
6-
id("io.micronaut.application") version "4.5.0"
7-
id "jacoco"
7+
id("io.micronaut.test-resources") version "4.5.2"
8+
id("io.micronaut.aot") version "4.5.2"
9+
id("jacoco")
810
}
911

10-
version "0.8.17"
11-
group "com.objectcomputing.checkins"
12+
version="0.8.17"
13+
group="com.objectcomputing.checkins"
1214

1315
repositories {
1416
mavenCentral()
@@ -17,6 +19,9 @@ repositories {
1719
micronaut {
1820
runtime("netty")
1921
testRuntime("junit5")
22+
testResources {
23+
explicitPort=61971
24+
}
2025
processing {
2126
incremental(true)
2227
annotations("com.objectcomputing.checkins.*")
@@ -39,7 +44,10 @@ graalvmNative {
3944

4045
// See https://github.com/micronaut-projects/micronaut-core/issues/10771
4146
buildArgs.add("--initialize-at-build-time=kotlin.coroutines.intrinsics.CoroutineSingletons")
42-
47+
buildArgs.add("--initialize-at-build-time=io.micronaut.security.authentication.AuthenticationMode")
48+
buildArgs.add("--initialize-at-build-time=io.micronaut.flyway.StaticResourceProvider")
49+
buildArgs.add("--initialize-at-build-time=com.nimbusds.jose.Requirement")
50+
buildArgs.add("--initialize-at-build-time=io.micronaut.flyway.StaticResourceProvider\$StaticLoadableResource")
4351
// When we are building for production (on CI), we do not want to include the dev migrations.
4452
def isProduction = System.getenv('SERVICE_NAME') != null && System.getenv('SERVICE_NAME') == 'checkins-master'
4553
def migrationLocations = isProduction ? "db/common" : "db/common,db/dev"
@@ -71,17 +79,17 @@ dependencies {
7179
compileOnly ("org.projectlombok:lombok")
7280

7381
annotationProcessor ("org.projectlombok:lombok")
74-
annotationProcessor ("io.micronaut:micronaut-inject-java")
82+
// annotationProcessor ("io.micronaut:micronaut-inject-java")
7583
annotationProcessor("io.micronaut.validation:micronaut-validation-processor")
7684
annotationProcessor("io.micronaut.data:micronaut-data-processor")
85+
annotationProcessor("io.micronaut:micronaut-http-validation")
7786
annotationProcessor("io.micronaut.openapi:micronaut-openapi")
7887
annotationProcessor("io.micronaut.security:micronaut-security-annotations")
7988

8089
yarnBuildElements(project(":web-ui"))
8190

8291
implementation("net.steppschuh.markdowngenerator:markdowngenerator:1.3.1.1")
8392
implementation("io.micronaut:micronaut-jackson-databind")
84-
implementation("io.micronaut:micronaut-http-client")
8593
implementation("io.micronaut:micronaut-management")
8694
implementation('io.micronaut:micronaut-runtime')
8795
implementation("io.micronaut.cache:micronaut-cache-caffeine")
@@ -94,7 +102,8 @@ dependencies {
94102
implementation("io.micronaut.validation:micronaut-validation")
95103
implementation("io.micronaut.views:micronaut-views-thymeleaf")
96104
implementation("io.micronaut.email:micronaut-email-mailjet")
97-
implementation "io.micronaut:micronaut-http-server-netty"
105+
implementation("io.micronaut:micronaut-http-server-netty")
106+
implementation("io.micronaut:micronaut-http-client")
98107

99108
implementation("io.swagger.core.v3:swagger-annotations")
100109

server/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
micronautVersion=4.7.6
1+
micronautVersion=4.8.0
22
seleniumVersion=4.24.0
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists

server/src/main/java/com/objectcomputing/checkins/services/file/FileServicesBaseImpl.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828

2929
import static com.objectcomputing.checkins.services.validate.PermissionsValidation.NOT_AUTHORIZED_MSG;
3030

31-
@Singleton
3231
abstract public class FileServicesBaseImpl implements FileServices {
3332
private static final Logger LOG = LoggerFactory.getLogger(FileServicesBaseImpl.class);
3433

server/src/main/java/com/objectcomputing/checkins/services/guild/GuildController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ public GuildResponseDTO readGuild(@NotNull UUID id) {
6969
* return all guilds that match the filled in params
7070
*/
7171
@Get("/{?name,memberid}")
72-
public Set<GuildResponseDTO> findGuilds(@Nullable String name, @Nullable UUID memberId) {
73-
return guildService.findByFields(name, memberId);
72+
public Set<GuildResponseDTO> findGuilds(@Nullable String name, @Nullable UUID memberid) {
73+
return guildService.findByFields(name, memberid);
7474
}
7575

7676
/**

server/src/main/java/com/objectcomputing/checkins/services/kudos/KudosController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public KudosResponseDTO getById(@NotNull UUID id) {
6363
return kudosServices.getById(id);
6464
}
6565

66-
@Get("/{?recipientId,?senderId,?isPending}")
66+
@Get("/{?recipientId,senderId,isPending}")
6767
public List<KudosResponseDTO> get(@Nullable UUID recipientId, @Nullable UUID senderId, @Nullable Boolean isPending) {
6868
return kudosServices.findByValues(recipientId, senderId, isPending);
6969
}

server/src/main/java/com/objectcomputing/checkins/services/kudos/KudosConverter.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import com.objectcomputing.checkins.services.memberprofile.MemberProfileUtils;
88
import com.objectcomputing.checkins.services.memberprofile.MemberProfile;
99

10-
import com.slack.api.model.block.LayoutBlock;
1110
import com.slack.api.model.block.RichTextBlock;
1211
import com.slack.api.model.block.element.RichTextElement;
1312
import com.slack.api.model.block.element.RichTextSectionElement;

0 commit comments

Comments
 (0)