Good point :-) Christian
2018-04-17 16:51 GMT+02:00 Richard S. Hall <he...@ungoverned.org>: > The question to answer is whether it would be worthwhile "as is" to be > donated to Apache Felix as a starting point? If so, figuring out ways to > improve it can happen after the fact. If not, then there isn't much else to > discuss. > > -> richard > > > On 4/17/18 08:53 , Neil Bartlett wrote: > >> I like the general idea but, like Guillaume, I feel maybe this should be >> implemented at a lower level. The core `SystemReadinessMonitorImpl` and >> the >> rootcause command are implemented as DS components and configured via >> Config Admin... but what if SCR and/or ConfigAdmin are unavailable or not >> working? >> >> I'm also not sure about the way in which checks are defined and extended. >> Only the application knows what "should" be started, but this can be >> defined at the application level using a DS component that has >> dependencies >> on the necessary services, config etc. That DS component would provide a >> SystemReady service when it has decided the system is ready. >> >> Thus I think your framework can be boiled down to something simpler: >> >> * An exported SystemReady service interface, which should appear within a >> configurable timeout; >> * The root cause analysis tool, which is something I have always wanted to >> have and I hope your implementation works as well as described! >> >> Regards, >> Neil >> >> On Tue, Apr 17, 2018 at 1:37 PM, Andrei Dulvac <dul...@apache.org> wrote: >> >> Hi Guillaume. >>> >>> Thanks! >>> >>> There's the OOTB ServicesCheck check that can be configured with a list >>> of >>> services [0]. >>> We were thinking we could add the mandatory checks there through >>> configuration. >>> >>> The fact that the system can initially green, because no checks are >>> present >>> is VERY valid. >>> We try to mediate that with the ServicesCheck and by making sure the >>> monitor waits for the framework to be up before reporting anything other >>> than YELLOW. >>> >>> Hope I got the question and suggestion right :D >>> >>> - Andrei >>> >>> >>> --- >>> [0] >>> https://github.com/dulvac/system-readiness/blob/master/ >>> src/main/java/org/apache/sling/systemreadiness/core/ >>> impl/ServicesCheck.java#L59 >>> >>> On Tue, Apr 17, 2018 at 2:16 PM Guillaume Nodet <gno...@apache.org> >>> wrote: >>> >>> I like it a lot, the API is simple and extensible enough. Really nice >>>> >>> work >>> >>>> ! >>>> I'm just a bit nervous about having such a low-level component depend on >>>> >>> an >>> >>>> external extender... >>>> >>>> I think it's missing one bit though: some kind of expectations. I.e. it >>>> checks existing stuff, but it does not cover missing stuff. I suppose >>>> it >>>> could be implemented specifically using custom checks, but I think there >>>> >>> is >>> >>>> still a hole, which is the fact that those custom checks are not >>>> available. So I wonder if there should be an additional built-in check >>>> that would grab a configuration entry, turn that into a list of >>>> mandatory >>>> checks and be green if all those check are available, yellow/red >>>> otherwise. This would ensure your container does not switch between >>>> green/yellow while the container is booting/provisioning. >>>> >>>> 2018-04-17 10:02 GMT+02:00 Christian Schneider <ch...@die-schneider.net >>>> : >>>> >>>> Dear Felix community, >>>>> >>>>> during the last weeks Andrei Dulvac and I worked on a small framework >>>>> >>>> to >>> >>>> check if an OSGi based system is fully up. >>>>> >>>>> Our work originated in testing sling modules and whole sling instances. >>>>> >>>> We >>>> >>>>> soon found though that the concept is more general than sling and can >>>>> >>>> be >>> >>>> applied to any OSGi based system. >>>>> >>>>> The system readiness framework has a SystemReadinessMonitor service >>>>> >>>> that >>> >>>> reports the aggregated state of the system. It delegates to >>>>> SystemReadinessCheck services that each check for a certain aspect. We >>>>> implemented a first check based on a list of expected top level >>>>> >>>> services. >>> >>>> The system can be customised by adding specific checks for your >>>>> application. For example we plan to add sling specific checks inside >>>>> >>>> the >>> >>>> sling project. >>>>> >>>>> In addition to simply detecting if the system is ready we also created >>>>> >>>> a >>> >>>> DS >>>> >>>>> based root cause analysis that can be very helpful to detect why a set >>>>> >>>> of >>> >>>> components does not come up as expected. >>>>> >>>>> We would like to donate this project to the Apache Felix project as it >>>>> might get more attention there by people that are not related to sling. >>>>> >>>> The >>>> >>>>> project is Apache licensed from the start and we already got a basic >>>>> documentation as well as good test coverage. >>>>> >>>>> We currently host it in this github repository: >>>>> https://github.com/dulvac/system-readiness >>>>> >>>>> The packages are still mentioning sling but of course we would change >>>>> >>>> this >>>> >>>>> to felix if this community is interested in the donation. >>>>> >>>>> Best regards >>>>> >>>>> Christian and Andrei >>>>> >>>>> >>>>> -- >>>>> -- >>>>> Christian Schneider >>>>> http://www.liquid-reality.de >>>>> >>>>> Computer Scientist >>>>> http://www.adobe.com >>>>> >>>>> >>>> >>>> -- >>>> ------------------------ >>>> Guillaume Nodet >>>> >>>> > -- -- Christian Schneider http://www.liquid-reality.de Computer Scientist http://www.adobe.com