Skip to content

Support for native images in all features #2956

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Apr 15, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/gradle-build-feature.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: '22'
- name: Set up JDK 21
- name: Set up JDK 23
uses: actions/setup-java@v4
with:
distribution: 'temurin' # See 'Supported distributions' for available options
java-version: 21
java-version: 23
- name: Cache Gradle packages
uses: actions/cache@v4
with:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/gradle-build-native-feature.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: '22'
- name: Set up GraalVM 21
uses: graalvm/setup-graalvm@v1.1.8
- name: Set up GraalVM 23
uses: graalvm/setup-graalvm@v1.3.3
with:
distribution: 'graalvm'
java-version: '21'
java-version: '23'
- name: Cache Gradle packages
uses: actions/cache@v4
with:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/gradle-build-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Set up Node Stable
uses: actions/setup-node@v2-beta
uses: actions/setup-node@v4
with:
node-version: '22'
- name: Set up JDK 21
- name: Set up JDK 23
uses: actions/setup-java@v4
with:
distribution: 'temurin' # See 'Supported distributions' for available options
java-version: 21
java-version: 23
- name: Cache Gradle packages
uses: actions/cache@v4
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/gradle-dependency-submission.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Gradle Dependency Submission

on:
push:
branches: [ 'develop', 'master', 'feature-2532/graal' ]
branches: [ 'develop', 'master' ]
env:
HUSKY: 0
permissions:
Expand All @@ -18,6 +18,6 @@ jobs:
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 21
java-version: 23
- name: Generate and submit dependency graph
uses: gradle/actions/dependency-submission@v4
8 changes: 4 additions & 4 deletions .github/workflows/gradle-deploy-develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: '22'
- name: Set up Temurin 21
- name: Set up Temurin 23
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 21
java-version: 23
- name: Cache Gradle packages
uses: actions/cache@v4
with:
Expand All @@ -53,11 +53,11 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: '22'
- name: Set up Temurin 21
- name: Set up Temurin 23
uses: actions/setup-java@v4
with:
distribution: 'temurin' # See 'Supported distributions' for available options
java-version: 21
java-version: 23
- name: Cache Gradle packages
uses: actions/cache@v4
with:
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/gradle-deploy-native-develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: '22'
- name: Set up GraalVM 21
- name: Set up GraalVM 23
uses: graalvm/[email protected]
with:
distribution: 'graalvm'
java-version: '21'
java-version: '23'
- name: Cache Gradle packages
uses: actions/cache@v4
with:
Expand All @@ -53,11 +53,11 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: '22'
- name: Set up GraalVM 21
- name: Set up GraalVM 23
uses: graalvm/[email protected]
with:
distribution: 'graalvm'
java-version: '21'
java-version: '23'
- name: Cache Gradle packages
uses: actions/cache@v4
with:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
Thumbs.db
.DS_Store
.gradle
.micronaut
bin/
build/
target/
Expand Down
4 changes: 2 additions & 2 deletions docs/getting-started/running/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,10 @@ You can use any email that the system has in its loaded test data. The "password
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:

```shell
nvm use java 21.0.2-graalce
sdk use java 23.0.2-graalce
```

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.
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.

You can then run a native build using:

Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
27 changes: 18 additions & 9 deletions server/build.gradle
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform

plugins {
id 'maven-publish'
id('maven-publish')
id("io.micronaut.application") version "4.5.2"
id("com.gradleup.shadow") version "8.3.6"
id("io.micronaut.application") version "4.5.0"
id "jacoco"
id("io.micronaut.test-resources") version "4.5.2"
id("io.micronaut.aot") version "4.5.2"
id("jacoco")
}

version "0.8.17"
group "com.objectcomputing.checkins"
version="0.8.17"
group="com.objectcomputing.checkins"

repositories {
mavenCentral()
Expand All @@ -17,6 +19,9 @@ repositories {
micronaut {
runtime("netty")
testRuntime("junit5")
testResources {
explicitPort=61971
}
processing {
incremental(true)
annotations("com.objectcomputing.checkins.*")
Expand All @@ -39,7 +44,10 @@ graalvmNative {

// See https://github.com/micronaut-projects/micronaut-core/issues/10771
buildArgs.add("--initialize-at-build-time=kotlin.coroutines.intrinsics.CoroutineSingletons")

buildArgs.add("--initialize-at-build-time=io.micronaut.security.authentication.AuthenticationMode")
buildArgs.add("--initialize-at-build-time=io.micronaut.flyway.StaticResourceProvider")
buildArgs.add("--initialize-at-build-time=com.nimbusds.jose.Requirement")
buildArgs.add("--initialize-at-build-time=io.micronaut.flyway.StaticResourceProvider\$StaticLoadableResource")
// When we are building for production (on CI), we do not want to include the dev migrations.
def isProduction = System.getenv('SERVICE_NAME') != null && System.getenv('SERVICE_NAME') == 'checkins-master'
def migrationLocations = isProduction ? "db/common" : "db/common,db/dev"
Expand Down Expand Up @@ -71,17 +79,17 @@ dependencies {
compileOnly ("org.projectlombok:lombok")

annotationProcessor ("org.projectlombok:lombok")
annotationProcessor ("io.micronaut:micronaut-inject-java")
// annotationProcessor ("io.micronaut:micronaut-inject-java")
annotationProcessor("io.micronaut.validation:micronaut-validation-processor")
annotationProcessor("io.micronaut.data:micronaut-data-processor")
annotationProcessor("io.micronaut:micronaut-http-validation")
annotationProcessor("io.micronaut.openapi:micronaut-openapi")
annotationProcessor("io.micronaut.security:micronaut-security-annotations")

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

implementation("net.steppschuh.markdowngenerator:markdowngenerator:1.3.1.1")
implementation("io.micronaut:micronaut-jackson-databind")
implementation("io.micronaut:micronaut-http-client")
implementation("io.micronaut:micronaut-management")
implementation('io.micronaut:micronaut-runtime')
implementation("io.micronaut.cache:micronaut-cache-caffeine")
Expand All @@ -94,7 +102,8 @@ dependencies {
implementation("io.micronaut.validation:micronaut-validation")
implementation("io.micronaut.views:micronaut-views-thymeleaf")
implementation("io.micronaut.email:micronaut-email-mailjet")
implementation "io.micronaut:micronaut-http-server-netty"
implementation("io.micronaut:micronaut-http-server-netty")
implementation("io.micronaut:micronaut-http-client")

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

Expand Down
2 changes: 1 addition & 1 deletion server/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
micronautVersion=4.7.6
micronautVersion=4.8.0
seleniumVersion=4.24.0
2 changes: 1 addition & 1 deletion server/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@

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

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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@ public GuildResponseDTO readGuild(@NotNull UUID id) {
* return all guilds that match the filled in params
*/
@Get("/{?name,memberid}")
public Set<GuildResponseDTO> findGuilds(@Nullable String name, @Nullable UUID memberId) {
return guildService.findByFields(name, memberId);
public Set<GuildResponseDTO> findGuilds(@Nullable String name, @Nullable UUID memberid) {
return guildService.findByFields(name, memberid);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public KudosResponseDTO getById(@NotNull UUID id) {
return kudosServices.getById(id);
}

@Get("/{?recipientId,?senderId,?isPending}")
@Get("/{?recipientId,senderId,isPending}")
public List<KudosResponseDTO> get(@Nullable UUID recipientId, @Nullable UUID senderId, @Nullable Boolean isPending) {
return kudosServices.findByValues(recipientId, senderId, isPending);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import com.objectcomputing.checkins.services.memberprofile.MemberProfileUtils;
import com.objectcomputing.checkins.services.memberprofile.MemberProfile;

import com.slack.api.model.block.LayoutBlock;
import com.slack.api.model.block.RichTextBlock;
import com.slack.api.model.block.element.RichTextElement;
import com.slack.api.model.block.element.RichTextSectionElement;
Expand Down
Loading
Loading