Skip to content

Commit 2cac4bd

Browse files
committed
fix: sort Java properties
1 parent d64965b commit 2cac4bd

3 files changed

Lines changed: 50 additions & 41 deletions

File tree

src/main/java/org/apache/commons/release/plugin/internal/BuildDefinitions.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import java.util.List;
2727
import java.util.Map;
2828
import java.util.Properties;
29+
import java.util.TreeMap;
2930

3031
import org.apache.commons.release.plugin.slsa.v1_2.ResourceDescriptor;
3132
import org.apache.maven.execution.MavenExecutionRequest;
@@ -86,15 +87,11 @@ public static Map<String, Object> externalParameters(final MavenSession session)
8687
*/
8788
public static ResourceDescriptor jvm(final Path javaHome) throws IOException {
8889
final String[] propertyNames = {
89-
"java.version", "java.version.date",
90-
"java.vendor", "java.vendor.url", "java.vendor.version",
91-
"java.home",
92-
"java.vm.specification.version", "java.vm.specification.vendor", "java.vm.specification.name",
93-
"java.vm.version", "java.vm.vendor", "java.vm.name",
94-
"java.specification.version", "java.specification.maintenance.version",
95-
"java.specification.vendor", "java.specification.name",
90+
"java.home", "java.specification.maintenance.version", "java.specification.name", "java.specification.vendor", "java.specification.version",
91+
"java.vendor", "java.vendor.url", "java.vendor.version", "java.version", "java.version.date", "java.vm.name", "java.vm.specification.name",
92+
"java.vm.specification.vendor", "java.vm.specification.version", "java.vm.vendor", "java.vm.version"
9693
};
97-
final Map<String, Object> annotations = new HashMap<>();
94+
final Map<String, Object> annotations = new TreeMap<>();
9895
for (final String prop : propertyNames) {
9996
annotations.put(prop.substring("java.".length()), System.getProperty(prop));
10097
}

src/site/markdown/slsa/v0.1.0.md

Lines changed: 35 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -77,22 +77,22 @@ The following annotations are recorded from [
7777

7878
| Annotation key | System property | Description |
7979
|-------------------------------------|------------------------------------------|--------------------------------------------------------------------------|
80-
| `version` | `java.version` | Java Runtime Environment version. |
81-
| `version.date` | `java.version.date` | Java Runtime Environment version date, in ISO-8601 YYYY-MM-DD format. |
80+
| `home` | `java.home` | Java installation directory. |
81+
| `specification.maintenance.version` | `java.specification.maintenance.version` | Java Runtime Environment specification maintenance version _(optional)_. |
82+
| `specification.name` | `java.specification.name` | Java Runtime Environment specification name. |
83+
| `specification.vendor` | `java.specification.vendor` | Java Runtime Environment specification vendor. |
84+
| `specification.version` | `java.specification.version` | Java Runtime Environment specification version. |
8285
| `vendor` | `java.vendor` | Java Runtime Environment vendor. |
8386
| `vendor.url` | `java.vendor.url` | Java vendor URL. |
8487
| `vendor.version` | `java.vendor.version` | Java vendor version _(optional)_. |
85-
| `home` | `java.home` | Java installation directory. |
86-
| `vm.specification.version` | `java.vm.specification.version` | Java Virtual Machine specification version. |
87-
| `vm.specification.vendor` | `java.vm.specification.vendor` | Java Virtual Machine specification vendor. |
88+
| `version` | `java.version` | Java Runtime Environment version. |
89+
| `version.date` | `java.version.date` | Java Runtime Environment version date, in ISO-8601 YYYY-MM-DD format. |
90+
| `vm.name` | `java.vm.name` | Java Virtual Machine implementation name. |
8891
| `vm.specification.name` | `java.vm.specification.name` | Java Virtual Machine specification name. |
89-
| `vm.version` | `java.vm.version` | Java Virtual Machine implementation version. |
92+
| `vm.specification.vendor` | `java.vm.specification.vendor` | Java Virtual Machine specification vendor. |
93+
| `vm.specification.version` | `java.vm.specification.version` | Java Virtual Machine specification version. |
9094
| `vm.vendor` | `java.vm.vendor` | Java Virtual Machine implementation vendor. |
91-
| `vm.name` | `java.vm.name` | Java Virtual Machine implementation name. |
92-
| `specification.version` | `java.specification.version` | Java Runtime Environment specification version. |
93-
| `specification.maintenance.version` | `java.specification.maintenance.version` | Java Runtime Environment specification maintenance version _(optional)_. |
94-
| `specification.vendor` | `java.specification.vendor` | Java Runtime Environment specification vendor. |
95-
| `specification.name` | `java.specification.name` | Java Runtime Environment specification name. |
95+
| `vm.version` | `java.vm.version` | Java Virtual Machine implementation version. |
9696

9797
#### Maven
9898

@@ -154,10 +154,12 @@ By default, every subject carries `md5`, `sha1`, `sha256` and `sha512` digests.
154154

155155
The following is the bare attestation statement produced for the `commons-text` 1.4 release
156156
(abridged: most subjects are elided, and the JDK annotations trimmed). The full fixture lives at
157-
[`src/test/resources/attestations/commons-text-1.4.intoto.json`](https://github.com/apache/commons-release-plugin/blob/main/src/test/resources/attestations/commons-text-1.4.intoto.json)
157+
[
158+
`src/test/resources/attestations/commons-text-1.4.intoto.json`](https://github.com/apache/commons-release-plugin/blob/main/src/test/resources/attestations/commons-text-1.4.intoto.json)
158159
in the plugin source tree.
159160

160-
The statement shown below is wrapped in a [DSSE envelope](https://github.com/secure-systems-lab/dsse/blob/master/envelope.md)
161+
The statement shown below is wrapped in
162+
a [DSSE envelope](https://github.com/secure-systems-lab/dsse/blob/master/envelope.md)
161163
signed with the release manager's OpenPGP key, and the `.intoto.jsonl` file deployed to Maven Central
162164
contains that envelope.
163165

@@ -191,8 +193,12 @@ contains that envelope.
191193
"buildDefinition": {
192194
"buildType": "https://commons.apache.org/builds/0.1.0",
193195
"externalParameters": {
194-
"maven.goals": ["deploy"],
195-
"maven.profiles": ["release"],
196+
"maven.goals": [
197+
"deploy"
198+
],
199+
"maven.profiles": [
200+
"release"
201+
],
196202
"maven.user.properties": {
197203
"gpg.keyname": "3C8D57E0A2B5C6D7E8F9A0B1C2D3E4F5A6B7C8D9"
198204
},
@@ -212,21 +218,25 @@ contains that envelope.
212218
// JDK that ran the build
213219
{
214220
"name": "JDK",
215-
"digest": { "gitTree": "bdb67e47c1b7df9c35ae045f29a348bb5bd32dc3" },
221+
"digest": {
222+
"gitTree": "bdb67e47c1b7df9c35ae045f29a348bb5bd32dc3"
223+
},
216224
"annotations": {
217-
"vendor": "Eclipse Adoptium",
218-
"vendor.version": "Temurin-25.0.2+10",
219-
"version": "25.0.2",
220-
"vm.name": "OpenJDK 64-Bit Server VM",
221-
"vm.version": "25.0.2+10-LTS"
225+
"home": "/usr/lib/jvm/temurin-25-jdk-amd64",
226+
"specification.maintenance.version": null,
227+
"specification.name": "Java Platform API Specification",
228+
"specification.vendor": "Oracle Corporation",
229+
"specification.version": "25",
222230
// … remaining java.* system properties elided …
223231
}
224232
},
225233
// Maven installation
226234
{
227235
"name": "Maven",
228236
"uri": "pkg:maven/org.apache.maven/apache-maven@3.9.12",
229-
"digest": { "gitTree": "3cdb4a67690dc18373f70ead98dc86567cc5ad67" },
237+
"digest": {
238+
"gitTree": "3cdb4a67690dc18373f70ead98dc86567cc5ad67"
239+
},
230240
"annotations": {
231241
"distributionId": "apache-maven",
232242
"distributionName": "Apache Maven",
@@ -238,7 +248,9 @@ contains that envelope.
238248
// Source revision (branch or tag at release time)
239249
{
240250
"uri": "git+https://github.com/apache/commons-text.git@rel/commons-text-1.4",
241-
"digest": { "gitCommit": "f519b3670795da3fb4f43b6af1f727eadf8e6800" }
251+
"digest": {
252+
"gitCommit": "f519b3670795da3fb4f43b6af1f727eadf8e6800"
253+
}
242254
}
243255
]
244256
},

src/test/resources/attestations/commons-text-1.4.intoto.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -133,22 +133,22 @@
133133
"gitTree": "bdb67e47c1b7df9c35ae045f29a348bb5bd32dc3"
134134
},
135135
"annotations": {
136-
"vendor.version": "Temurin-25.0.2+10",
136+
"home": "/usr/lib/jvm/temurin-25-jdk-amd64",
137+
"specification.maintenance.version": null,
137138
"specification.name": "Java Platform API Specification",
138139
"specification.vendor": "Oracle Corporation",
139-
"vm.version": "25.0.2+10-LTS",
140-
"version": "25.0.2",
141-
"version.date": "2026-01-20",
142-
"vm.specification.vendor": "Oracle Corporation",
143-
"home": "/usr/lib/jvm/temurin-25-jdk-amd64",
140+
"specification.version": "25",
144141
"vendor": "Eclipse Adoptium",
145-
"vm.vendor": "Eclipse Adoptium",
146142
"vendor.url": "https://adoptium.net/",
147-
"specification.maintenance.version": null,
148-
"vm.specification.version": "25",
143+
"vendor.version": "Temurin-25.0.2+10",
144+
"version": "25.0.2",
145+
"version.date": "2026-01-20",
149146
"vm.name": "OpenJDK 64-Bit Server VM",
150147
"vm.specification.name": "Java Virtual Machine Specification",
151-
"specification.version": "25"
148+
"vm.specification.vendor": "Oracle Corporation",
149+
"vm.specification.version": "25",
150+
"vm.vendor": "Eclipse Adoptium",
151+
"vm.version": "25.0.2+10-LTS"
152152
}
153153
},
154154
{

0 commit comments

Comments
 (0)