RFR 8043138: Attach API should not require jvmstat rmi protocol

Erik Joelsson erik.joelsson at oracle.com
Wed Nov 25 08:37:52 UTC 2015



On 2015-11-25 09:11, Staffan Larsen wrote:
>> On 24 nov. 2015, at 17:03, Jaroslav Bachorik <jaroslav.bachorik at oracle.com> wrote:
>>
>> Please, review the following change
>>
>> Issue : https://bugs.openjdk.java.net/browse/JDK-8043138
>> Webrevs:
>> * top level: http://cr.openjdk.java.net/~jbachorik/8043138/webrev.00/top
>> * jdk: http://cr.openjdk.java.net/~jbachorik/8043138/webrev.00/jdk
>>
>> This patch splits up the jdk.jvmstat module to jdk.jvmstat and jdk.jvmstat.rmi to make the basic jvmstat functionality available without requiring dependencies on RMI.
>>
>> The split is pretty straightforward - all the RMI dependent implementation is moved to the new module as well as 'jstatd' implementation.
>>
>> The change requires changes in the makefile (for merging META-INF/services resources from jdk.jvmstat and jdk.jvmstat.rmi) and therefore I am posting this request also to the build-dev mailing list.
In Gensrc-jdk.jvmstat.gmk, please don't copy files into jdk/modules in a 
gensrc file. I understand you used Gensrc-jdk.jdi.gmk as a template for 
this, but that one is special because of jdk.hotspot.agent being built 
in hotspot and imported. The correct behavior of a gensrc make file is 
to just put files in the gensrc dir. The java compilation step will make 
sure things move from gensrc to jdk/modules.

A minor style nit, we tend to not align lists of strings but instead use 
a strict 4 spaces continuation indentation. The reason is that we want 
to avoid spurious whitespace changes on for example variable renaming 
changes. If you still want them aligned, the recommended pattern is:

SERVICE_SRC += \
$(JDK_TOPDIR)/src/jdk.jvmstat/share/classes/META-INF/services/sun.jvmstat.monitor.MonitoredHostService 
\
$(JDK_TOPDIR)/src/jdk.jvmstat.rmi/share/classes/META-INF/services/sun.jvmstat.monitor.MonitoredHostService 
\
     #

For more details, see 
http://openjdk.java.net/groups/build/doc/code-conventions.html
> Can you explain what the makefile is doing? Why do we need to merge these files?
The merging is needed because of the module system not yet being present 
and dealing with service providers with the same name from different 
modules. Currently the runtime will find one of the provider files at 
random and for it to work we need to make sure they contain the same thing.

/Erik
>>
>> Thanks,
>>
>> -JB-




More information about the build-dev mailing list