FYI: new javadoc tag to document system properties
Xuelei Fan
xuelei.fan at oracle.com
Thu Nov 15 16:17:55 UTC 2018
In JCE and JSSE, the public APIs definition (javax.net.ssl) and the
internal implementation (sun.security.ssl) are separated. The system
property can be defined in the internal implementation classes. I think
we should add the @systemProperty on the public APIs, right?
The public API class and the implementation class may be not a
one-to-one map. Multiple public APIs may be impacted by the system
property. How to handle such cases?
Thanks,
Xuelei
On 11/14/2018 2:27 PM, Jonathan Gibbons wrote:
> This is an FYI to announce some initial, long-overdue support in javadoc
> for documenting system properties (JDK-5076751).
>
> Currently, system properties are just documented using ad-hoc narrative
> text, which is fine if you know where to look for any given property.
>
> JDK 12 introduces a new inline javadoc tag, {@systemProperty
> /property-name/} which can be used to "declare" the name of a system
> property. You can use this tag as a drop-in replacement for the
> plain-text property name; it will have no overt effect on the narrative
> text, but it will cause the property name to be put into the search
> index and the A-Z index. Thus, property names will become searchable, to
> allow users to easily find the definition of any such system property.
>
> Adding support into javadoc is only part of the story. Now that the
> support is in javadoc, we want to update the API documentation, so that
> the documentation is updated for all Java SE and JDK system properties.
>
> Where should the tag be used? The tag should be used in the text of the
> defining instance of the property. This is where the characteristics of
> the system property are described, which may include information like:
> "what is the property for", "how and when is it set", "can it be
> modified", and so on. For example, it could be used in the docs for
> System.getProperties [1] or Networking Properties [2] In general, it
> should -not- be used in situations that merely refer to the system
> property by name. For example, the docs for Path.toAbsolutePath [3]
> make a reference to the system property user.dir, but that is not a
> definition of the property.
>
> Going forward, in future releases, we expect to explore some
> enhancements to this feature. Here are some of the ideas that have been
> suggested:
>
> * Create a "summary page" that lists all the system properties. This
> would be somewhat similar to the current top-level "Constant Values"
> page.
> * Add information regarding the "scope" of the definition: is it
> defined by the Java SE specification, or JDK, or JavaFX, etc. This
> information could be used to organize the content on the summary page.
> * Update @see and {@link} to be able to refer to system properties.
> * Allow a short description to be included in the {@systemProperty}
> tag. This text could be included in the search index, the A-Z index,
> and the summary page.
>
> -- Jon
>
>
> [1]:
> https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/System.html#getProperties()
>
> [2]:
> https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/doc-files/net-properties.html
>
> [3]:
> https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/file/Path.html#toAbsolutePath()
>
>
>
More information about the core-libs-dev
mailing list