Hi Alan, I understand your current time constraint, I still want to point out that this is a heavily used functionality and it not being available would cause problems in basically all production environments I am aware of where the lack of this API is not uncovered before running the application in some production or production-like environment. And while JVMTI might be optional in the spec, this is not how it is treated in practice. Therefore, I want to make this point against not having JVMTI available on the default jlink image but rather to include it by default. This can always change in a future version when this issue is better understood. As said, while it is not used by many people, a large number of Java users rely on it for their and third party application as basically any Java tooling is built around this. I just verified that this would be an issue for my current client where a lack of JVMTI would result in an infinite restart loop. Best regards, Rafael
2017-05-19 12:24 GMT+02:00 Alan Bateman <alan.bate...@oracle.com>: > On 19/05/2017 10:20, Rafael Winterhalter wrote: > > : >> >> It is the exact purpose of a Java agent to allow the enhancement of a >> Java application that is independent of a particular Java process. >> Therefore, it should not be a decission bound to the creation or bundeling >> of the Java application if such user-site monitoring is required. Instead, >> it should always be possible to attach a Java agent for a standalone Java >> process. Also, I cannot find any comment about the Java agent functionality >> to be optional despite the mentioned change set: >> https://docs.oracle.com/javase/8/docs/api/java/lang/instrume >> nt/package-summary.html - Neither would anybody using the functionality >> expect it to be optional. I work with agents everyday and this is the first >> time I hear it. >> >> I don't have time to debate this topic just now but just on optionally, > the tool interfaces have always been optional. It might need digging to > find all the history but as I recall, in 2004 the then in-progress JSR-163 > spec was clarified to make the optionality clear. This is why the JVM TI > spec has the statement "JVM TI may not be available in all implementations > of the JavaTM virtual machine". The wording in the java.lang.instrument > package description wasn't as clear, something that came to light when > shaking out the details of Compact Profiles for Java SE 8. This lead to a > small clarification [1] that I mentioned. > > -Alan. > > [1] http://hg.openjdk.java.net/jdk8/jdk8/jdk/rev/4a4b97f7f83b >