In the we moved the new way of assigning/instrumenting special sensors.. However, we need to also to support ability to substitute the parameter value (beside return value).. This is needed asap for the end user monitoring () as we need to change the Response object passed to the servlet/filter..
It's a fairly small work on top of the INSPECTIT-2222.
PR not created yet due to the blocking ticket..
Thanks for the discussion/help..
P.S. Call me the ASM god
As agreed with we will add the afterBody calls also on the exceptions, cause his special sensors need to be informed when method is exited always (not only on normal return). I'll update the code and tests.
SUCCESS: Integrated in
inspectIT - Integration #229
INSPECTIT-2226: Special sensors to be able to substitute parameter (patrice.bouillet: b6d43c41ba4eb581202556dda408614dc5b1a006)
(edit) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/serializer/impl/SerializationManager.java
(edit) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/instrumentation/asm/SpecialMethodInstrumenterTest.java
(edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/instrumentation/asm/SpecialMethodInstrumenter.java
(edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/hooking/IHookDispatcher.java
(edit) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/instrumentation/asm/InstrumentationTestClass.java
(add) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/instrumentation/config/impl/SubstitutionDescriptor.java
(edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/instrumentation/asm/IInstrumenterConstant.java
(edit) inspectit.server/src/main/java/rocks/inspectit/server/instrumentation/config/applier/SpecialInstrumentationApplier.java
(edit) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/instrumentation/asm/AbstractInstrumentationTest.java
(edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/instrumentation/InstrumenterFactory.java
(edit) inspectit.server/src/test/java/rocks/inspectit/server/instrumentation/config/applier/SpecialInstrumentationApplierTest.java
(edit) inspectit.agent.java/src/main/java/rocks/inspectit/agent/java/hooking/ISpecialHook.java
(edit) inspectit.shared.cs/src/main/java/rocks/inspectit/shared/cs/ci/sensor/method/special/impl/ClassLoadingDelegationSensorConfig.java
(edit) inspectit.shared.cs/src/main/java/rocks/inspectit/shared/cs/ci/sensor/method/special/impl/MBeanServerInterceptorSensorConfig.java
(edit) inspectit.agent.java/src/test/java/rocks/inspectit/agent/java/instrumentation/asm/InstrumenterFactoryTest.java
(edit) inspectit.shared.all/src/main/java/rocks/inspectit/shared/all/instrumentation/config/impl/SpecialInstrumentationPoint.java
(edit) inspectit.shared.cs/src/main/java/rocks/inspectit/shared/cs/ci/sensor/method/special/AbstractSpecialMethodSensorConfig.java