Java9 - jdk-9+181 intelliJ - 2017.2.2 built on August 9,2017
The java.management.rmi
's module-info.java
implementation is somewhat like:
module java.management.rmi {
...
requires transitive java.management;
exports com.sun.jmx.remote.protocol.rmi to java.management;
provides javax.management.remote.JMXConnectorProvider with
com.sun.jmx.remote.protocol.rmi.ClientProvider;
provides javax.management.remote.JMXConnectorServerProvider with
com.sun.jmx.remote.protocol.rmi.ServerProvider;
}
For both the provides
statement I got to see a compiler warning stating
Service interface provided but not exported or used
I ended up guessing wrong when I tried using these in another module as:
module interactor {
requires java.management.rmi;
uses javax.management.remote.JMXConnectorProvider;
}
The warning still remains.
Furthermore, I could also reach java.management
's module to find
uses javax.management.remote.JMXConnectorProvider;
uses javax.management.remote.JMXConnectorServerProvider;
What's the reason for this warning still and how could this be solved?
Attaching screenshot as per the ask in comments:
For any future references, this might turn up to be relevant due to some regressions in IntelliJ updates, answering this myself.
This was a bug with IntelliJ and was tracked at IDEA-178041 which resulted in:
omitting some JDK or library modules from a module graph used to generate warnings.
Update September 7, 2017
The issue has been fixed with IntelliJ IDEA 2017.3 EAP build.
IntelliJ IDEA 2017.3 EAP (Community Edition)
Build #IC-173.2099.14, built on September 6, 2017
JRE: 1.8.0_152-release-915-b11 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o