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