You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Daniil Kirilyuk (Jira)" <ji...@apache.org> on 2022/09/23 09:40:00 UTC

[jira] [Created] (QPID-8601) [Broker-J] Broker-J instrumentation agent

Daniil Kirilyuk created QPID-8601:
-------------------------------------

             Summary: [Broker-J] Broker-J instrumentation agent
                 Key: QPID-8601
                 URL: https://issues.apache.org/jira/browse/QPID-8601
             Project: Qpid
          Issue Type: Improvement
          Components: Broker-J
    Affects Versions: qpid-java-broker-8.0.6
            Reporter: Daniil Kirilyuk


Broker model objects heavily rely on java reflection. 

Java version 7/8 introduced reflection alternatives allowing to access class fields as well as call class methods. Brief review of those alternatives can be found in this [blog post|https://www.optaplanner.org/blog/2018/01/09/JavaReflectionButMuchFaster.html].

There are further changes coming, e.g. [JEP 416|https://openjdk.org/jeps/416] (implemented in Java 18), having as a goal reimplementation of java.lang.reflect.Method, Constructor, and Field on top of java.lang.invoke method handles. Jackson databind library already has an [issue|https://github.com/FasterXML/jackson-databind/issues/2083] directed to replace reflection calls with method handles. Similar approach is used in [spring data|https://github.com/spring-projects/spring-data-commons/blob/main/src/main/java/org/springframework/data/mapping/model/ClassGeneratingPropertyAccessorFactory.java] framework as well.

We suggest to implement a static instrumentation object, which will replace reflection method invocation with the invocations of static final MethodHandle instances.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org