Hi Mark I like interdync and it is a generic fit but invomon is a bit limited in current flavor and I would be tempted to say we can just inherit from the related sirona part of code if we want to go this way.
Romain Manni-Bucau @rmannibucau <https://twitter.com/rmannibucau> | Blog <https://rmannibucau.metawerx.net/> | Old Blog <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> | LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book <https://www.packtpub.com/application-development/java-ee-8-high-performance> 2018-02-09 10:49 GMT+01:00 Mark Struberg <strub...@yahoo.de.invalid>: > Hi folks! > > Some of you might know my interdyn + invomon projects [1]. > > For the others, what are they about? > > interdyn is a dynamic interceptor binding Extension. > It allows to declare a regexp pattern and a class name of an Interceptor > annotation. > It then applies this annotation to all the classes which map the regexp. > Of course you can define multiple rules. > > rule.1.match=.*ServiceImpl > rule.1.interceptor=net.struberg.devtools.cdi.invomon.InvocationMonitored > > The other part is exactly that @InvocationMonitored interceptor. > > It logs the most expensive methods and classes after each request. > The output looks like the following: > > 2011-03-19 12:36:27,291 [2046767960@qtp-1243908618-9] INFO > invomon.InvocationResultLogger Top Class Invocations: > count: 51 net.struberg.myproject.core.be.semester. > SemesterRemoteServiceImpl > count: 21 net.struberg.myproject.core.be.security.service. > SecurityServiceImpl > count: 5 net.struberg.myproject.util.be.config.ConfigServiceImpl > count: 2 net.struberg.myproject.course.be.CourseServiceImpl > count: 1 net.struberg.myproject.events.be.EventServiceImpl > count: 1 net.struberg.myproject.core.be.persons. > PersonRemoteServiceImpl > count: 1 net.struberg.myproject.course.be.LecturerServiceImpl > count: 1 net.struberg.myproject.events.be.EventRemoteServiceImpl > > 2011-03-19 12:36:27,292 [2046767960@qtp-1243908618-9] INFO > invomon.InvocationResultLogger Top Method Invocations: > dur[ms]: 442.48096 count: 1 net.struberg.myproject.course. > be.CourseServiceImpl#deleteCourse > dur[ms]: 349.34717 count: 1 net.struberg.myproject.course. > be.CourseServiceImpl#getByFilter > dur[ms]: 104.53423 count: 1 net.struberg.myproject.events. > be.EventRemoteServiceImpl#getEvent > dur[ms]: 100.43162 count: 1 net.struberg.myproject.events. > be.EventServiceImpl#getEvent > dur[ms]: 24.677048 count: 1 net.struberg.myproject.course. > be.LecturerServiceImpl#getEmployeeIdsInvolvedInOrgUnitCourses > dur[ms]: 1.596834 count: 1 net.struberg.myproject.core. > be.persons.PersonRemoteServiceImpl#getByEmployeeIdList > dur[ms]: 0.892522 count: 51 net.struberg.myproject.core. > be.semester.SemesterRemoteServiceImpl#getCorrespondingSemesterCode > dur[ms]: 0.288455 count: 5 net.struberg.myproject.util. > be.config.ConfigServiceImpl#getStringProperty > dur[ms]: 0.248038 count: 3 net.struberg.myproject.core. > be.security.service.SecurityServiceImpl#isGranted > dur[ms]: 0.203102 count: 18 net.struberg.myproject.core. > be.security.service.SecurityServiceImpl#isAuthenticated > > > The initial version requires an own property file. But of course all this > configuration could also be provided via DS-config. > > wdyt? > Worth moving over to DeltaSpike? > > LieGrue, > strub > > > > [1] https://github.com/struberg/interdyn > >