brooklyn-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ahgittin <...@git.apache.org>
Subject [GitHub] incubator-brooklyn pull request: Catalog default niceness
Date Wed, 24 Jun 2015 06:06:51 GMT
Github user ahgittin commented on a diff in the pull request:

    https://github.com/apache/incubator-brooklyn/pull/705#discussion_r33119484
  
    --- Diff: software/base/src/main/java/brooklyn/entity/software/StaticSensor.java ---
    @@ -36,9 +43,17 @@ public StaticSensor(ConfigBag params) {
             value = params.get(STATIC_VALUE);
         }
     
    +    @SuppressWarnings("unchecked")
         @Override
         public void apply(EntityLocal entity) {
             super.apply(entity);
    -        entity.setAttribute(sensor, (T) TypeCoercions.coerce(value, sensor.getType()));
    +        
    +        Maybe<T> v = Tasks.resolving(value).as((Class<T>)sensor.getType()).timeout(Duration.millis(200)).getMaybe();
    --- End diff --
    
    This is an important distinction which I don't think we make explicit.
    
    Config supports tasks/suppliers which are resolved whenever read.  Sensors are values
published at a point in time so don't normally support resolution (except for this one).
    
    I've added javadoc:
    
    ```
    /** 
     * Provides an initializer/feed which simply sets a given value.
     * <p>
     * {@link Task}/{@link Supplier} values are resolved when written,
     * unlike config values which are resolved on each read.
     * <p>
     * This supports a {@link StaticSensor#SENSOR_PERIOD} 
     * which can be useful if the supplied value is such a function.
     * However when the source is another sensor,
     * consider using {@link Propagator} which listens for changes instead. */
    ```


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

Mime
View raw message