Github user PhantomYdn commented on the pull request:
https://github.com/apache/wicket/pull/164#issuecomment-217828319
I little bit incorrect conclusions...
Regarding injections: it's possible to do in many interesting way - for
example you can even change passed arguments to a method/constructor. Yes -
there is no annotations to automate injections, but still it's extremely easy
to do. All injectors use the same approach as available for javassist too:
proxies, deep reflection and etc.
And one more point: I wouldn't say that injection is key point for
profiler. Last one should be transparent for application's logic. So profiler
should not change application's fields, arguments and etc. It should be one
level up.
There is not need to compile core classes: we are profiling custom app and
not core. So the main target for instrumenting, should be custom code, but not
core themselves. There is quite thin boundary: if you check my code - it's
dynamically overrides core methods in a custom class. So even pure Page's core
methods can be profiled.
Regarding support of Component's: it's really depends on how IClassResolver
is being used in wicket. If it will allow: it will be a good place for
instrumenting anything from custom app logic.
The following statement is strange, imho:
> We don't want to manipulate or compile classes with a behavior which is
not needed in a system which do not use metrics.
Strange, because AspectJ manipulates/instruments classes with a behavior
which is not needed in a system which do not use metrics. AspectJ and javassist
use the same way to operate: instrumenting of code.
Btw, I have question regarding AspectJ implementation: java agents has
ability to be attached remotely to a working java processes.
http://docs.oracle.com/javase/6/docs/technotes/guides/attach/index.html
Is it a case for AspectJ? If it's a case: using agent become actually a
good pro.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---