[ https://issues.apache.org/jira/browse/SLING-3278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13852998#comment-13852998 ]
Georg Henzler commented on SLING-3278: -------------------------------------- Re Fluent API as well as "The class name is implementation detail, no one knows it": I think we have a disconnect in how we think the health check executor could/should be used. I think implementation projects really only want to be able to add checks and run them via web console or JMX, they would never want to execute the checks in a custom fashion other than configuring timeouts or restricting it to certain tags (also see mailing list post). @Carsten / 1): I think you need the run(hc-class) mainly for the JMX module: Don't you have access to the classname via the property component.name there? The problem with the name is that it may contain spaces and therefore is not really a nice id for using it as a parameter? 2) The ExecutionResult is a good idea - that way all timing data can go there. Also, Execution Result should be an interface and ExecutionResultImpl can be hidden in the impl.executor package - that way ExecutionResultImpl does not have to be immutable and the timing data can be collected correctly (also solving Bertrands concerns). 3) If we create the interface ExecutionResult, we can hide the existence of the HealthCheckDescriptor and move it to impl.executor. The field serviceReference can be marked transient and is therefore be taken out from Serialization (if that really ever is needed, I think probably not) > Provide a HealthCheckExecutor service > ------------------------------------- > > Key: SLING-3278 > URL: https://issues.apache.org/jira/browse/SLING-3278 > Project: Sling > Issue Type: New Feature > Components: Health Check > Reporter: Georg Henzler > Assignee: Georg Henzler > Attachments: SLING-3278-bertrand.patch, > SLING-3278-hc.core-HealthCheckExecutorService-2013-12-19.patch, > SLING-3278-hc.webconsole-2013-12-19.patch, hc-it.patch > > > Goals: > * Be able to get an overall (aggregated) result as quickly as possible > (ideally <2sec) > * Whenever possible, return most current results (e.g. for a memory check) > * Provide a declarative way for async checks (async checks should be the > exception though) > Approach > * Run checks in parallel > * Make sure long running (or even stuck) checks are timed out > * If a health check must run asynchronously (because its execution time > cannot be optimized), it should be enough to just specify a service property > (e.g. "hc.async"). > See also > http://apache-sling.73963.n3.nabble.com/Health-Check-Improvements-td4029330.html#a4029402 > http://apache-sling.73963.n3.nabble.com/Health-checks-execution-service-td4028477.html -- This message was sent by Atlassian JIRA (v6.1.4#6159)