JochenHiller commented on code in PR #192: URL: https://github.com/apache/felix-dev/pull/192#discussion_r1089011866
########## healthcheck/core/src/main/java/org/apache/felix/hc/core/impl/servlet/HealthCheckExecutorServlet.java: ########## @@ -162,7 +164,10 @@ void setDescription(String d) { ResultTxtVerboseSerializer verboseTxtSerializer; @Activate - protected final void activate(final HealthCheckExecutorServletConfiguration configuration) { + protected final void activate(final HealthCheckExecutorServletConfiguration configuration, final BundleContext bundleContext) { + this.bundleContext = bundleContext; + servletRegistrations = new ArrayList<>(); Review Comment: Assign with `this.servletRegistrations` to follow same code style? ########## healthcheck/core/src/main/java/org/apache/felix/hc/core/impl/servlet/HealthCheckExecutorServlet.java: ########## @@ -215,29 +219,24 @@ protected final void activate(final HealthCheckExecutorServletConfiguration conf for (final Map.Entry<String, HttpServlet> servlet : servletsToRegister.entrySet()) { try { LOG.info("Registering HC servlet {} to path {}", getClass().getSimpleName(), servlet.getKey()); - this.httpService.registerServlet(servlet.getKey(), servlet.getValue(), null, null); + registerServlet(servlet.getValue(), servlet.getKey()); } catch (Exception e) { LOG.error("Could not register health check servlet: " + e, e); } } - this.servletPaths = servletsToRegister.keySet().toArray(new String[0]); } @Deactivate public void deactivate() { - if (this.servletPaths == null) { - return; - } - - for (final String servletPath : this.servletPaths) { - try { - LOG.info("Unregistering HC Servlet {} from path {}", getClass().getSimpleName(), servletPath); - this.httpService.unregister(servletPath); - } catch (Exception e) { - LOG.error("Could not unregister health check servlet: " + e, e); - } - } - this.servletPaths = null; + servletRegistrations.forEach(ServiceRegistration::unregister); + } + + private void registerServlet(Servlet servlet, String path) { Review Comment: Better to reverse argument ordering? Then it would match closer the `httpService.registerServlet()`. E.g. ``` private void registerServlet(String path, Servlet servlet) { ``` ########## healthcheck/core/src/main/java/org/apache/felix/hc/core/impl/servlet/HealthCheckExecutorServlet.java: ########## @@ -215,29 +219,24 @@ protected final void activate(final HealthCheckExecutorServletConfiguration conf for (final Map.Entry<String, HttpServlet> servlet : servletsToRegister.entrySet()) { try { LOG.info("Registering HC servlet {} to path {}", getClass().getSimpleName(), servlet.getKey()); - this.httpService.registerServlet(servlet.getKey(), servlet.getValue(), null, null); + registerServlet(servlet.getValue(), servlet.getKey()); } catch (Exception e) { LOG.error("Could not register health check servlet: " + e, e); } } - this.servletPaths = servletsToRegister.keySet().toArray(new String[0]); } @Deactivate public void deactivate() { - if (this.servletPaths == null) { - return; - } - - for (final String servletPath : this.servletPaths) { - try { - LOG.info("Unregistering HC Servlet {} from path {}", getClass().getSimpleName(), servletPath); - this.httpService.unregister(servletPath); - } catch (Exception e) { - LOG.error("Could not unregister health check servlet: " + e, e); - } - } - this.servletPaths = null; + servletRegistrations.forEach(ServiceRegistration::unregister); Review Comment: Nice code, but the info that HC Servlet has been unregistered is missing compared to previous code. I would propose to have the logs like before so you see what has been registered and unregistered later. Do you need to remove the entries from `servletRegistrations` or can we rely that no-one is using that variable after component de-activation? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: dev-unsubscr...@felix.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org