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 [email protected] or file a JIRA ticket
with INFRA.
---