Merge branch 'master' into tasks-better conflict in adjacent line changes in Poller, fixed
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/62359c60 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/62359c60 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/62359c60 Branch: refs/heads/master Commit: 62359c60e54feebe0c38146d8eb6bfb055d8962a Parents: 7c2c8e1 c9f7b0d Author: Alex Heneveld <[email protected]> Authored: Sat Sep 16 02:54:25 2017 +0100 Committer: Alex Heneveld <[email protected]> Committed: Sat Sep 16 02:54:25 2017 +0100 ---------------------------------------------------------------------- .../brooklyn/api/objs/HighlightTuple.java | 23 +++- .../test/resources/visitors-creation-script.sql | 5 +- .../core/enricher/AbstractEnricher.java | 19 ++- .../brooklyn/core/entity/AbstractEntity.java | 6 +- .../apache/brooklyn/core/entity/Attributes.java | 10 +- .../core/entity/BrooklynConfigKeys.java | 124 ++++++++++++++----- .../entity/lifecycle/ServiceStateLogic.java | 3 + .../apache/brooklyn/core/feed/AbstractFeed.java | 16 ++- .../core/feed/AttributePollHandler.java | 2 + .../org/apache/brooklyn/core/feed/Poller.java | 20 ++- .../core/objs/AbstractEntityAdjunct.java | 103 ++++++++++++++- .../enricher/stock/AbstractAggregator.java | 49 ++++++-- .../stock/AbstractMultipleSensorAggregator.java | 2 - .../enricher/stock/AbstractTransformer.java | 21 +++- .../stock/AbstractTypeTransformingEnricher.java | 3 + .../brooklyn/enricher/stock/Aggregator.java | 20 ++- .../brooklyn/enricher/stock/Combiner.java | 35 ++++-- .../apache/brooklyn/enricher/stock/Joiner.java | 18 ++- .../brooklyn/enricher/stock/MapAggregator.java | 11 +- .../enricher/stock/PercentageEnricher.java | 7 +- .../brooklyn/enricher/stock/Propagator.java | 6 + .../brooklyn/enricher/stock/Transformer.java | 23 +++- .../brooklyn/enricher/stock/UpdatingMap.java | 25 +++- .../YamlRollingTimeWindowMeanEnricher.java | 13 +- .../stock/YamlTimeWeightedDeltaEnricher.java | 7 +- .../enricher/stock/reducer/Reducer.java | 27 ++-- .../brooklyn/entity/group/AbstractGroup.java | 13 +- .../group/AbstractMembershipTrackingPolicy.java | 23 +++- .../apache/brooklyn/entity/group/Cluster.java | 2 + .../brooklyn/entity/group/DynamicCluster.java | 21 +++- .../brooklyn/entity/group/DynamicFabric.java | 23 +++- .../brooklyn/entity/group/DynamicGroup.java | 6 +- .../SshCommandMembershipTrackingPolicy.java | 15 ++- .../brooklyn/entity/stock/BasicStartable.java | 6 +- .../brooklyn/entity/stock/DelegateEntity.java | 7 +- core/src/main/resources/catalog.bom | 55 +++++++- .../core/policy/basic/BasicPolicyTest.java | 9 +- .../stock/TransformingEnricherTest.java | 7 +- .../init/src/main/resources/catalog-classes.bom | 105 ++++++++++++++-- .../test/resources/visitors-creation-script.sql | 5 +- .../policy/autoscaling/AutoScalerPolicy.java | 83 ++++++++++--- .../policy/ha/ConnectionFailureDetector.java | 14 ++- .../policy/ha/ServiceFailureDetector.java | 16 ++- .../brooklyn/policy/ha/ServiceReplacer.java | 66 ++++++---- .../brooklyn/policy/ha/ServiceRestarter.java | 25 +++- .../policy/ha/SshMachineFailureDetector.java | 4 +- policy/src/main/resources/catalog.bom | 77 +++++++----- .../autoscaling/AutoScalerPolicyRebindTest.java | 5 +- .../resources/EntityConfigResourceTest.java | 2 +- .../testing/mocks/RestMockSimplePolicy.java | 4 +- .../apache/brooklyn/entity/java/UsesJava.java | 10 +- .../apache/brooklyn/entity/java/UsesJmx.java | 37 ++++-- .../entity/machine/pool/ServerPoolImpl.java | 1 + .../software/base/AbstractVanillaProcess.java | 21 +++- .../entity/software/base/SoftwareProcess.java | 37 +++--- .../software/base/SoftwareProcessImpl.java | 4 +- .../software/base/VanillaSoftwareProcess.java | 3 - .../base/VanillaSoftwareProcessSshDriver.java | 12 +- .../software/base/VanillaWindowsProcess.java | 22 ++-- software/base/src/main/resources/catalog.bom | 15 ++- .../brooklynnode/SelectMasterEffectorTest.java | 2 +- test-framework/src/main/resources/catalog.bom | 10 ++ 62 files changed, 1050 insertions(+), 315 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/62359c60/core/src/main/java/org/apache/brooklyn/core/feed/Poller.java ---------------------------------------------------------------------- diff --cc core/src/main/java/org/apache/brooklyn/core/feed/Poller.java index 03fd1df,5a78f37..940057e --- a/core/src/main/java/org/apache/brooklyn/core/feed/Poller.java +++ b/core/src/main/java/org/apache/brooklyn/core/feed/Poller.java @@@ -143,26 -146,32 +146,29 @@@ public class Poller<V> for (final PollJob<V> pollJob : pollJobs) { final String scheduleName = pollJob.handler.getDescription(); if (pollJob.pollPeriod.compareTo(Duration.ZERO) > 0) { - Callable<Task<?>> pollingTaskFactory = new Callable<Task<?>>() { - @Override - public Task<?> call() { - DynamicSequentialTask<Void> task = new DynamicSequentialTask<Void>(MutableMap.of("displayName", scheduleName, "entity", entity), - new Callable<Void>() { @Override public Void call() { - if (!Entities.isManaged(entity)) { - return null; - } - if (onlyIfServiceUp && !Boolean.TRUE.equals(entity.getAttribute(Attributes.SERVICE_UP))) { - return null; - } - pollJob.wrappedJob.run(); - return null; - } } ); - BrooklynTaskTags.setTransient(task); - return task; - } - }; - Map<String, ?> taskFlags = MutableMap.of("displayName", "scheduled:" + scheduleName); - ScheduledTask task = new ScheduledTask(taskFlags, pollingTaskFactory) + ScheduledTask t = ScheduledTask.builder(() -> { + DynamicSequentialTask<Void> task = new DynamicSequentialTask<Void>(MutableMap.of("displayName", scheduleName, "entity", entity), + new Callable<Void>() { @Override public Void call() { + if (!Entities.isManaged(entity)) { + return null; + } + if (onlyIfServiceUp && !Boolean.TRUE.equals(entity.getAttribute(Attributes.SERVICE_UP))) { + return null; + } + pollJob.wrappedJob.run(); + return null; + } } ); + BrooklynTaskTags.setTransient(task); + return task; + }) + .displayName("scheduled:" + scheduleName) .period(pollJob.pollPeriod) - .cancelOnException(false); - tasks.add(Entities.submit(entity, task)); + .cancelOnException(false) + .build(); + tasks.add(Entities.submit(entity, t)); + if (minPeriod==null || (pollJob.pollPeriod.isShorterThan(minPeriod))) { + minPeriod = pollJob.pollPeriod; + } } else { if (log.isDebugEnabled()) log.debug("Activating poll (but leaving off, as period {}) for {} (using {})", new Object[] {pollJob.pollPeriod, entity, this}); }
