You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by kw...@apache.org on 2016/02/25 09:31:55 UTC

svn commit: r1732260 - in /sling/trunk/bundles/extensions/healthcheck: annotations/src/main/java/org/apache/sling/hc/annotations/ samples/src/main/java/org/apache/sling/hc/samples/impl/

Author: kwin
Date: Thu Feb 25 08:31:55 2016
New Revision: 1732260

URL: http://svn.apache.org/viewvc?rev=1732260&view=rev
Log:
SLING-4417 allow to configure immediate flag in the healthcheck annotation and use that in some examples

Modified:
    sling/trunk/bundles/extensions/healthcheck/annotations/src/main/java/org/apache/sling/hc/annotations/SlingHealthCheck.java
    sling/trunk/bundles/extensions/healthcheck/annotations/src/main/java/org/apache/sling/hc/annotations/SlingHealthCheckProcessor.java
    sling/trunk/bundles/extensions/healthcheck/samples/src/main/java/org/apache/sling/hc/samples/impl/AsyncHealthCheckSample.java
    sling/trunk/bundles/extensions/healthcheck/samples/src/main/java/org/apache/sling/hc/samples/impl/SlowHealthCheckSample.java

Modified: sling/trunk/bundles/extensions/healthcheck/annotations/src/main/java/org/apache/sling/hc/annotations/SlingHealthCheck.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/healthcheck/annotations/src/main/java/org/apache/sling/hc/annotations/SlingHealthCheck.java?rev=1732260&r1=1732259&r2=1732260&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/healthcheck/annotations/src/main/java/org/apache/sling/hc/annotations/SlingHealthCheck.java (original)
+++ sling/trunk/bundles/extensions/healthcheck/annotations/src/main/java/org/apache/sling/hc/annotations/SlingHealthCheck.java Thu Feb 25 08:31:55 2016
@@ -64,6 +64,9 @@ public @interface SlingHealthCheck {
      * file for this component. Otherwise no Metatype Service data is generated for this component. */
     boolean metatype() default true;
 
+    /** Whether immediate is set on the SCR component.  */
+    boolean immediate() default false;
+
     /** Set the metatype factory pid property (only for non factory components). */
     boolean configurationFactory() default false;
 

Modified: sling/trunk/bundles/extensions/healthcheck/annotations/src/main/java/org/apache/sling/hc/annotations/SlingHealthCheckProcessor.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/healthcheck/annotations/src/main/java/org/apache/sling/hc/annotations/SlingHealthCheckProcessor.java?rev=1732260&r1=1732259&r2=1732260&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/healthcheck/annotations/src/main/java/org/apache/sling/hc/annotations/SlingHealthCheckProcessor.java (original)
+++ sling/trunk/bundles/extensions/healthcheck/annotations/src/main/java/org/apache/sling/hc/annotations/SlingHealthCheckProcessor.java Thu Feb 25 08:31:55 2016
@@ -54,6 +54,7 @@ public class SlingHealthCheckProcessor i
 
         final boolean generateComponent = cad.getBooleanValue("generateComponent", true);
         final boolean metatype = cad.getBooleanValue("metatype", true);
+        final boolean immediate = cad.getBooleanValue("immediate", false);
 
         // generate ComponentDescription if required
         if (generateComponent) {
@@ -71,6 +72,7 @@ public class SlingHealthCheckProcessor i
             cd.setDescription(cad.getStringValue("description", "Health Check Configuration"));
 
             cd.setCreateMetatype(metatype);
+            cd.setImmediate(immediate);
 
             classDescription.add(cd);
         }

Modified: sling/trunk/bundles/extensions/healthcheck/samples/src/main/java/org/apache/sling/hc/samples/impl/AsyncHealthCheckSample.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/healthcheck/samples/src/main/java/org/apache/sling/hc/samples/impl/AsyncHealthCheckSample.java?rev=1732260&r1=1732259&r2=1732260&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/healthcheck/samples/src/main/java/org/apache/sling/hc/samples/impl/AsyncHealthCheckSample.java (original)
+++ sling/trunk/bundles/extensions/healthcheck/samples/src/main/java/org/apache/sling/hc/samples/impl/AsyncHealthCheckSample.java Thu Feb 25 08:31:55 2016
@@ -42,9 +42,7 @@ public class AsyncHealthCheckSample impl
 
     private final Logger log = LoggerFactory.getLogger(AsyncHealthCheckSample.class);
     
-    // static because for factories, not always the same instance is returned for 
-    // the same service reference
-    private static final AtomicInteger counter = new AtomicInteger();
+    private final AtomicInteger counter = new AtomicInteger();
     
     public static final int PERIOD_SECONDS = 5;
     

Modified: sling/trunk/bundles/extensions/healthcheck/samples/src/main/java/org/apache/sling/hc/samples/impl/SlowHealthCheckSample.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/healthcheck/samples/src/main/java/org/apache/sling/hc/samples/impl/SlowHealthCheckSample.java?rev=1732260&r1=1732259&r2=1732260&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/healthcheck/samples/src/main/java/org/apache/sling/hc/samples/impl/SlowHealthCheckSample.java (original)
+++ sling/trunk/bundles/extensions/healthcheck/samples/src/main/java/org/apache/sling/hc/samples/impl/SlowHealthCheckSample.java Thu Feb 25 08:31:55 2016
@@ -21,14 +21,11 @@ import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.ConfigurationPolicy;
 import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Properties;
 import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.PropertyUnbounded;
-import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.commons.osgi.PropertiesUtil;
+import org.apache.sling.hc.annotations.SlingHealthCheck;
 import org.apache.sling.hc.api.HealthCheck;
 import org.apache.sling.hc.api.Result;
 import org.apache.sling.hc.util.FormattingResultLog;
@@ -39,22 +36,8 @@ import org.slf4j.LoggerFactory;
  *  used to demonstrate execution timeouts and caching.
  */
 
-// Need to make the component immediate to make sure a single 
-// instance is used, otherwise the lazy DS activation policy
-// might cause a different instance to be used for every
-// execution. In this sample this is just done to allow the
-// counter to persist as long as this service's bundle is active.
-@Component(
-        configurationFactory=true,
-        policy=ConfigurationPolicy.REQUIRE,
-        metatype=true,
-        immediate=true)
-@Properties({
-    @Property(name=HealthCheck.NAME),
-    @Property(name=HealthCheck.TAGS, unbounded=PropertyUnbounded.ARRAY),
-    @Property(name=HealthCheck.MBEAN_NAME)
-})
-@Service(value=HealthCheck.class)
+// The annotation make the component immediate by default now
+@SlingHealthCheck(configurationFactory = true, configurationPolicy = ConfigurationPolicy.REQUIRE)
 public class SlowHealthCheckSample implements HealthCheck{
 
     private final Logger log = LoggerFactory.getLogger(getClass());