RFR: 6725: Formalize agent probe definition XML schema and enforce validations
Kangcheng Xu
kxu at openjdk.java.net
Thu Mar 26 19:10:57 UTC 2020
On Fri, 13 Mar 2020 01:08:06 GMT, Kangcheng Xu <kxu at openjdk.org> wrote:
> This pr implements [JMC-6725: Formalize agent probe definition XML schema and enforce
> validations](https://bugs.openjdk.java.net/browse/JMC-6725). XMLs supplied by users are validated against
> [`jfrprobes_schema.xsd`](https://github.com/tabjy/jmc/blob/a4da862b744f407f3262f006e302515c142e9482/agent/src/main/resources/org/openjdk/jmc/agent/impl/jfrprobes_schema.xsd)
> on registry creation and modification. Notable changes in configuration probes format are:
> - `<parameter>` elements now should be enclosed by a `<parameters>` element, and
> - `<field>` elements now should be enclosed by a `<fields>` element
>
> Type checking is enforced on most elements. Additionally, the following types are restricted with regular expressions
> checking elements' text node contents:
> - `classType` for `<class>` and `<converter>` elements
> - `methodNameType` for `<name>` elements
> - `descriptorType` for `<descriptor>` elements
> - `pathType` for `<path>` elements, and
> - `expressionType` for `<expression>` elements
>
> Please test, especially on regex, as I'm not entirely confident they cover every cases and don't yield false negatives.
This PR back to WIP. After rebasing to resolve conflicts with #63 and #68, the following test fails. I'm looking into
this problem right now.
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.107 s <<< FAILURE! - in
org.openjdk.jmc.agent.test.TestRetrieveCurrentTransforms [ERROR]
testRetrieveCurrentTransforms(org.openjdk.jmc.agent.test.TestRetrieveCurrentTransforms) Time elapsed: 0.076 s <<<
ERROR! java.lang.reflect.UndeclaredThrowableException
at
org.openjdk.jmc.agent.test.TestRetrieveCurrentTransforms.doRetrieveCurrentTransforms(TestRetrieveCurrentTransforms.java:74)
at
org.openjdk.jmc.agent.test.TestRetrieveCurrentTransforms.testRetrieveCurrentTransforms(TestRetrieveCurrentTransforms.java:62)
Caused by: javax.management.InstanceNotFoundException: org.openjdk.jmc.jfr.agent:type=AgentController
at
org.openjdk.jmc.agent.test.TestRetrieveCurrentTransforms.doRetrieveCurrentTransforms(TestRetrieveCurrentTransforms.java:74)
at
org.openjdk.jmc.agent.test.TestRetrieveCurrentTransforms.testRetrieveCurrentTransforms(TestRetrieveCurrentTransforms.java:62)
[INFO]
[INFO] Results:
[INFO]
[ERROR] Errors:
[ERROR] TestRetrieveCurrentTransforms.testRetrieveCurrentTransforms:62->doRetrieveCurrentTransforms:74 »
UndeclaredThrowable [INFO]
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0
-------------
PR: https://git.openjdk.java.net/jmc/pull/66
More information about the jmc-dev
mailing list