{
  "instrumentation": {
    "org.jboss.as.ee": {
      "description": "JBoss AS EE instrumentation",
      "rules": [{
        "ruleName": "EE Component Start",
        "ruleType": "JVM",
        "notes": [
          "Need to exclude 'onMessage' methods as the ordering of the exit was conflicting with the JMS/MDB rules"
        ],
        "className": "org.jboss.as.ee.component.ProxyInvocationHandler",
        "methodName": "invoke",
        "parameterTypes": [
           "Object",
           "Method",
           "Object[]"
        ],
        "location": "ENTRY",
        "condition": "!$2.getName().equals(\"onMessage\")",
        "actions": [{
          "type": "InstrumentComponent",
          "direction": "In",
          "componentTypeExpression": "\"EJB\"",
          "operationExpression": "$2.getName()",
          "uriExpression": "removeAfter(simpleClassName($1),\"$$$\")"
        },{
          "type": "IgnoreNode"
        }]
      },{
        "ruleName": "EE Component End",
        "ruleType": "JVM",
        "notes": [
          "Need to exclude 'onMessage' methods as the ordering of the exit was conflicting with the JMS/MDB rules"
        ],
        "className": "org.jboss.as.ee.component.ProxyInvocationHandler",
        "methodName": "invoke",
        "parameterTypes": [
           "Object",
           "Method",
           "Object[]"
        ],
        "location": "EXIT",
        "condition": "!$2.getName().equals(\"onMessage\")",
        "actions": [{
          "type": "InstrumentComponent",
          "direction": "Out",
          "componentTypeExpression": "\"EJB\"",
          "operationExpression": "$2.getName()",
          "uriExpression": "removeAfter(simpleClassName($1),\"$$$\")"
        }]
      }]
    }
  }
}
