Skip to content

Commit

Permalink
8285497: Add system property for Java SE specification maintenance ve…
Browse files Browse the repository at this point in the history
…rsion

Reviewed-by: lancea, andrew, iris
Backport-of: c2c9e7fb8c857e40bc43b4053c2633825d4fb68e
  • Loading branch information
Justin Lu authored and RealCLanger committed Jul 18, 2024
1 parent 6a31071 commit 2464d8c
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 2 deletions.
15 changes: 14 additions & 1 deletion src/java.base/share/classes/java/lang/System.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 1994, 2021, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1994, 2022, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
Expand Down Expand Up @@ -726,6 +726,9 @@ public static native void arraycopy(Object src, int srcPos,
* <td>Java Runtime Environment specification version, whose value is
* the {@linkplain Runtime.Version#feature feature} element of the
* {@linkplain Runtime#version() runtime version}</td></tr>
* <tr><th scope="row">{@systemProperty java.specification.maintenance.version}</th>
* <td>Java Runtime Environment specification maintenance version,
* may be interpreted as a positive integer <em>(optional, see below)</em></td></tr>
* <tr><th scope="row">{@systemProperty java.specification.vendor}</th>
* <td>Java Runtime Environment specification vendor</td></tr>
* <tr><th scope="row">{@systemProperty java.specification.name}</th>
Expand Down Expand Up @@ -765,6 +768,16 @@ public static native void arraycopy(Object src, int srcPos,
* </tbody>
* </table>
* <p>
* The {@code java.specification.maintenance.version} property is
* defined if the specification implemented by this runtime at the
* time of its construction had undergone a <a
* href="https://jcp.org/en/procedures/jcp2#3.6.4">maintenance
* release</a>. When defined, its value identifies that
* maintenance release. To indicate the first maintenance release
* this property will have the value {@code "1"}, to indicate the
* second maintenance release this property will have the value
* {@code "2"}, and so on.
* <p>
* Multiple paths in a system property value are separated by the path
* separator character of the platform.
* <p>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 1999, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 2024, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
Expand Down Expand Up @@ -109,6 +109,7 @@ class VersionProps {
props.put("java.class.version", CLASSFILE_MAJOR_MINOR);

props.put("java.specification.version", VERSION_SPECIFICATION);
props.put("java.specification.maintenance.version", "1");
props.put("java.specification.name", "Java Platform API Specification");
props.put("java.specification.vendor", "Oracle Corporation");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -614,6 +614,9 @@ public Void run() {
pe.add(new PropertyPermission
("java.specification.version",
SecurityConstants.PROPERTY_READ_ACTION));
pe.add(new PropertyPermission
("java.specification.maintenance.version",
SecurityConstants.PROPERTY_READ_ACTION));
pe.add(new PropertyPermission
("java.specification.vendor",
SecurityConstants.PROPERTY_READ_ACTION));
Expand Down
2 changes: 2 additions & 0 deletions src/java.base/share/conf/security/java.policy
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ grant {
permission java.util.PropertyPermission "line.separator", "read";
permission java.util.PropertyPermission
"java.specification.version", "read";
permission java.util.PropertyPermission
"java.specification.maintenance.version", "read";
permission java.util.PropertyPermission "java.specification.vendor", "read";
permission java.util.PropertyPermission "java.specification.name", "read";
permission java.util.PropertyPermission
Expand Down

1 comment on commit 2464d8c

@openjdk-notifier
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.