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());