[ 
https://issues.apache.org/jira/browse/SLING-6702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15939032#comment-15939032
 ] 

Felix Meschberger commented on SLING-6702:
------------------------------------------

I appreciate the idea and I agree it makes a lot of sense.

But the current implementation has a hidden fragility: If the MetricsService is 
unregistered, the MetricsService object handed out will be invalid and cause 
secondary exceptions when recording metrics through it. This is because the 
consumer of the MetricsService object has no knowledge about the service being 
unregistered and the object invalid.

Maybe a wrapper implementation hiding this in the background and automatically 
rewiring when the service comes back, might help.

(and no, please don't add a "MetricsService.isValid" method ;-) )

> Make MetricsService accessible as easily as a Logger
> ----------------------------------------------------
>
>                 Key: SLING-6702
>                 URL: https://issues.apache.org/jira/browse/SLING-6702
>             Project: Sling
>          Issue Type: Improvement
>          Components: Extensions
>    Affects Versions: Commons Metrics 1.2.0
>            Reporter: Bertrand Delacretaz
>            Assignee: Bertrand Delacretaz
>            Priority: Minor
>             Fix For: Commons Metrics 1.2.2
>
>
> Metrics are useful in all classes, not only OSGi components, so getting the 
> {{MetricsService}} should be as useful as getting a {{Logger}} for example.
> I'll add a public {{MetricsServiceFactory}} class to our metrics module, 
> usable like
> {code}
>   MetricsService ms = 
> MetricsServiceFactory.getMetricsService(this.getClass());
> {code}
> There's already a private {{MetricsServiceFactory}} class in that module, 
> I'll rename that to {{InternalMetricsServiceFactory}} to avoid confusion.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to