The explanation is given in the informational JEP: https://openjdk.org/jeps/8305968
The problem is not any superpowered functionality, but superpowered functionality that isn’t explicitly allowed by the application and used by libraries without the application’s explicit consent. Both the -javaagent flag and and the -XX:+EnableDynamicAgentLoading flag provide such explicit consent. Code weaving — good; code weaving *without the application’s consent* — bad. The goal is not integrity forced on all but *integrity by default*, which means that any encapsulation-breaking capability must be acknowledged by the application so it is possible to know the map of the enforced invariants in the code. — Ron > On 18 May 2023, at 21:09, Kirk Pepperdine <kirk.pepperd...@gmail.com> wrote: > > Hi Ron, > > Thanks for the reply. The way I see this is that we have functionality that > can be accessed either via a dynamic attach pathway and a direct attach > pathway. What I’m trying to reconcile is how shutting down the dynamic attach > pathway helps with code integrity given that I can use the direct attach > pathway to do the same things. The only conclusion I can come to is that the > functionality offered by java.lang.instrument.Instrumentation is going away > without a suitable replacement. And that is going to impact observability. > Now I know that the JEPs state that they don’t want to impact observability > but then observability makes use of byte code weaving and that feels like it > is at odds with the code integrity goal. I ask, is there a way to allow for > injected observability that still offers the code integrality your looking > for? And if so, wouldn’t it behove us to offer a suitable replacement prior > to removing it from Instrumentation? > > As for LTS, I believe it’s been discussed here that we, as engineers, need to > account that customers view and treat the LTS releases differently and as > such, so should we. > > Kind regards, > Kirk > > > >> On May 18, 2023, at 11:43 AM, Ron Pressler <ron.press...@oracle.com> wrote: >> >> You will be able to perform dynamic attach even without the flag (the flag >> is *not* required for dynamic attach, only for using dynamic attach to load >> agents). With the flag, your dynamic attach will be able load an agent into >> the target VM. >> >> BTW, LTS is something that’s governed by Oracle Sales or some such business >> side thing that has not much to do with OpenJDK, and they can choose to have >> Oracle offer an LTS service for any version they like based on their >> business considerations. So to know what the next LTS offering is you’ll >> need to see what the sales’ team plan is. I believe they’ve said they want >> Oracle to offer LTS every two years, so if they stick to that plan it will >> be four releases after 21. >> >> — Ron >> >>> On 18 May 2023, at 18:37, Kirk Pepperdine <kirk.pepperd...@gmail.com> wrote: >>> >>> Hi All, >>> >>> With this change, will I be able to perform a dynamic attach if I opt in >>> using the command line switch in JDK 25 (which I believe is the next LTS). >>> >>> >>> Kind regards, >>> Kirk >>> >>>> On May 18, 2023, at 9:31 AM, Ron Pressler <ron.press...@oracle.com> wrote: >>>> >>>> First, you will need to accept that no one is as invested in the user >>>> experience of the Java ecosystem as a whole as much as OpenJDK’s >>>> maintainers, and no one is as incentivised to work toward its continued >>>> success. If you don’t believe it, you will still need to accept it >>>> axiomatically if you wish to participate in constructive discussions on >>>> the OpenJtrDK mailing lists. >>>> >>>> Now, nothing can impact Java’s direction more than user reports about >>>> problems they’re experiencing. We then talk to them try to understand the >>>> core of the problem and try to fix it at the right place. What you’ve done >>>> is not reported a problem but said that you know of others that may >>>> experience problems for unspecified reasons. That is not what we mean by >>>> user reports, and I hope you can see how unhelpful it is from the >>>> perspective of product management. If we don’t know why people do things, >>>> there is simply no way for us to address the issues they experience. >>>> Similarly, when asked for reports about common uses for dynamically >>>> attached agents (that cannot be loaded at startup), saying “there are >>>> people who need to dynamically attach an agent” is also unhelpful. We are >>>> obviously aware that the need is not zero, and such a statement doesn’t >>>> help us in any way asses the frequency or severity of the issue. >>>> >>>> Given that people who cannot control the command line and yet wish to >>>> deploy the most sophisticated Java applications on the newest releases are >>>> in for a world of pain regardless of this JEP, you can help us help them >>>> by getting them to talk to us and explain their experience. We very much >>>> want to help them, but we cannot solve a problem if we don’t know what it >>>> is. >>>> >>>> — Ron >>>> >>>>> On 18 May 2023, at 16:49, Jack Shirazi <ja...@fasterj.com> wrote: >>>>> >>>>> You asked for reports of common uses of dynamically loaded agents for >>>>> serviceability and difficulties setting a flag. I have provided several. >>>>> You have ignored most of the examples, and categorized the remainder as >>>>> "incorrect uses of Java" (by which I assume you mean incorrect uses of >>>>> JVMs), as if you are the judge of what is correct and incorrect rather >>>>> than business priorities. >>>>> >>>>> As a sponsor of the JEP you have a built-in incentive to simply ignore >>>>> and dismiss objections, and I'm seeing that applied here. That's not >>>>> really acceptable. I'm sure you have the technical ability to proceed to >>>>> force through an unpopular JEP while ignoring objections. That seems >>>>> unwise, but that's up to you >>>>> >>>>> >>>>> On 18/05/2023 16:27, Ron Pressler wrote: >>>>>> It is simply untenable to accommodate many incorrect uses of Java on top >>>>>> of the correct ones, and, for example, allowing the dynamic loading of >>>>>> agents but disallowing loading them at startup is an incorrect use of >>>>>> Java. The solution to people using Java incorrectly is to educate them — >>>>>> which this JEP will hopefully help do — not to punish those who use Java >>>>>> correctly. >>>>>> >>>>>> Similarly, given the number of command line options that are added in >>>>>> each release, those who feel they have a need to choose what subset of >>>>>> them they allow, must be committed to review and amend their allowed >>>>>> options for each release. >>>>>> >>>>>> Those who actually do the kind of things mentioned in the two previous >>>>>> paragraphs are invited to discuss them with us. But while I understand >>>>>> that you are personally particularly interested in agents, the people I >>>>>> mentioned in the previous two paragraphs will have been affected by >>>>>> other JEPs more than by this one, so I think this JEP is too small and >>>>>> too niche to discuss the importance that the command line has had for >>>>>> Java applications in the last five years. Maybe when the informational >>>>>> JEP is accepted it could serve as a basis for discussion/user education. >>>>>> >>>>>> — Ron >>>>>> >>>>>>> On 18 May 2023, at 15:30, Jack Shirazi <ja...@fasterj.com> wrote: >>>>>>> >>>>>>> That's a strange analysis, two out of the six examples of well known >>>>>>> real world applications, systems and platforms has that claim. And >>>>>>> these are well known. I'm not sure where most of your comments come >>>>>>> from, but let me assume this isn't just a blanket dismissal because >>>>>>> you're the JEP sponsor and so incentivized to do that. >>>>>>> >>>>>>> - All the scenarios are well known real world ones. If you don't know >>>>>>> about them, ask the community. >>>>>>> >>>>>>> - The business processing platforms, as I said "can only configure the >>>>>>> application and any JVM parameters that have been explicitly exported >>>>>>> by the 3rd party" do indeed allow the heap size to adjusted, because >>>>>>> they explicitly make that parameter configurable - in the application >>>>>>> properties. That's pretty common. Most startup scripts for most JVM >>>>>>> applications out there choose a set of JVM parameters that are >>>>>>> independently configurable via properties/variables/options without >>>>>>> explictly setting the JVM command-line. That's the most common way to >>>>>>> start JVMs! I'm not making the claim that all these can't change the >>>>>>> command line, just explaining how some specific chosen parameters can >>>>>>> be set but not the whole command line, as you don't seem to be aware of >>>>>>> that very common practice. So yes, this is not only viable but common. >>>>>>> The applications/systems/platforms that restrict access to changing the >>>>>>> startup scripts are a subset. They do so for their own reasons. >>>>>>> >>>>>>> - I fail to see how a new release matters here. The business model is >>>>>>> what drives this, not your assumptions. >>>>>>> >>>>>>> - You seem to have mis-categorized all the scenarios as being of one >>>>>>> type, which they most certainly are not. >>>>>>> >>>>>>> >>>>>>> On 16/05/2023 18:22, Ron Pressler wrote: >>>>>>>> At the core of your arguments is the claim — that we’ve heard told >>>>>>>> second-hand but rarely if ever reported first-hand — that the >>>>>>>> inability to control the command line is common. This claim is very >>>>>>>> important because its implications go well beyond the relatively niche >>>>>>>> issue of dynamically loaded agents, so I think it merits further >>>>>>>> discussion4. Certainly since the discontinuation of the centralised >>>>>>>> JRE deployment model in JDK 11, it’s been a deep assumption of Java’s >>>>>>>> design that deploying a Java application requires control of the >>>>>>>> command line. If you cannot control the command line, there are things >>>>>>>> you simply cannot do, including much more basic things than loading >>>>>>>> agents. If your application needs APM, surely it also needs control >>>>>>>> over the heap and GC with potentially new options. >>>>>>>> >>>>>>>> Those who restrict access to the command line will need to explain >>>>>>>> their constraints because that approach is already not viable. >>>>>>>> Deploying a Java application, certainly one that supports >>>>>>>> super-advanced uses such as the dynamic loading of agents for code >>>>>>>> manipulation, without control of the command line is not a model that >>>>>>>> the platform has supported for a while. Java’s deployment model >>>>>>>> changed some years ago, and policies that applied to the retired model >>>>>>>> do not apply for the new one and have to change (again, nothing to do >>>>>>>> with agents). >>>>>>>> >>>>>>>> Since we’re talking about changes that only take place in new releases >>>>>>>> anyway, I find the notion that adding a command line flag is harder >>>>>>>> than adopting a new runtime version to be somewhat suspect, but if >>>>>>>> there’s a good reason for that, someone will need to present it. >>>>>>>> >>>>>>>> A service vendor that wishes to allow a Java program to use a new >>>>>>>> runtime and to create a child process that injects a native library >>>>>>>> into the parent process will need to explain why they cannot also >>>>>>>> allow that program to set command line flags. If you want to support >>>>>>>> JDK 11 and upward to enjoy new features and performance enhancements, >>>>>>>> you need to also support the changes to the deployment model that >>>>>>>> accompany these new developments. >>>>>>>> >>>>>>>> — Ron >>>>>>>> >>>>>>>>> On 16 May 2023, at 13:36, Jack Shirazi <ja...@fasterj.com> wrote: >>>>>>>>> >>>>>>>>> Here I refer to anyone who is operating the JVM as a customer. >>>>>>>>> Scenarios where this JEP will (when moved from deprecation to fully >>>>>>>>> applied) onerously adversely impact customers include: >>>>>>>>> >>>>>>>>> 1. Most obviously, those customers who have running JVMs, decide they >>>>>>>>> want to add an observability agent, but are unaware of the >>>>>>>>> DisableAttachMechanism JVM option - most operators are unaware of the >>>>>>>>> majority of JVM options. These customers would only be able to add >>>>>>>>> observability agents after >>>>>>>>> 1a. investigating why the attach is failing >>>>>>>>> 1b. resetting their command-line >>>>>>>>> 1c. waiting until they can restart >>>>>>>>> These customers would normally be able to immediately gain APM data, >>>>>>>>> and troubleshoot an existing running JVM when it has a problem, by >>>>>>>>> attaching an agent. The requirement to reset the command-line would >>>>>>>>> mean that future invocations would be observable and can use an agent >>>>>>>>> for troubleshooting, but often the choice to apply a troubleshooting >>>>>>>>> agent is their first encounter with agent technology - in other words >>>>>>>>> the first time they need it, they can't use it. It's hardly ideal to >>>>>>>>> insist that only sophisticated or experienced customers can use agent >>>>>>>>> troubleshooting technologies >>>>>>>>> >>>>>>>>> 2. Many customers have a long process between proposing command-line >>>>>>>>> changes and allowing them to be applied in production (including >>>>>>>>> changes via environment variables). Allowing an agent to be attached >>>>>>>>> provides immediate capability until that process is complete. The >>>>>>>>> same long process means there is no prospect of switching on remote >>>>>>>>> agent attachment without that same process being followed. These >>>>>>>>> customers currently accept agent attachment before the changes have >>>>>>>>> been passed as the technology is proven, robust and typically they >>>>>>>>> use an agent from a vendor that guarantees (and with support >>>>>>>>> contract) that it is valid to attach the agent to a production JVM >>>>>>>>> >>>>>>>>> 3. There are types of customers who run 3rd party JVM applications >>>>>>>>> that they configure - but they can only configure the application and >>>>>>>>> any JVM parameters that have been explicitly exported by the 3rd >>>>>>>>> party. (This is very common for bought-in business processing >>>>>>>>> applications). Changes to the JVM command-line are rarely allowed in >>>>>>>>> this scenario (it violates the contract). Typically if the customer >>>>>>>>> wants a change they make an enhancement request and even where these >>>>>>>>> are prioritized, they often have to pay more for the changes so they >>>>>>>>> are reluctant to make requests that are not directly business >>>>>>>>> enhancing. Currently these types of customers can attach APM agents >>>>>>>>> with no issue, providing excellent observability in to the request >>>>>>>>> flow in the system to identify problems. These customers will be >>>>>>>>> disadvantaged >>>>>>>>> >>>>>>>>> 4. In complete opposition to the whole thrust of the JEP, I've seen >>>>>>>>> customers who will not allow agents attached via the command-line but >>>>>>>>> will allow them if started by a Java library. Go figure. It's not >>>>>>>>> logical but that's our industry for you. This is the case for several >>>>>>>>> managed platforms (where the developer does not have direct access to >>>>>>>>> JVM environment variables and arguments), and also where the person >>>>>>>>> in charge of the deployment delegates the responsibility of agents to >>>>>>>>> the dev team, who need to do this programmatically. Perhaps these >>>>>>>>> customers/platforms will accept adding the flipped option to the >>>>>>>>> command-line, perhaps not or perhaps only after finding that they now >>>>>>>>> have an agent attachment issue - in any case it imposes additional >>>>>>>>> process to something that works well at the moment >>>>>>>>> >>>>>>>>> 5. Injecting agents to containers running JVMs is a minefield. >>>>>>>>> Attachment via a script after startup is often easier. Changing the >>>>>>>>> command-line involves setting the JAVA_TOOL_OPTIONS environment >>>>>>>>> variable before starting the container, but if the container already >>>>>>>>> uses that variable then the conflict usually causes loss of one or >>>>>>>>> the other setting, so it doesn't work in that case. >>>>>>>>> >>>>>>>>> 6. For k8s, using JAVA_TOOL_OPTIONS is currently the preferred >>>>>>>>> mechanism (eg via mutating webhooks) and works well so this JEP >>>>>>>>> shouldn't matter. But there are cases where that doesn't work (eg per >>>>>>>>> container conflicts as above; or where security roles restrict this; >>>>>>>>> etc) and in those the only alternative is to attach to the pod and >>>>>>>>> attach the agent . This would require rebuilding images (either with >>>>>>>>> the -XX:-DisableAttachMechanism option or with -javaagent/agentlib). >>>>>>>>> Of course the observability community will attempt to pre-empt the >>>>>>>>> problem by telling everyone to build their images with >>>>>>>>> -XX:-DisableAttachMechanism - but that already points to the JEP >>>>>>>>> being an anti-pattern >>>>>>>>> >>>>>>>>> >>>>>>>>> On 12/05/2023 19:28, Ron Pressler wrote: >>>>>>>>>> (Moving to the appropriate mailing lists for the discussion of this >>>>>>>>>> JEP) >>>>>>>>>> >>>>>>>>>> We want reports of common uses of dynamically loaded agents for >>>>>>>>>> serviceability and difficulties setting a flag. Our judgment will >>>>>>>>>> sway if we learn that the use of dynamically loaded agents for >>>>>>>>>> serviceability is very common and that setting a command line flag >>>>>>>>>> is onerous. Such reports of “I use dynamically loaded agents for X >>>>>>>>>> and it’s hard for me to set a flag because Y” should be made here, >>>>>>>>>> i.e. jigsaw-...@openjdk.org, serviceability-dev@openjdk.org. >>>>>>>>>> >>>>>>>>>> Saying “I don’t like this (because I can think of cases where it may >>>>>>>>>> inconvenience me a little)” is not a report of a problem. A JDK >>>>>>>>>> feature that is disliked by only 1% of users will still be disliked >>>>>>>>>> by tens of thousands of people, and pretty much every JDK feature or >>>>>>>>>> lack of a feature is disliked by some Java developers; some features >>>>>>>>>> even inconvenience some minority of users. By physical necessity we >>>>>>>>>> sometimes inconvenience some users because users have contradictory >>>>>>>>>> requirements. What we’re trying to estimate is just *how much* of an >>>>>>>>>> inconvenience will be caused by feature X or the lack of X when >>>>>>>>>> integrated over the entire ecosystem. >>>>>>>>>> >>>>>>>>>> — Ron >>>>>>>>>> >>>>>>>>>>> On 12 May 2023, at 12:37, Jack Shirazi <ja...@fasterj.com> wrote: >>>>>>>>>>> >>>>>>>>>>> Thanks, this is going in circles. You want reports, I'm fine with >>>>>>>>>>> that, I will provide a report. But my one report is not going to be >>>>>>>>>>> sufficient to move your judgement. So I'll ask once again where >>>>>>>>>>> should further such reports go, and at what point does your >>>>>>>>>>> judgement sway? >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On 12/05/2023 16:46, Ron Pressler wrote: >>>>>>>>>>>> Let’s start with you describing the particular use-cases of >>>>>>>>>>>> dynamically loaded agents that you’re concerned about and why you >>>>>>>>>>>> think a command-line flag to enable the functionality is onerous. >>>>>>>>>>>> In other words, describe the nature and severity of a *problem*. >>>>>>>>>>>> Remember that the goal of JDK maintainers is to serve the >>>>>>>>>>>> ecosystem as a whole, which means accommodating the conflicting >>>>>>>>>>>> desires by different classes of users. Because different people’s >>>>>>>>>>>> requirements are sometimes in contradiction with one another, we >>>>>>>>>>>> need to make a judgment. As JEP 451 says, this judgment is based >>>>>>>>>>>> on the assumptions that: 1. The need for dynamically loaded agent >>>>>>>>>>>> is not very common, and 2. When needed, adding a flag is not >>>>>>>>>>>> onerous. >>>>>>>>>>>> >>>>>>>>>>>> Stating you don’t like a policy that’s been discussed for roughly >>>>>>>>>>>> a decade and started to be put into effect five years ago is not >>>>>>>>>>>> enough. However, if you have questions regarding the informational >>>>>>>>>>>> JEP that attempts to summarise past discussions >>>>>>>>>>>> (https://openjdk.org/jeps/8305968) I’ll gladly try and answer them. >>>>>>>>>>>> >>>>>>>>>>>> — Ron >>>>>>>>>>>> >>>>>>>>>>>>> On 12 May 2023, at 10:05, Jack Shirazi <ja...@fasterj.com> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>>> Integrity must be opt out, and cannot be opt in, and so opting >>>>>>>>>>>>>> in is not a solution that will give us integrity*by default*. >>>>>>>>>>>>>> Seehttps://openjdk.org/jeps/8305968#Strong-Encapsulation-by-Default >>>>>>>>>>>>> This is an opinion, not a statement of fact. It needs to be >>>>>>>>>>>>> justified, not assumed. Integrity is a goal, and there is a >>>>>>>>>>>>> balance between what is useful and what can be limited. For full >>>>>>>>>>>>> integrity, don't use the JVM at all. I for one prefer to continue >>>>>>>>>>>>> using it. >>>>>>>>>>>>> >>>>>>>>>>>>>> The only information of relevance would be reports showing that >>>>>>>>>>>>>> dynamically loading agents are a commonly-needed functionality >>>>>>>>>>>>>> and that adding a command-line option to allow it is onerous. >>>>>>>>>>>>> I'm fine with that. I'm reporting exactly that here. I encourage >>>>>>>>>>>>> others interested in this to also report that. I'll mention it in >>>>>>>>>>>>> my next newsletter - where do you want the reports sent? My >>>>>>>>>>>>> readers won't want to signup to this email list just to send a >>>>>>>>>>>>> comment. At what point does the reporting mean the JEP is dropped? >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On 12/05/2023 14:44, Ron Pressler wrote: >>>>>>>>>>>>>>> On 12 May 2023, at 05:26, Jack Shirazi <ja...@fasterj.com> >>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Thank you for your reply. This makes it clear that the JEP has >>>>>>>>>>>>>>> a single specific tradeoff. So we have two capabilities at >>>>>>>>>>>>>>> issue here >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> A) Currently libraries can turn themselves into agents >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> B) Currently agents can remotely attach >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> The JEP has decided for the community that each of these are a >>>>>>>>>>>>>>> bad thing and should be disabled by default (though enableable >>>>>>>>>>>>>>> by setting an option). >>>>>>>>>>>>>> No, the JEP says: >>>>>>>>>>>>>> >>>>>>>>>>>>>> "To assure integrity, we need stronger measures to prevent the >>>>>>>>>>>>>> misuse by libraries of dynamically loaded agents. Unfortunately, >>>>>>>>>>>>>> we have not found a simple and automatic way to distinguish >>>>>>>>>>>>>> between a serviceability tool that dynamically loads an agent >>>>>>>>>>>>>> and a library that dynamically loads an agent.” >>>>>>>>>>>>>> >>>>>>>>>>>>>> The only problem is libraries, but because there’s no simple way >>>>>>>>>>>>>> to distinguish between the two, and because dynamically loaded >>>>>>>>>>>>>> agents are not needed in most serviceability uses, disabling >>>>>>>>>>>>>> them by default is reasonable. BTW, this was already decided in >>>>>>>>>>>>>> 2017 in JEP 261: https://openjdk.org/jeps/261 >>>>>>>>>>>>>> >>>>>>>>>>>>>> As the JEP also says, in the future we may be able to >>>>>>>>>>>>>> distinguish between tools and libraries via a more complex >>>>>>>>>>>>>> mechanism that could allow tools to load agents dynamically >>>>>>>>>>>>>> without the flag. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>>> My involvement in community discussions over the years has been >>>>>>>>>>>>>>> that no one complains about (A), it has not been used >>>>>>>>>>>>>>> maliciously, and there is a small niche who use it. (B) is used >>>>>>>>>>>>>>> quite a lot and enhances JVM serviceability with a capability >>>>>>>>>>>>>>> that is a clear advantage over other runtimes. It seems a shame >>>>>>>>>>>>>>> to eliminate that competitive advantage. >>>>>>>>>>>>>> Malicious use is not a concern *at all*. What this JEP addresses >>>>>>>>>>>>>> is integrity by default. See https://openjdk.org/jeps/8305968 >>>>>>>>>>>>>> >>>>>>>>>>>>>>> The JEP clearly points out that anyone concerned by these can >>>>>>>>>>>>>>> disable the ability with a simple command-line option, so there >>>>>>>>>>>>>>> is a simple solution for this minority. >>>>>>>>>>>>>> Integrity must be opt out, and cannot be opt in, and so opting >>>>>>>>>>>>>> in is not a solution that will give us integrity *by default*. >>>>>>>>>>>>>> See >>>>>>>>>>>>>> https://openjdk.org/jeps/8305968#Strong-Encapsulation-by-Default >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>>> The fundamental error is really that the attaching agent is >>>>>>>>>>>>>>> read-write rather than read-only. If we could change that, it >>>>>>>>>>>>>>> would be ideal, but sadly I don't think that's easily doable. >>>>>>>>>>>>>> Perhaps, but most uses of dynamically loaded agents (and nearly >>>>>>>>>>>>>> all uses of dynamically loaded *Java* agents) are for “write.” >>>>>>>>>>>>>> The most common use-case for “read-only” is dynamically attached >>>>>>>>>>>>>> advanced profilers that use JVM TI. The solution there, as the >>>>>>>>>>>>>> JEP says, is not to separate agent capabilities but to improve >>>>>>>>>>>>>> JFR’s capabilities — which do not require an agent at all — and >>>>>>>>>>>>>> JFR can obtain profiles far more efficiently than anything JVM >>>>>>>>>>>>>> TI could ever hope to achieve. >>>>>>>>>>>>>> >>>>>>>>>>>>>>> I and many in the monitoring community believe this JEP is NOT >>>>>>>>>>>>>>> an enhancement to the JDK. The proposers believe it is. Is >>>>>>>>>>>>>>> there a mechanism other than this email discussion list to gain >>>>>>>>>>>>>>> wider community feedback so we can ascertain if there is really >>>>>>>>>>>>>>> a strong community preference either way? >>>>>>>>>>>>>>> >>>>>>>>>>>>>> The only information of relevance would be reports showing that >>>>>>>>>>>>>> dynamically loading agents are a commonly-needed functionality >>>>>>>>>>>>>> and that adding a command-line option to allow it is onerous. >>>>>>>>>>>>>> >>>>>>>>>>>>>> — Ron >>>> >>> >> >