bringing interdyn and invomon to DeltaSpike?

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

bringing interdyn and invomon to DeltaSpike?

Mark Struberg-3
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

Reply | Threaded
Open this post in threaded view
|

Re: bringing interdyn and invomon to DeltaSpike?

Romain Manni-Bucau
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 <[hidden email]>:

> 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
>
>
Reply | Threaded
Open this post in threaded view
|

Re: bringing interdyn and invomon to DeltaSpike?

Gerhard Petracek-2
basically +1 for adding such modules (independent of the details, since we
can improve parts once it's needed).

regards,
gerhard



2018-02-09 10:51 GMT+01:00 Romain Manni-Bucau <[hidden email]>:

> 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 <[hidden email]>:
>
> > 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
> >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: bringing interdyn and invomon to DeltaSpike?

Thomas Andraschko-2
Also suggested dynamic interceptors some years ago - so +1. Just not sure
if properties is the best way.
Maybe we should think about if we should someday introduce something like a
deltaspike xml config. Not sure.

2018-02-09 11:34 GMT+01:00 Gerhard Petracek <[hidden email]>:

> basically +1 for adding such modules (independent of the details, since we
> can improve parts once it's needed).
>
> regards,
> gerhard
>
>
>
> 2018-02-09 10:51 GMT+01:00 Romain Manni-Bucau <[hidden email]>:
>
> > 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 <[hidden email]>:
> >
> > > 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
> > >
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: bringing interdyn and invomon to DeltaSpike?

Gerhard Petracek-2
imo the config should be based on the ds-config-api -> with that the
config-format isn't limited.

regards,
gerhard



2018-02-09 11:48 GMT+01:00 Thomas Andraschko <[hidden email]>:

> Also suggested dynamic interceptors some years ago - so +1. Just not sure
> if properties is the best way.
> Maybe we should think about if we should someday introduce something like a
> deltaspike xml config. Not sure.
>
> 2018-02-09 11:34 GMT+01:00 Gerhard Petracek <[hidden email]>:
>
> > basically +1 for adding such modules (independent of the details, since
> we
> > can improve parts once it's needed).
> >
> > regards,
> > gerhard
> >
> >
> >
> > 2018-02-09 10:51 GMT+01:00 Romain Manni-Bucau <[hidden email]>:
> >
> > > 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 <[hidden email]>:
> > >
> > > > 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
> > > >
> > > >
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: bringing interdyn and invomon to DeltaSpike?

Rudy De Busscher
+1 for adding them.

I use the  interdyn   project regularly

Rudy

On 9 February 2018 at 11:58, Gerhard Petracek <[hidden email]> wrote:

> imo the config should be based on the ds-config-api -> with that the
> config-format isn't limited.
>
> regards,
> gerhard
>
>
>
> 2018-02-09 11:48 GMT+01:00 Thomas Andraschko <[hidden email]
> >:
>
> > Also suggested dynamic interceptors some years ago - so +1. Just not sure
> > if properties is the best way.
> > Maybe we should think about if we should someday introduce something
> like a
> > deltaspike xml config. Not sure.
> >
> > 2018-02-09 11:34 GMT+01:00 Gerhard Petracek <[hidden email]>:
> >
> > > basically +1 for adding such modules (independent of the details, since
> > we
> > > can improve parts once it's needed).
> > >
> > > regards,
> > > gerhard
> > >
> > >
> > >
> > > 2018-02-09 10:51 GMT+01:00 Romain Manni-Bucau <[hidden email]>:
> > >
> > > > 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 <[hidden email]
> >:
> > > >
> > > > > 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
> > > > >
> > > > >
> > > >
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: bringing interdyn and invomon to DeltaSpike?

Jason Porter
+1 for adding them

On Fri, Feb 9, 2018 at 4:09 AM, Rudy De Busscher <[hidden email]>
wrote:

> +1 for adding them.
>
> I use the  interdyn   project regularly
>
> Rudy
>
> On 9 February 2018 at 11:58, Gerhard Petracek <[hidden email]>
> wrote:
>
> > imo the config should be based on the ds-config-api -> with that the
> > config-format isn't limited.
> >
> > regards,
> > gerhard
> >
> >
> >
> > 2018-02-09 11:48 GMT+01:00 Thomas Andraschko <
> [hidden email]
> > >:
> >
> > > Also suggested dynamic interceptors some years ago - so +1. Just not
> sure
> > > if properties is the best way.
> > > Maybe we should think about if we should someday introduce something
> > like a
> > > deltaspike xml config. Not sure.
> > >
> > > 2018-02-09 11:34 GMT+01:00 Gerhard Petracek <[hidden email]>:
> > >
> > > > basically +1 for adding such modules (independent of the details,
> since
> > > we
> > > > can improve parts once it's needed).
> > > >
> > > > regards,
> > > > gerhard
> > > >
> > > >
> > > >
> > > > 2018-02-09 10:51 GMT+01:00 Romain Manni-Bucau <[hidden email]
> >:
> > > >
> > > > > 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 <[hidden email]
> > >:
> > > > >
> > > > > > 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
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>



--
Jason Porter
http://en.gravatar.com/lightguardjp
Reply | Threaded
Open this post in threaded view
|

Re: bringing interdyn and invomon to DeltaSpike?

Christian Kaltepoth
+1 for integrating interdyn.

Am 09.02.2018 19:15 schrieb "Jason Porter" <[hidden email]>:

> +1 for adding them
>
> On Fri, Feb 9, 2018 at 4:09 AM, Rudy De Busscher <[hidden email]>
> wrote:
>
> > +1 for adding them.
> >
> > I use the  interdyn   project regularly
> >
> > Rudy
> >
> > On 9 February 2018 at 11:58, Gerhard Petracek <[hidden email]>
> > wrote:
> >
> > > imo the config should be based on the ds-config-api -> with that the
> > > config-format isn't limited.
> > >
> > > regards,
> > > gerhard
> > >
> > >
> > >
> > > 2018-02-09 11:48 GMT+01:00 Thomas Andraschko <
> > [hidden email]
> > > >:
> > >
> > > > Also suggested dynamic interceptors some years ago - so +1. Just not
> > sure
> > > > if properties is the best way.
> > > > Maybe we should think about if we should someday introduce something
> > > like a
> > > > deltaspike xml config. Not sure.
> > > >
> > > > 2018-02-09 11:34 GMT+01:00 Gerhard Petracek <[hidden email]>:
> > > >
> > > > > basically +1 for adding such modules (independent of the details,
> > since
> > > > we
> > > > > can improve parts once it's needed).
> > > > >
> > > > > regards,
> > > > > gerhard
> > > > >
> > > > >
> > > > >
> > > > > 2018-02-09 10:51 GMT+01:00 Romain Manni-Bucau <
> [hidden email]
> > >:
> > > > >
> > > > > > 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
> <[hidden email]
> > > >:
> > > > > >
> > > > > > > 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
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
>
>
> --
> Jason Porter
> http://en.gravatar.com/lightguardjp
>