Skip to content

Commit d294a5a

Browse files
authored
Merge pull request #611 from jmtd/4106-ubi10-UseCompactObjectHeaders
[OPENJDK-4106] Enable compact object headers
2 parents 76b9156 + 533d8b6 commit d294a5a

File tree

7 files changed

+48
-5
lines changed

7 files changed

+48
-5
lines changed

modules/jdk/21/module.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,7 @@ packages:
2828

2929
modules:
3030
install:
31+
- name: jboss.container.openjdk.jre
32+
version: *jdkver
3133
- name: jboss.container.user
3234
- name: jboss.container.openjdk

modules/jdk/25/module.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,7 @@ packages:
2828

2929
modules:
3030
install:
31+
- name: jboss.container.openjdk.jre
32+
version: *jdkver
3133
- name: jboss.container.user
3234
- name: jboss.container.openjdk
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/bin/bash
2+
# this is a script library and is intended to be sourced, not executed.
3+
4+
# OPENJDK-4106
5+
jvm_specific_options() {
6+
if [ "$JAVA_COMPACT_OBJECT_HEADERS" != "false" ]; then
7+
echo "-XX:+UseCompactObjectHeaders"
8+
fi
9+
}

modules/jre/25/configure.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/bin/bash
2+
set -euo pipefail
3+
4+
SCRIPT_DIR=$(dirname $0)
5+
ARTIFACTS_DIR=${SCRIPT_DIR}/artifacts
6+
7+
install -m 0644 -D {${ARTIFACTS_DIR},}${JBOSS_CONTAINER_OPENJDK_JRE_MODULE}/jvm-options

modules/jre/25/module.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ envs:
2121
value: *jdkver
2222
- name: JBOSS_CONTAINER_OPENJDK_JRE_MODULE
2323
value: /opt/jboss/container/openjdk/jre
24+
- name: JAVA_COMPACT_OBJECT_HEADERS
25+
description: Whether to enable compact object headers (JEP519) for JDK25 and newer. Enabled by default.
26+
example: "false"
2427

2528
packages:
2629
install:
@@ -30,3 +33,6 @@ modules:
3033
install:
3134
- name: jboss.container.user
3235
- name: jboss.container.openjdk
36+
37+
execute:
38+
- script: configure.sh
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
Feature: Tests around compact object headers
2+
3+
@ubi10/openjdk-25
4+
@ubi10/openjdk-25-runtime
5+
Scenario: UseCompactObjectHeaders is on by default
6+
When container is ready
7+
Then available container log should contain -XX:+UseCompactObjectHeaders
8+
9+
@ubi10/openjdk-25
10+
@ubi10/openjdk-25-runtime
11+
Scenario: UseCompactObjectHeaders can be disabled
12+
Given container is started with env
13+
| variable | value |
14+
| JAVA_COMPACT_OBJECT_HEADERS | false |
15+
Then available container log should not contain -XX:+UseCompactObjectHeaders

modules/jvm/artifacts/opt/jboss/container/java/jvm/java-default-options

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ jvm_specific_options() {
1111
}
1212

1313
# Include overridden jvm_specific_*() functions
14-
if [ -f "${JBOSS_CONTAINER_OPENJDK_JDK_MODULE}/jvm-options" ]; then
15-
source "${JBOSS_CONTAINER_OPENJDK_JDK_MODULE}/jvm-options"
14+
if [ -f "${JBOSS_CONTAINER_OPENJDK_JRE_MODULE}/jvm-options" ]; then
15+
source "${JBOSS_CONTAINER_OPENJDK_JRE_MODULE}/jvm-options"
1616
fi
1717

1818
# Check for memory options and calculate a sane default if not given
@@ -60,7 +60,7 @@ gc_config() {
6060
fi
6161
fi
6262

63-
local allOptions="$(jvm_specific_options) "
63+
local allOptions=""
6464
allOptions+="${gcOptions} "
6565
allOptions+="-XX:MinHeapFreeRatio=${minHeapFreeRatio} "
6666
allOptions+="-XX:MaxHeapFreeRatio=${maxHeapFreeRatio} "
@@ -81,5 +81,7 @@ error_handling() {
8181
echo "-XX:+ExitOnOutOfMemoryError"
8282
}
8383

84-
## Echo options, trimming trailing and multiple spaces
85-
echo "$(max_memory) $(gc_config) $(diagnostics) $(error_handling)" | awk '$1=$1'
84+
echo "$(max_memory) $(gc_config) $(diagnostics) $(error_handling)\
85+
$(jvm_specific_options)
86+
87+
" | awk '$1=$1' # trim leading/trailing spaces and squash multiple spaces

0 commit comments

Comments
 (0)