You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2017/02/15 11:56:01 UTC

[07/10] brooklyn-server git commit: Merge branch 'master' into tidy-add-children-effector

Merge branch 'master' into tidy-add-children-effector


Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/a1b5e3f4
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/a1b5e3f4
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/a1b5e3f4

Branch: refs/heads/master
Commit: a1b5e3f4668a7963892f443d2237d9114efd7127
Parents: b70346c 0f649fe
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Tue Feb 14 18:01:00 2017 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Tue Feb 14 18:01:00 2017 +0000

----------------------------------------------------------------------
 .../brooklyn/api/catalog/BrooklynCatalog.java   |   3 +-
 .../brooklyn/api/catalog/CatalogItem.java       |   1 +
 .../org/apache/brooklyn/api/entity/Entity.java  |   2 +
 .../apache/brooklyn/api/entity/EntityLocal.java |   5 +
 .../apache/brooklyn/api/entity/EntitySpec.java  |   2 +-
 .../brooklyn/api/location/LocationSpec.java     |   3 +
 .../brooklyn/api/location/MachineLocation.java  |   1 +
 .../brooklyn/api/mgmt/LocationManager.java      |   1 +
 .../java/org/apache/brooklyn/api/mgmt/Task.java |   1 +
 .../brooklyn/api/mgmt/rebind/RebindManager.java |   1 +
 .../mementos/BrooklynMementoManifest.java       |   1 +
 .../org/apache/brooklyn/api/policy/Policy.java  |   1 +
 .../apache/brooklyn/api/policy/PolicySpec.java  |   1 +
 .../brooklyn/api/sensor/EnricherSpec.java       |   2 +
 .../brooklyn/camp/AggregatingCampPlatform.java  |  10 +
 .../apache/brooklyn/camp/BasicCampPlatform.java |   4 +
 .../brooklyn/camp/spi/PlatformRootSummary.java  |   1 +
 .../collection/AggregatingResourceLookup.java   |   2 +
 .../spi/collection/BasicResourceLookup.java     |   2 +
 .../camp/spi/collection/ResourceLookup.java     |   3 +
 .../BasicAssemblyTemplateInstantiator.java      |   1 +
 .../apache/brooklyn/camp/spi/pdp/Artifact.java  |   2 +-
 .../camp/spi/pdp/ArtifactRequirement.java       |   2 +-
 .../spi/pdp/AssemblyTemplateConstructor.java    |   1 +
 .../brooklyn/camp/spi/resolve/PdpMatcher.java   |   2 +
 .../web/MockAssemblyTemplateInstantiator.java   |   1 +
 .../camp/test/mock/web/MockWebPlatform.java     |   2 +
 .../camp/brooklyn/BrooklynCampPlatform.java     |   2 +
 .../BrooklynComponentTemplateResolver.java      |   2 +-
 .../creation/BrooklynYamlLocationResolver.java  |   3 +-
 .../creation/BrooklynYamlTypeInstantiator.java  |   1 -
 .../brooklyn/spi/creation/CampResolver.java     |   1 -
 .../service/UrlServiceSpecResolver.java         |   3 -
 .../spi/dsl/BrooklynDslInterpreter.java         |   2 +-
 .../spi/dsl/DslDeferredFunctionCall.java        |  30 +-
 .../spi/dsl/methods/BrooklynDslCommon.java      |  74 +-
 .../brooklyn/spi/dsl/methods/DslComponent.java  |   6 +-
 .../camp/brooklyn/AbstractYamlRebindTest.java   |  48 +-
 .../camp/brooklyn/AbstractYamlTest.java         |  21 +
 .../brooklyn/ConfigInheritanceYamlTest.java     |   2 +
 .../camp/brooklyn/ConfigParametersYamlTest.java |   1 +
 .../brooklyn/camp/brooklyn/ConfigYamlTest.java  |   3 +
 .../DependentConfigPollingYamlTest.java         |   2 +
 .../camp/brooklyn/DslAndRebindYamlTest.java     |  28 +
 .../camp/brooklyn/EnrichersYamlTest.java        |   5 +-
 .../camp/brooklyn/EntitiesYamlTest.java         |   5 +-
 ...loudsCustomizerInstantiationYamlDslTest.java |  33 +-
 .../camp/brooklyn/LocationsYamlTest.java        |  22 +-
 .../brooklyn/camp/brooklyn/ObjectsYamlTest.java |   2 +-
 .../camp/brooklyn/PoliciesYamlTest.java         |   2 +-
 .../camp/brooklyn/ReferencedOsgiYamlTest.java   | 230 +++++
 .../camp/brooklyn/ReferencedYamlTest.java       | 191 ----
 .../brooklyn/TestEntityWithInitConfigImpl.java  |   1 +
 .../TestSensorAndEffectorInitializer.java       |   1 +
 .../camp/brooklyn/WindowsYamlLiveTest.java      |   2 +-
 .../catalog/CatalogOsgiLibraryTest.java         |  46 +-
 .../CatalogOsgiVersionMoreEntityRebindTest.java |  41 +
 .../catalog/CatalogOsgiYamlEntityTest.java      | 861 +++++++++++++++++++
 .../catalog/CatalogOsgiYamlLocationTest.java    | 198 +++++
 .../catalog/CatalogOsgiYamlPolicyTest.java      | 165 ++++
 .../catalog/CatalogOsgiYamlTemplateTest.java    | 113 +++
 .../brooklyn/catalog/CatalogYamlEntityTest.java | 796 +++++------------
 .../catalog/CatalogYamlLocationTest.java        |  83 +-
 .../brooklyn/catalog/CatalogYamlPolicyTest.java |  73 +-
 .../brooklyn/catalog/CatalogYamlRebindTest.java |   1 +
 .../catalog/CatalogYamlTemplateTest.java        |  43 +-
 .../catalog/CatalogYamlVersioningTest.java      |   1 +
 .../catalog/SpecParameterParsingOsgiTest.java   | 116 +++
 .../catalog/SpecParameterParsingTest.java       | 101 +--
 .../qa/performance/CatalogPerformanceTest.java  |   6 +
 .../brooklyn/camp/brooklyn/spi/dsl/DslTest.java |  40 +
 .../camp/server/rest/util/CampRestGuavas.java   |   1 +
 .../camp/server/rest/util/DtoFactory.java       |   4 +-
 core/pom.xml                                    |   6 +
 .../core/BrooklynFeatureEnablement.java         |   2 +
 .../catalog/internal/BasicBrooklynCatalog.java  |   6 +-
 .../core/catalog/internal/CatalogDto.java       |   2 +-
 .../core/catalog/internal/CatalogUtils.java     |   4 +
 .../brooklyn/core/config/ConfigPredicates.java  |   4 +
 .../brooklyn/core/config/ConfigUtils.java       |  15 +-
 .../brooklyn/core/config/MapConfigKey.java      |   5 +
 .../AbstractExternalConfigSupplier.java         |   1 +
 .../external/InPlaceExternalConfigSupplier.java |   1 +
 .../PropertiesFileExternalConfigSupplier.java   |   1 +
 .../external/UrlsExternalConfigSupplier.java    |   1 +
 .../vault/VaultAppIdExternalConfigSupplier.java |   1 +
 .../config/internal/AbstractConfigMapImpl.java  |   4 +-
 .../internal/AbstractStructuredConfigKey.java   |   2 +
 .../core/config/render/RendererHints.java       |   1 +
 .../brooklyn/core/effector/Effectors.java       |   3 +-
 .../core/effector/ExplicitEffector.java         |   2 +
 .../brooklyn/core/effector/MethodEffector.java  |   1 +
 .../core/effector/ssh/SshEffectorTasks.java     |   5 +
 .../core/enricher/EnricherDynamicType.java      |   1 +
 .../core/entity/AbstractApplication.java        |   1 +
 .../brooklyn/core/entity/AbstractEntity.java    |  14 +-
 .../core/entity/BrooklynConfigKeys.java         |   2 +
 .../apache/brooklyn/core/entity/Entities.java   |   6 +
 .../core/entity/EntityAndAttribute.java         |   4 +-
 .../brooklyn/core/entity/EntityFunctions.java   |   9 +-
 .../brooklyn/core/entity/EntityInternal.java    |   3 +
 .../brooklyn/core/entity/EntityPredicates.java  |   1 +
 .../brooklyn/core/entity/EntityRelations.java   |   2 +-
 .../drivers/BasicEntityDriverManager.java       |   1 +
 .../drivers/ReflectiveEntityDriverFactory.java  |   2 +-
 .../drivers/RegistryEntityDriverFactory.java    |   1 +
 .../DownloadProducerFromCloudsoftRepo.java      |   1 +
 .../DownloadProducerFromLocalRepo.java          |   1 +
 .../DownloadProducerFromProperties.java         |   1 +
 .../AbstractConfigurableEntityFactory.java      |  82 --
 .../core/entity/factory/ApplicationBuilder.java |   5 +-
 .../factory/BasicConfigurableEntityFactory.java |  76 --
 .../entity/factory/ClosureEntityFactory.java    |  53 --
 .../factory/ConfigurableEntityFactory.java      |  33 -
 ...figurableEntityFactoryFromEntityFactory.java |  45 -
 .../core/entity/factory/EntityFactory.java      |  32 -
 .../factory/EntityFactoryForLocation.java       |  30 -
 .../entity/lifecycle/ServiceStateLogic.java     |  44 +-
 .../core/entity/trait/StartableMethods.java     |   7 +-
 .../apache/brooklyn/core/feed/AbstractFeed.java |   7 +-
 .../core/feed/AttributePollHandler.java         |   8 +-
 .../brooklyn/core/feed/ConfigToAttributes.java  |   6 +-
 .../apache/brooklyn/core/feed/FeedConfig.java   |   1 +
 .../org/apache/brooklyn/core/feed/Poller.java   |  14 +-
 .../core/internal/BrooklynProperties.java       |  28 +-
 .../core/internal/BrooklynPropertiesImpl.java   | 198 ++++-
 .../storage/impl/BrooklynStorageImpl.java       |   1 +
 .../impl/ConcurrentMapAcceptingNullVals.java    |   2 +-
 .../core/location/AbstractLocation.java         |   4 +
 .../core/location/BasicLocationDefinition.java  |   7 +-
 .../core/location/BasicLocationRegistry.java    |   6 +-
 .../core/location/BasicMachineMetadata.java     |   5 +
 .../core/location/CatalogLocationResolver.java  |   2 +-
 .../location/DeprecatedKeysMappingBuilder.java  |   1 +
 .../brooklyn/core/location/Locations.java       |   1 +
 .../apache/brooklyn/core/location/Machines.java |   7 +-
 .../brooklyn/core/location/PortRanges.java      |   8 +-
 .../location/access/PortForwardManager.java     |   2 +
 .../access/PortForwardManagerAuthority.java     |   1 +
 .../location/cloud/CloudLocationConfig.java     |   4 +
 .../cloud/names/AbstractCloudMachineNamer.java  |   3 +
 .../cloud/names/BasicCloudMachineNamer.java     |   9 +-
 .../location/geo/GeoBytesHostGeoLookup.java     |   1 +
 .../location/geo/LocalhostExternalIpLoader.java |   2 +-
 .../location/geo/MaxMind2HostGeoLookup.java     |   1 +
 .../core/location/geo/UtraceHostGeoLookup.java  |   2 +
 .../location/internal/LocationConfigMap.java    |   6 +-
 .../location/internal/LocationDynamicType.java  |   1 +
 .../brooklyn/core/mgmt/BrooklynTaskTags.java    |   3 +-
 .../core/mgmt/EntityManagementUtils.java        |   2 +-
 .../BrooklynClassLoadingContextSequential.java  |   1 +
 .../JavaBrooklynClassLoadingContext.java        |   1 +
 .../core/mgmt/ha/BasicMasterChooser.java        |   1 +
 .../mgmt/ha/HighAvailabilityManagerImpl.java    |   2 +
 ...ntPlaneSyncRecordPersisterToObjectStore.java |   1 -
 .../ha/dto/BasicManagementNodeSyncRecord.java   |   2 +-
 .../internal/AbstractManagementContext.java     |   4 +-
 .../internal/AbstractSubscriptionManager.java   |   9 +
 .../internal/AsyncCollectionChangeAdapter.java  |   2 +
 .../BasicExternalConfigSupplierRegistry.java    |   6 +-
 .../mgmt/internal/BasicSubscriptionContext.java |   2 +-
 .../internal/DeferredBrooklynProperties.java    |  84 +-
 .../core/mgmt/internal/EffectorUtils.java       |   3 +-
 ...PropertyChangeToCollectionChangeAdapter.java |   3 +
 .../core/mgmt/internal/LocalEntityManager.java  |   7 +-
 .../mgmt/internal/LocalLocationManager.java     |   5 +-
 .../mgmt/internal/LocalSubscriptionManager.java |   7 +
 .../core/mgmt/internal/LocalUsageManager.java   |   6 +
 .../BrooklynMementoPersisterToObjectStore.java  |   5 +
 .../mgmt/persist/DeserializingProvider.java     |   3 +-
 .../core/mgmt/persist/OsgiClassPrefixer.java    |   9 +-
 .../mgmt/rebind/BasicEntityRebindSupport.java   |   6 +-
 .../rebind/PeriodicDeltaChangeListener.java     |   1 +
 .../core/mgmt/rebind/PersisterDeltaImpl.java    |   2 +
 .../core/mgmt/rebind/RebindContextImpl.java     |   3 +
 .../mgmt/rebind/RebindExceptionHandlerImpl.java |   1 +
 .../core/mgmt/rebind/RebindIteration.java       |   9 +-
 .../core/mgmt/rebind/RebindManagerImpl.java     |   3 +
 .../mgmt/rebind/dto/BasicEntityMemento.java     |   1 +
 .../mgmt/rebind/dto/MementosGenerators.java     |   3 +-
 .../mgmt/rebind/dto/MutableBrooklynMemento.java |   1 +
 .../transformer/impl/XsltTransformer.java       |   1 +
 .../core/network/OnSubnetNetworkEnricher.java   |   1 -
 .../AbstractConfigurationSupportInternal.java   |   3 +
 .../core/objs/AbstractEntityAdjunct.java        |   1 +
 .../core/objs/BasicConfigurableObject.java      |   2 +
 .../core/objs/BrooklynObjectInternal.java       |   2 +
 .../core/objs/proxy/EntityProxyImpl.java        |   1 +
 .../core/objs/proxy/InternalEntityFactory.java  |   2 +-
 .../brooklyn/core/plan/PlanToSpecFactory.java   |   2 -
 .../core/plan/PlanToSpecTransformer.java        |   1 +
 .../brooklyn/core/policy/AbstractPolicy.java    |   1 -
 .../brooklyn/core/policy/PolicyDynamicType.java |   1 +
 .../relations/ByObjectBasicRelationSupport.java |   2 +
 .../entity/DelegatingEntitySpecResolver.java    |   1 -
 .../brooklyn/core/sensor/AttributeMap.java      |   6 +-
 .../sensor/AttributeSensorAndConfigKey.java     |   5 +-
 .../brooklyn/core/sensor/BasicSensor.java       |   7 +
 .../brooklyn/core/sensor/BasicSensorEvent.java  |   4 +
 .../core/sensor/DependentConfiguration.java     |  99 ++-
 .../core/sensor/MaxConcurrencySensor.java       |  99 +++
 .../brooklyn/core/sensor/ReleaseableLatch.java  | 128 +++
 .../brooklyn/core/sensor/StaticSensor.java      |   2 -
 ...platedStringAttributeSensorAndConfigKey.java |   2 +-
 .../core/sensor/ssh/SshCommandSensor.java       |   6 +-
 .../core/server/BrooklynServerConfig.java       |   4 +
 .../core/server/BrooklynServerPaths.java        |   2 +-
 .../core/server/entity/BrooklynMetricsImpl.java |   1 +
 .../core/typereg/BasicBrooklynTypeRegistry.java |   1 +
 .../core/typereg/TypePlanTransformers.java      |   1 -
 .../stock/AbstractAggregatingEnricher.java      |   3 +-
 .../enricher/stock/AbstractTransformer.java     |   2 -
 .../stock/AbstractTransformingEnricher.java     |   1 +
 .../stock/AbstractTypeTransformingEnricher.java |   2 +
 .../brooklyn/enricher/stock/AddingEnricher.java |   2 +
 .../brooklyn/enricher/stock/Aggregator.java     |   2 +
 .../stock/CustomAggregatingEnricher.java        |   7 +-
 .../brooklyn/enricher/stock/Enrichers.java      |  18 +-
 .../brooklyn/enricher/stock/MapAggregator.java  |   3 -
 .../brooklyn/enricher/stock/Propagator.java     |   1 -
 .../stock/SensorPropagatingEnricher.java        |   5 +
 .../stock/SensorTransformingEnricher.java       |   4 +-
 .../brooklyn/enricher/stock/Transformer.java    |   1 +
 .../YamlRollingTimeWindowMeanEnricher.java      |   2 -
 .../enricher/stock/reducer/Reducer.java         |   1 -
 .../entity/group/AbstractGroupImpl.java         |   9 +-
 .../brooklyn/entity/group/DynamicCluster.java   |  12 -
 .../entity/group/DynamicClusterImpl.java        |  42 +-
 .../brooklyn/entity/group/DynamicFabric.java    |   7 -
 .../entity/group/DynamicFabricImpl.java         |  31 +-
 .../entity/group/DynamicMultiGroupImpl.java     |   1 -
 .../brooklyn/entity/group/QuarantineGroup.java  |   2 -
 .../SshCommandMembershipTrackingPolicy.java     |   3 +-
 .../brooklyn/entity/stock/BasicStartable.java   |   1 +
 .../entity/stock/BasicStartableImpl.java        |   1 -
 .../brooklyn/entity/stock/DelegateEntity.java   |   2 +-
 .../brooklyn/feed/function/FunctionFeed.java    |   9 +-
 .../feed/function/FunctionPollConfig.java       |   1 +
 .../org/apache/brooklyn/feed/http/HttpFeed.java |   9 +-
 .../brooklyn/feed/http/HttpValueFunctions.java  |   7 +-
 .../brooklyn/feed/http/JsonFunctions.java       |   4 +-
 .../apache/brooklyn/feed/shell/ShellFeed.java   |   8 +-
 .../org/apache/brooklyn/feed/ssh/SshFeed.java   |   9 +-
 .../apache/brooklyn/feed/ssh/SshPollConfig.java |   2 +
 .../brooklyn/feed/ssh/SshValueFunctions.java    |   2 +
 .../location/byon/ByonLocationResolver.java     |   2 +-
 .../FixedListMachineProvisioningLocation.java   |   3 +-
 .../location/byon/HostLocationResolver.java     |   1 -
 .../byon/SingleMachineLocationResolver.java     |   1 -
 .../LocalhostMachineProvisioningLocation.java   |  10 +-
 .../location/ssh/SshMachineLocation.java        |   6 +-
 .../util/core/BrooklynLanguageExtensions.java   |   1 +
 .../brooklyn/util/core/LoaderDispatcher.java    |  12 +
 .../util/core/config/ResolvingConfigBag.java    |   2 +
 .../brooklyn/util/core/flags/FlagUtils.java     |   2 +
 .../brooklyn/util/core/flags/TypeCoercions.java |  24 +-
 .../brooklyn/util/core/internal/Repeater.java   |   1 +
 .../util/core/internal/ssh/SshAbstractTool.java |   1 +
 .../util/core/internal/ssh/SshTool.java         |   1 +
 .../util/core/internal/ssh/cli/SshCliTool.java  |   2 +
 .../core/internal/ssh/process/ProcessTool.java  |   2 +-
 .../internal/ssh/sshj/SshjClientConnection.java |   1 +
 .../util/core/internal/ssh/sshj/SshjTool.java   |   4 +-
 .../util/core/json/MultimapSerializer.java      |   4 +-
 .../core/task/AbstractExecutionContext.java     |   1 +
 .../util/core/task/BasicExecutionContext.java   |   7 +-
 .../util/core/task/BasicExecutionManager.java   |  21 +-
 .../brooklyn/util/core/task/BasicTask.java      |   4 +-
 .../brooklyn/util/core/task/CompoundTask.java   |   1 +
 .../util/core/task/DynamicSequentialTask.java   |   1 +
 .../core/task/ListenableForwardingFuture.java   |   1 +
 .../brooklyn/util/core/task/ScheduledTask.java  |   3 +
 .../brooklyn/util/core/task/SequentialTask.java |   1 +
 .../brooklyn/util/core/task/TaskBuilder.java    |   1 +
 .../brooklyn/util/core/task/TaskPredicates.java |   1 +
 .../brooklyn/util/core/task/TaskTags.java       |   2 +
 .../apache/brooklyn/util/core/task/Tasks.java   |   2 +-
 .../brooklyn/util/core/task/ValueResolver.java  |  39 +-
 .../util/core/task/ValueResolverIterator.java   | 196 +++++
 .../util/core/task/ssh/SshPutTaskFactory.java   |   1 +
 .../brooklyn/util/core/task/ssh/SshTasks.java   |   4 +-
 .../internal/AbstractSshExecTaskFactory.java    |   2 +
 .../internal/AbstractProcessTaskFactory.java    |   1 +
 .../system/internal/ExecWithLoggingHelpers.java |   1 +
 .../xstream/EnumCaseForgivingConverter.java     |   1 +
 .../EnumCaseForgivingSingleValueConverter.java  |   1 +
 .../core/xstream/ImmutableListConverter.java    |   1 +
 .../core/xstream/ImmutableMapConverter.java     |   1 +
 .../core/xstream/ImmutableSetConverter.java     |   1 +
 .../util/core/xstream/MapConverter.java         |   2 +
 .../core/xstream/StringKeyMapConverter.java     |   1 +
 .../deserializingClassRenames.properties        |  12 +
 ...rooklynFeatureEnablementPerformanceTest.java |   1 +
 .../internal/CatalogItemBuilderTest.java        |   1 -
 .../config/BrooklynPropertiesBuilderTest.java   |   8 +-
 .../core/config/BrooklynPropertiesTest.java     |  13 +-
 .../core/config/ConfigTypeCoercionTest.java     |  61 ++
 .../MapListAndOtherStructuredConfigKeyTest.java |  10 +-
 .../UrlsExternalConfigSupplierTest.java         |   2 -
 .../core/effector/EffectorConcatenateTest.java  |   5 +
 .../effector/EffectorExceptionLoggedTest.java   |   1 +
 .../core/effector/EffectorSayHiTest.java        |   2 +-
 .../core/effector/EffectorTaskTest.java         |  53 +-
 .../core/effector/ssh/SshEffectorTasksTest.java |   4 +-
 .../core/enricher/BasicEnricherTest.java        |   1 +
 .../ApplicationLifecycleStateStressTest.java    |  11 +
 .../core/entity/DependentConfigurationTest.java |   3 +
 .../brooklyn/core/entity/DynamicEntityTest.java |   1 +
 .../entity/DynamicEntityTypeConfigTest.java     |   2 +-
 .../brooklyn/core/entity/EntitiesTest.java      |   1 -
 .../core/entity/EntityAutomanagedTest.java      |   1 +
 .../brooklyn/core/entity/EntityConfigTest.java  |   4 +
 .../core/entity/EntityConfigUsageTest.java      |   6 +-
 .../entity/EntityLifecycleEnrichersTest.java    |   1 +
 .../entity/RecordingSensorEventListener.java    |   1 +
 .../core/entity/hello/LocalEntitiesTest.java    |  10 +-
 .../ApplicationBuilderOverridingTest.java       |   1 +
 .../core/entity/proxying/EntityManagerTest.java |   2 +
 .../core/entity/trait/FailingEntityImpl.java    |   6 +-
 .../apache/brooklyn/core/feed/PollerTest.java   |   4 +
 .../core/location/LocationSubscriptionTest.java |   1 -
 .../brooklyn/core/location/MachinesTest.java    |   6 +
 .../core/location/SimulatedLocation.java        |   7 +
 .../core/location/TestPortSupplierLocation.java |   2 +-
 .../entitlement/AcmeEntitlementManagerTest.java |   1 +
 ...PerUserEntitlementManagerPropertiesTest.java |   1 +
 .../HighAvailabilityManagerFileBasedTest.java   |   1 +
 .../ha/HighAvailabilityManagerInMemoryTest.java |   2 +
 .../HighAvailabilityManagerSplitBrainTest.java  |   2 +-
 .../core/mgmt/internal/EffectorUtilsTest.java   |   7 +-
 .../internal/EntityExecutionManagerTest.java    |   1 -
 .../internal/LocalManagementContextTest.java    |   7 +-
 .../internal/LocalSubscriptionManagerTest.java  |   3 +-
 .../mgmt/osgi/OsgiVersionMoreEntityTest.java    |   2 +-
 ...ntoPersisterInMemorySizeIntegrationTest.java |   1 +
 .../BrooklynMementoPersisterInMemoryTest.java   |   1 +
 .../DeserializingClassRenamesProviderTest.java  |  48 ++
 .../FileBasedStoreObjectAccessorWriterTest.java |   2 +
 .../InMemoryStoreObjectAccessorWriterTest.java  |   1 +
 .../mgmt/persist/OsgiClassPrefixerTest.java     |   2 +-
 .../mgmt/persist/XmlMementoSerializerTest.java  |   1 -
 .../rebind/ActivePartialRebindVersionTest.java  |   1 +
 .../core/mgmt/rebind/CheckpointEntityTest.java  |   1 +
 ...talogWhenCatalogPersistenceDisabledTest.java |   5 -
 .../core/mgmt/rebind/RebindEnricherTest.java    |   8 +-
 .../core/mgmt/rebind/RebindEntityTest.java      |   7 +-
 .../core/mgmt/rebind/RebindFeedTest.java        |  13 +-
 .../core/mgmt/rebind/RebindFeedWithHaTest.java  |   6 +-
 .../rebind/RebindLocalhostLocationTest.java     |   3 +-
 .../core/mgmt/rebind/RebindLocationTest.java    |  20 +-
 .../core/mgmt/rebind/RebindPolicyTest.java      |   2 +-
 .../rebind/RebindSshMachineLocationTest.java    |   5 +-
 .../core/mgmt/rebind/RebindTestFixture.java     |   1 -
 .../mgmt/rebind/RebindTestFixtureWithApp.java   |   1 +
 .../network/OnPublicNetworkEnricherTest.java    |   6 +-
 .../network/OnSubnetNetworkEnricherTest.java    |   4 +-
 .../core/policy/basic/PolicyConfigTest.java     |   2 +
 .../core/sensor/MaxConcurrencySensorTest.java   |  48 ++
 .../core/sensor/ReleaseableLatchRebindTest.java |  42 +
 .../core/server/entity/BrooklynMetricsTest.java |   4 +
 .../core/test/BrooklynAppLiveTestSupport.java   |   1 +
 .../core/test/BrooklynAppUnitTestSupport.java   |   1 +
 .../core/test/BrooklynMgmtUnitTestSupport.java  |   3 +-
 .../core/test/entity/BlockingEntity.java        |   5 +
 .../core/test/entity/BlockingEntityImpl.java    |   3 +
 .../core/test/entity/NoopStartable.java         |   6 +-
 .../core/test/entity/TestApplicationImpl.java   |   2 +-
 .../entity/TestApplicationNoEnrichersImpl.java  |   1 +
 .../core/test/entity/TestEntityImpl.java        |   1 +
 .../longevity/EntityCleanupLongevityTest.java   |   1 +
 .../EntityCleanupLongevityTestFixture.java      |   1 +
 .../test/qa/longevity/EntityCleanupTest.java    |   1 +
 .../qa/performance/EntityPerformanceTest.java   |   6 +
 .../EntityPersistencePerformanceTest.java       |   2 +
 .../FilePersistencePerformanceTest.java         |  16 +-
 .../JavaYardStickPerformanceTest.java           |   5 +-
 .../SubscriptionPerformanceTest.java            |   6 +
 .../qa/performance/TaskPerformanceTest.java     |  13 +-
 .../test/qa/performance/XmlPerformanceTest.java |   1 +
 .../typereg/RegisteredTypePredicatesTest.java   |   4 +-
 ...CustomAggregatingEnricherDeprecatedTest.java |   2 +-
 .../stock/CustomAggregatingEnricherTest.java    |   1 +
 .../stock/EnricherWithDeferredSupplierTest.java |   1 +
 .../stock/TransformingEnricherTest.java         |   5 +-
 .../entity/group/DynamicClusterTest.java        | 381 ++++----
 ...DynamicClusterWithAvailabilityZonesTest.java |  15 +-
 .../entity/group/DynamicFabricTest.java         | 253 ++----
 .../brooklyn/entity/group/DynamicGroupTest.java |  16 +-
 .../group/DynamicMultiGroupRebindTest.java      |   4 +-
 .../entity/group/DynamicMultiGroupTest.java     |   8 +
 .../entity/group/GroupPickUpEntitiesTest.java   |   1 +
 .../apache/brooklyn/entity/group/GroupTest.java |   2 +
 .../group/MembershipTrackingPolicyTest.java     |   3 +-
 .../entity/stock/BasicStartableTest.java        |   1 +
 .../entity/stock/LocationEntityTest.java        |   1 -
 .../feed/function/FunctionFeedTest.java         |   2 +-
 .../feed/http/HttpFeedIntegrationTest.java      |   3 +
 .../apache/brooklyn/feed/http/HttpFeedTest.java |  13 +-
 .../feed/shell/ShellFeedIntegrationTest.java    |   7 +
 .../apache/brooklyn/feed/ssh/SshFeedTest.java   |   4 +
 .../location/byon/ByonLocationResolverTest.java |   1 -
 .../LocalhostLocationResolverRebindTest.java    |   2 -
 ...ocalhostMachineProvisioningLocationTest.java |   6 +-
 .../multi/MultiLocationResolverTest.java        |   2 +-
 .../ssh/SshMachineLocationIntegrationTest.java  |   2 +
 .../ssh/SshMachineLocationPerformanceTest.java  |   1 +
 .../ssh/SshMachineLocationSshToolTest.java      |   2 +
 .../location/ssh/SshMachineLocationTest.java    |   5 +
 ...okeEffectorOnCollectionSensorChangeTest.java |   2 +-
 .../util/core/BrooklynMavenArtifactsTest.java   |   2 -
 .../util/core/ClassLoaderUtilsTest.java         |   1 -
 .../util/core/http/BetterMockWebServer.java     |   3 +
 .../util/core/internal/FlagUtilsTest.java       |   1 +
 .../util/core/internal/TypeCoercionsTest.java   |  26 +-
 .../core/internal/ssh/RecordingSshTool.java     |   7 +-
 .../internal/ssh/ShellToolAbstractTest.java     |   3 +
 .../ssh/SshToolAbstractIntegrationTest.java     |   3 +
 .../ssh/SshToolAbstractPerformanceTest.java     |   1 +
 .../ssh/cli/SshCliToolIntegrationTest.java      |   4 +
 .../sshj/SshjToolAsyncStubIntegrationTest.java  |   2 +-
 .../ssh/sshj/SshjToolIntegrationTest.java       |   3 +
 .../util/core/json/MultimapSerializerTest.java  |  72 ++
 .../util/core/mutex/WithMutexesTest.java        |   1 +
 .../core/ssh/BashCommandsIntegrationTest.java   |   6 +-
 .../task/BasicTaskExecutionPerformanceTest.java |   1 +
 .../util/core/task/BasicTaskExecutionTest.java  |  13 +
 .../util/core/task/BasicTasksFutureTest.java    |   3 +-
 .../core/task/DynamicSequentialTaskTest.java    |   2 +
 .../util/core/task/ScheduledExecutionTest.java  |  17 +
 .../core/task/SingleThreadedSchedulerTest.java  |   5 +
 .../util/core/task/TaskFinalizationTest.java    |   3 +-
 .../core/task/ValueResolverIteratorTest.java    | 217 +++++
 .../util/core/task/ValueResolverTest.java       |  11 +-
 .../util/core/task/ssh/SshTasksTest.java        |   4 +-
 .../util/core/text/TemplateProcessorTest.java   |   2 +
 .../core/xstream/CompilerCompatibilityTest.java |   2 -
 .../xstream/ImmutableListConverterTest.java     |   1 +
 .../core/xstream/InetAddressConverterTest.java  |   1 +
 .../core/xstream/StringKeyMapConverterTest.java |   1 +
 .../util/core/xstream/XmlSerializerTest.java    |   4 +-
 karaf/features/src/main/feature/feature.xml     |   9 +-
 .../osgi/ClassRenameOsgiConfigLoader.java       |   4 +-
 .../JcloudsProviderRenameOsgiConfigLoader.java  |   3 +
 karaf/pom.xml                                   |  16 -
 .../command/support/CloudExplorerSupport.java   |  13 +-
 .../brooklyn/launcher/common/BasicLauncher.java |   1 +
 .../brooklyn/launcher/BrooklynLauncher.java     |   6 +-
 .../brooklyn/launcher/BrooklynWebServer.java    |  13 +-
 .../launcher/WebAppContextProvider.java         |   7 +-
 .../entity/basic/VanillaSoftwareYamlTest.java   |   2 +
 .../BrooklynLauncherRebindTestToFiles.java      |   4 +
 ...lynLauncherRebindToCloudObjectStoreTest.java |   7 +-
 .../brooklyn/launcher/BrooklynLauncherTest.java |   2 +-
 .../blueprints/AbstractBlueprintTest.java       |   2 +
 .../Windows7zipBlueprintLiveTest.java           |   2 +
 .../JcloudsBlobStoreBasedObjectStore.java       |  14 +-
 .../jclouds/BasicJcloudsLocationCustomizer.java |   6 +-
 .../jclouds/BlobStoreContextFactory.java        |  37 +
 .../jclouds/BlobStoreContextFactoryImpl.java    | 113 +++
 .../location/jclouds/BrooklynImageChooser.java  |  13 +-
 .../location/jclouds/ChildEntityCustomizer.java |   1 -
 .../jclouds/ComputeServiceRegistryImpl.java     |  24 +-
 .../location/jclouds/JcloudsLocation.java       | 109 ++-
 .../location/jclouds/JcloudsMachineNamer.java   |  15 +
 .../location/jclouds/JcloudsPredicates.java     |   1 +
 .../brooklyn/location/jclouds/JcloudsUtil.java  | 104 ++-
 .../jclouds/JcloudsWinRmMachineLocation.java    |   2 -
 .../networking/SecurityGroupDefinition.java     |   8 +-
 .../jclouds/networking/SecurityGroupEditor.java |  81 +-
 .../AbstractPortableTemplateBuilder.java        |  28 +
 .../templates/PortableTemplateBuilder.java      |   1 +
 .../customize/AutoAssignFloatingIpOption.java   |   1 +
 .../customize/AutoCreateFloatingIpsOption.java  |   1 +
 .../customize/AutoGenerateKeypairsOption.java   |   1 +
 .../templates/customize/DomainNameOption.java   |   1 +
 .../ExtraPublicKeyDataToAuthOption.java         |   1 +
 .../templates/customize/InboundPortsOption.java |   1 +
 .../templates/customize/KeyPairOption.java      |   1 +
 .../templates/customize/LoginUserOption.java    |   1 +
 .../customize/LoginUserPasswordOption.java      |   1 +
 .../LoginUserPrivateKeyDataOption.java          |   1 +
 .../LoginUserPrivateKeyFileOption.java          |   1 +
 .../templates/customize/NetworkNameOption.java  |   1 +
 .../templates/customize/RunAsRootOption.java    |   1 +
 .../customize/SecurityGroupOption.java          |   1 +
 .../templates/customize/StringTagsOption.java   |   1 +
 .../customize/TemplateBuilderCustomizers.java   |  11 +
 .../customize/UserDataUuencodedOption.java      |   1 +
 .../customize/UserMetadataMapOption.java        |   1 +
 .../customize/UserMetadataStringOption.java     |   1 +
 .../policy/jclouds/os/CreateUserPolicy.java     |   4 +-
 .../persist/jclouds/BlobStoreExpiryTest.java    | 184 ++--
 .../BlobStorePersistencePerformanceTest.java    |   6 +-
 .../mgmt/persist/jclouds/BlobStoreTest.java     |  34 +-
 ...nMementoPersisterJcloudsObjectStoreTest.java |   1 +
 ...ailabilityManagerJcloudsObjectStoreTest.java |   3 +
 .../jclouds/JcloudsExpect100ContinueTest.java   |  12 +-
 .../JcloudsObjectStoreAccessorWriterTest.java   |   2 +
 .../jclouds/AbstractJcloudsStubbedUnitTest.java |  32 +-
 .../jclouds/BailOutJcloudsLocation.java         |   8 +-
 .../jclouds/BrooklynImageChooserTest.java       | 167 ++++
 .../JcloudsAwsImageChoiceStubbedLiveTest.java   |   2 +-
 ...dsByonLocationResolverStubbedRebindTest.java |   3 +
 .../JcloudsByonLocationResolverStubbedTest.java |   2 +
 .../jclouds/JcloudsByonRebindLiveTest.java      |   2 +
 .../JcloudsImageChoiceStubbedLiveTest.java      |   1 +
 ...nReachabilityPredicateInstantiationTest.java |  30 +-
 ...ocationReleasePortForwardingDefaultTest.java |   4 +-
 .../location/jclouds/JcloudsLocationTest.java   |  12 +-
 .../JcloudsProviderAndApiLoaderTest.java        |   1 +
 .../JcloudsRateLimitedRetryLiveTest.java        |   2 +
 .../location/jclouds/JcloudsRebindLiveTest.java |   2 +
 .../location/jclouds/JcloudsRebindStubTest.java |   2 +
 .../jclouds/JcloudsRebindStubUnitTest.java      |   2 +
 .../jclouds/JcloudsRenamesRebindTest.java       |   1 +
 ...sSshMachineLocationAddressOverwriteTest.java |   2 +
 .../JcloudsSshMachineLocationStubbedTest.java   |   2 +
 .../jclouds/JcloudsStubTemplateBuilder.java     |   1 -
 .../location/jclouds/LiveTestEntity.java        |   2 +
 .../jclouds/StubbedComputeServiceRegistry.java  |   1 +
 ...oudsLocationSecurityGroupCustomizerTest.java |   6 +-
 .../JcloudsReachableAddressStubbedTest.java     |  70 +-
 .../brooklyn/logback-logger-excludes.xml        |   2 +-
 parent/pom.xml                                  |   2 +-
 .../policy/action/StopAfterDurationPolicy.java  |   1 +
 .../policy/autoscaling/AutoScalerPolicy.java    |   8 +-
 .../brooklyn/policy/enricher/DeltaEnricher.java |   1 -
 .../policy/enricher/RollingMeanEnricher.java    |   1 -
 .../enricher/RollingTimeWindowMeanEnricher.java |   1 +
 .../enricher/TimeFractionDeltaEnricher.java     |   1 -
 .../followthesun/DefaultFollowTheSunModel.java  |   1 +
 .../followthesun/FollowTheSunParameters.java    |   1 +
 .../policy/followthesun/FollowTheSunPolicy.java |   6 +-
 .../followthesun/FollowTheSunPoolImpl.java      |   2 +-
 .../policy/followthesun/WeightedObject.java     |   1 +
 .../policy/ha/ServiceFailureDetector.java       |   1 -
 .../ItemsInContainersGroupImpl.java             |   2 +
 .../loadbalancing/LoadBalancingPolicy.java      |   7 +-
 .../autoscaling/AutoScalerPolicyMetricTest.java |   1 +
 .../autoscaling/AutoScalerPolicyTest.java       |   7 +
 .../policy/enricher/RebindEnricherTest.java     |   2 +
 .../enricher/RollingMeanEnricherTest.java       |   1 -
 .../enricher/TimeFractionDeltaEnricherTest.java |   1 -
 .../AbstractFollowTheSunPolicyTest.java         |   5 +-
 .../FollowTheSunPolicySoakTest.java             |   6 +-
 .../brooklyn/policy/ha/ServiceReplacerTest.java |   2 +-
 .../policy/ha/ServiceRestarterTest.java         |   1 +
 .../AbstractLoadBalancingPolicyTest.java        |   3 +
 .../ItemsInContainersGroupTest.java             |   3 +
 .../LoadBalancingPolicyConcurrencyTest.java     |   5 +-
 .../LoadBalancingPolicySoakTest.java            |   3 +-
 .../loadbalancing/LoadBalancingPolicyTest.java  |   3 +-
 .../loadbalancing/MockContainerEntityImpl.java  |   4 +
 pom.xml                                         |  10 +-
 .../brooklyn/rest/domain/LocationSpec.java      |   2 +
 rest/rest-resources/pom.xml                     |   5 +
 .../apache/brooklyn/rest/BrooklynRestApp.java   |   1 +
 .../rest/filter/CorsImplSupplierFilter.java     | 190 ++++
 .../brooklyn/rest/filter/CsrfTokenFilter.java   |   4 +-
 .../rest/filter/HaHotCheckResourceFilter.java   |   2 +
 .../brooklyn/rest/resources/EntityResource.java |   8 +-
 .../rest/resources/LocationResource.java        |   1 +
 .../jaas/SecurityProviderHttpSession.java       |   1 +
 .../rest/transform/CatalogTransformer.java      |   1 -
 .../rest/transform/EffectorTransformer.java     |   1 -
 .../brooklyn/rest/util/URLParamEncoder.java     |   1 +
 .../resources/OSGI-INF/blueprint/service.xml    | 128 +--
 .../rest/filter/CsrfTokenFilterTest.java        |   2 +-
 .../filter/EntitlementContextFilterTest.java    |   2 +-
 .../rest/filter/RequestTaggingRsFilterTest.java |   2 +-
 .../ApplicationResourceIntegrationTest.java     |   1 +
 .../rest/resources/ApplicationResourceTest.java |   2 +
 .../CatalogResourcePerformanceTest.java         |   4 +
 .../rest/resources/DelegatingPrintStream.java   |  35 +
 .../rest/resources/LocationResourceTest.java    |   4 +-
 .../rest/resources/SensorResourceTest.java      |   1 +
 .../rest/resources/UsageResourceTest.java       |   8 +-
 .../rest/testing/mocks/RestMockAppBuilder.java  |   1 +
 .../testing/mocks/RestMockSimpleEntity.java     |   9 +
 .../BrooklynPropertiesSecurityFilter.java       |   9 +-
 .../rest/filter/HaMasterCheckFilter.java        |   1 +
 .../rest-server/src/main/webapp/WEB-INF/web.xml |   1 +
 .../BrooklynPropertiesSecurityFilterTest.java   |   1 -
 .../brooklyn/rest/BrooklynRestApiLauncher.java  |  11 +-
 .../BrooklynRestApiLauncherTestFixture.java     |   1 +
 .../brooklyn/rest/CorsFilterLauncherTest.java   | 247 ++++++
 .../rest/CsrfTokenFilterLauncherTest.java       |   3 +-
 .../AbstractRestApiEntitlementsTest.java        |   8 -
 .../ServerResourceIntegrationTest.java          |   1 -
 .../util/ServerStoppingShutdownHandler.java     |   1 +
 ...rooklynJacksonSerializerIntegrationTest.java |   4 +-
 .../org/apache/brooklyn/cli/AbstractMain.java   |   1 +
 .../org/apache/brooklyn/cli/ItemLister.java     |   2 -
 .../main/java/org/apache/brooklyn/cli/Main.java |   4 +-
 .../apache/brooklyn/cli/lister/ClassFinder.java |   3 +
 .../java/org/apache/brooklyn/cli/CliTest.java   |  13 +
 .../brooklyn/cli/CloudExplorerLiveTest.java     |  62 +-
 .../entity/brooklynnode/BrooklynNodeImpl.java   |   3 +-
 .../brooklynnode/LocalBrooklynNodeImpl.java     |   6 +-
 .../BrooklynNodeUpgradeEffectorBody.java        |   2 +-
 .../brooklyn/entity/chef/ChefAttributeFeed.java |  17 +-
 .../brooklyn/entity/chef/ChefEntityImpl.java    |   1 +
 .../entity/chef/ChefLifecycleEffectorTasks.java |  11 +-
 .../apache/brooklyn/entity/chef/ChefTasks.java  |   1 +
 .../entity/chef/KnifeConvergeTaskFactory.java   |   3 +
 .../brooklyn/entity/chef/KnifeTaskFactory.java  |   1 +
 .../brooklyn/entity/java/JavaAppUtils.java      |  29 +-
 .../java/JavaSoftwareProcessSshDriver.java      |  18 +-
 .../entity/java/JmxAttributeSensor.java         |   1 -
 .../apache/brooklyn/entity/java/JmxSupport.java |   9 +-
 .../entity/java/VanillaJavaAppImpl.java         |   6 +
 .../entity/java/VanillaJavaAppSshDriver.java    |   1 -
 .../entity/machine/AddMachineMetrics.java       |   8 +-
 .../entity/machine/MachineInitTasks.java        |   3 +
 .../entity/machine/pool/ServerPoolImpl.java     |   3 +-
 .../base/AbstractSoftwareProcessDriver.java     |  93 +-
 .../base/AbstractSoftwareProcessSshDriver.java  |   6 +
 .../AbstractSoftwareProcessWinRmDriver.java     |   2 +
 .../SameServerDriverLifecycleEffectorTasks.java |   7 -
 .../software/base/SameServerEntityImpl.java     |  14 +-
 .../software/base/SoftwareProcessDriver.java    |   1 +
 ...wareProcessDriverLifecycleEffectorTasks.java |   9 +-
 .../software/base/SoftwareProcessImpl.java      |  57 +-
 .../base/VanillaWindowsProcessImpl.java         |   1 -
 .../base/VanillaWindowsProcessWinRmDriver.java  |   5 -
 .../MachineLifecycleEffectorTasks.java          | 117 ++-
 .../software/base/lifecycle/ScriptHelper.java   |   5 +
 .../base/lifecycle/WinRmExecuteHelper.java      |   1 +
 .../system_service/InitdServiceInstaller.java   |   2 +-
 .../system_service/SystemServiceEnricher.java   |   3 -
 .../org/apache/brooklyn/feed/jmx/JmxFeed.java   |  14 +-
 .../org/apache/brooklyn/feed/jmx/JmxHelper.java |  17 +-
 .../feed/jmx/JmxNotificationFilters.java        |   1 +
 .../brooklyn/feed/jmx/JmxValueFunctions.java    |   4 +-
 .../ClockerDynamicLocationPatternTest.java      |   3 +-
 .../dynamic/clocker/StubContainerImpl.java      |   4 +-
 .../location/dynamic/clocker/StubHostImpl.java  |  11 -
 .../dynamic/clocker/StubHostLocation.java       |   7 +-
 .../dynamic/clocker/StubInfrastructure.java     |   1 -
 .../brooklyn/entity/AbstractEc2LiveTest.java    |  71 +-
 .../entity/AbstractMultiDistroLiveTest.java     | 142 +++
 .../entity/AbstractOpenstackLiveTest.java       |  80 ++
 .../entity/SimpleAppOpenstackLiveTest.java      |  52 ++
 .../BrooklynNodeIntegrationTest.java            |   3 +-
 .../entity/brooklynnode/BrooklynNodeTest.java   |   4 +-
 .../brooklynnode/SelectMasterEffectorTest.java  |   9 +-
 .../AbstractChefToyMySqlEntityLiveTest.java     |   1 +
 .../brooklyn/entity/java/EntityPollingTest.java |   1 +
 .../brooklyn/entity/java/JavaOptsTest.java      |   3 +-
 ...SoftwareProcessSshDriverIntegrationTest.java |   2 +
 .../entity/java/VanillaJavaAppTest.java         |  25 +-
 .../machine/MachineEntityJcloudsRebindTest.java | 142 +++
 .../entity/machine/MachineEntityRebindTest.java |  20 +-
 .../machine/SetHostnameCustomizerLiveTest.java  |   1 +
 .../machine/SetHostnameCustomizerTest.java      |   1 +
 .../entity/machine/pool/ServerPoolLiveTest.java |   1 +
 .../AbstractSoftwareProcessStreamsTest.java     |   1 +
 .../entity/software/base/EntitySshToolTest.java |   2 +
 .../software/base/SoftwareEffectorTest.java     |   3 +
 .../SoftwareProcessEntityFeedRebindTest.java    |   3 +-
 .../base/SoftwareProcessEntityLatchTest.java    | 331 +++++--
 .../base/SoftwareProcessEntityRebindTest.java   |  10 +-
 ...twareProcessOpenIptablesStreamsLiveTest.java |   1 +
 ...essPersisterInMemorySizeIntegrationTest.java |   1 +
 ...SoftwareProcessSshDriverIntegrationTest.java |   2 -
 ...eProcessStopsDuringStartJcloudsLiveTest.java |   3 +-
 .../SoftwareProcessStopsDuringStartTest.java    |   5 +
 .../MachineLifecycleEffectorTasksTest.java      |   3 +-
 .../base/lifecycle/NaiveScriptRunnerTest.java   |   2 +
 .../base/lifecycle/ScriptHelperTest.java        |   1 +
 .../base/lifecycle/StartStopSshDriverTest.java  |   6 +
 .../location/NetworkEffectorsEc2LiveTests.java  |   1 +
 .../location/NetworkingEffectorsLiveTests.java  |   1 +
 .../AutoScalerPolicyNoMoreMachinesTest.java     |   3 +
 ...rWithAvailabilityZonesMultiLocationTest.java |   3 +-
 .../base/test/jmx/GeneralisedDynamicMBean.java  |   1 +
 .../software/base/test/jmx/JmxService.java      |   3 +-
 .../location/WinRmMachineLocationLiveTest.java  |   1 +
 .../test/mysql/AbstractToyMySqlEntityTest.java  |   2 +-
 .../mysql/DynamicToyMySqlEntityBuilder.java     |   9 +-
 .../test/mysql/DynamicToyMySqlEntityTest.java   |   1 +
 .../PortAttributeSensorAndConfigKeyTest.java    |   4 +-
 .../SystemServiceEnricherTest.java              |   1 -
 .../apache/brooklyn/feed/jmx/JmxFeedTest.java   |  14 +-
 .../apache/brooklyn/feed/jmx/JmxHelperTest.java |   4 +
 .../windows/WindowsPerformanceCounterFeed.java  |  15 +-
 .../winrm/AdvertiseWinrmLoginPolicy.java        |   4 +-
 .../util/core/internal/winrm/WinRmTool.java     |   2 -
 .../WindowsPerformanceCounterFeedLiveTest.java  |   1 +
 .../core/internal/winrm/RecordingWinRmTool.java |   3 +
 .../InfrastructureDeploymentTestCase.java       |   1 -
 .../framework/LoopOverGroupMembersTestCase.java |   1 -
 .../test/framework/ParallelTestCaseImpl.java    |   3 +
 .../brooklyn/test/framework/TestCaseImpl.java   |   3 +
 .../brooklyn/test/framework/TestEffector.java   |   1 -
 .../test/framework/TestEffectorImpl.java        |   4 +-
 .../framework/TestEndpointReachableImpl.java    |   3 +-
 .../test/framework/TestFrameworkAssertions.java |   1 +
 .../test/framework/TestHttpCallImpl.java        |   3 +
 .../brooklyn/test/framework/TestSensorImpl.java |   4 +
 .../test/framework/TestSshCommandImpl.java      |   1 -
 .../test/framework/TestWinrmCommandImpl.java    |   2 +
 .../test/framework/TestEffectorTest.java        |   1 +
 .../brooklyn/test/framework/TestSensorTest.java |   3 +
 .../apache/brooklyn/test/EntityTestUtils.java   |   1 -
 .../org/apache/brooklyn/test/HttpTestUtils.java |   6 +-
 .../org/apache/brooklyn/test/LogWatcher.java    |   2 +
 .../brooklyn/test/NetworkingTestUtils.java      |   1 +
 .../org/apache/brooklyn/test/TestUtils.java     |   4 +
 .../org/apache/brooklyn/test/WebAppMonitor.java |   1 +
 .../brooklyn/config/ConfigInheritances.java     |   1 +
 .../brooklyn/config/ConfigValueAtContainer.java |   1 +
 .../apache/brooklyn/config/StringConfigMap.java |   2 +
 .../java/org/apache/brooklyn/test/Asserts.java  |  10 +-
 .../org/apache/brooklyn/util/ShellUtils.java    |   1 +
 .../brooklyn/util/collections/Jsonya.java       |   2 +
 .../brooklyn/util/collections/QuorumCheck.java  |   2 +-
 .../util/collections/TimeWindowedList.java      |   1 +
 .../util/concurrent/CallableFromRunnable.java   |   1 +
 .../brooklyn/util/crypto/SslTrustUtils.java     |   3 +
 .../brooklyn/util/exceptions/Exceptions.java    |   1 +
 .../util/exceptions/ReferenceWithError.java     |   1 +
 .../apache/brooklyn/util/guava/IfFunctions.java |   8 +-
 .../org/apache/brooklyn/util/guava/Maybe.java   |   8 +
 .../apache/brooklyn/util/http/HttpAsserts.java  |   5 +-
 .../org/apache/brooklyn/util/http/HttpTool.java |   1 +
 .../util/http/TrustingSslSocketFactory.java     |   1 +
 .../util/http/executor/UsernamePassword.java    |   2 +
 .../internal/BasicDelegatingSystemProperty.java |   1 +
 .../apache/brooklyn/util/javalang/Boxing.java   |   2 +-
 .../util/javalang/LoadedClassLoader.java        |   1 +
 .../util/javalang/coerce/EnumTypeCoercions.java |   8 +-
 .../coerce/PrimitiveStringTypeCoercions.java    |  23 +-
 .../util/logging/SimpleOneLineLogFormatter.java |   1 +
 .../brooklyn/util/math/MathFunctions.java       |  20 +
 .../brooklyn/util/math/MathPredicates.java      |   9 +
 .../brooklyn/util/maven/MavenRetriever.java     |   4 +
 .../apache/brooklyn/util/net/Networking.java    |   4 +
 .../util/net/ReachableSocketFinder.java         | 253 ++++--
 .../java/org/apache/brooklyn/util/net/Urls.java |  36 +-
 .../brooklyn/util/osgi/OsgiActivator.java       |   4 +-
 .../org/apache/brooklyn/util/pool/Lease.java    |   1 +
 .../apache/brooklyn/util/repeat/Repeater.java   | 193 +++--
 .../apache/brooklyn/util/ssh/BashCommands.java  |   1 +
 .../util/stream/DelegatingPrintStream.java      |  35 +
 .../brooklyn/util/stream/ReaderInputStream.java |   7 +
 .../brooklyn/util/text/ComparableVersion.java   |   1 +
 .../util/text/NaturalOrderComparator.java       |   1 +
 .../brooklyn/util/text/StringFunctions.java     |   9 +
 .../brooklyn/util/text/StringShortener.java     |  30 +-
 .../org/apache/brooklyn/util/time/Time.java     |   3 +-
 .../org/apache/brooklyn/util/yaml/Yamls.java    |   4 +-
 .../org/apache/brooklyn/test/AssertsTest.java   |   2 +
 .../brooklyn/util/collections/JsonyaTest.java   |   1 +
 .../util/javalang/MemoryUsageTrackerTest.java   |   1 +
 .../brooklyn/util/javalang/ReflectionsTest.java |   2 +-
 .../util/javalang/coerce/TypeCoercionsTest.java |  26 +-
 .../util/net/ReachableSocketFinderTest.java     | 118 ++-
 .../org/apache/brooklyn/util/net/UrlsTest.java  |  40 +-
 .../brooklyn/util/pool/BasicPoolTest.java       |   1 +
 .../brooklyn/util/repeat/RepeaterTest.java      |   8 +-
 .../brooklyn/util/stream/StreamGobblerTest.java |   1 +
 .../brooklyn/util/text/StringShortenerTest.java |  20 +
 .../brooklyn/util/jmx/jmxmp/JmxmpAgent.java     |   2 +
 .../brooklyn/util/jmx/jmxrmi/JmxRmiAgent.java   |   1 +
 .../brooklyn/test/support/StatusListener.java   |   7 +
 766 files changed, 8339 insertions(+), 3581 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/a1b5e3f4/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/BrooklynDslInterpreter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/a1b5e3f4/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslDeferredFunctionCall.java
----------------------------------------------------------------------
diff --cc camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslDeferredFunctionCall.java
index 785e532,0b2963d..fc56a37
--- a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslDeferredFunctionCall.java
+++ b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslDeferredFunctionCall.java
@@@ -25,8 -25,6 +25,7 @@@ import java.util.concurrent.ConcurrentH
  
  import org.apache.brooklyn.api.mgmt.Task;
  import org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.BrooklynDslCommon;
 +import org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslToStringHelpers;
- import org.apache.brooklyn.core.entity.EntityInternal;
  import org.apache.brooklyn.core.mgmt.BrooklynTaskTags;
  import org.apache.brooklyn.util.core.task.Tasks;
  import org.apache.brooklyn.util.exceptions.Exceptions;
@@@ -167,37 -120,33 +166,20 @@@ public class DslDeferredFunctionCall ex
                  instance = facade.get();
                  instanceArgs = args;
                  method = Reflections.getMethodFromArgs(instance, fnName, instanceArgs);
 +                if (method.isPresent()) return ;
              }
 -        }
 -
 -        if (method.isPresent()) {
 -            Method m = method.get();
 -
 -            checkCallAllowed(m);
 -
 -            try {
 -                // Value is most likely another BrooklynDslDeferredSupplier - let the caller handle it,
 -                return Maybe.of(Reflections.invokeMethodFromArgs(instance, m, instanceArgs));
 -            } catch (IllegalArgumentException | IllegalAccessException | InvocationTargetException e) {
 -                // If the method is there but not executable for whatever reason fail with a fatal error, don't return an absent.
 -                throw Exceptions.propagate(new InvocationTargetException(e, "Error invoking '"+fnName+"("+toString(instanceArgs)+")' on '"+instance+"'"));
 -            }
 -        } else {
 -            return Maybe.absent(new IllegalArgumentException("No such function '"+fnName+"("+toString(args)+")' on "+obj));
 +            
 +            method = Maybe.absent();
          }
      }
 -
 +    
      protected Maybe<?> resolve(Object object, boolean immediate) {
-         if (object instanceof DslFunctionSource || object == null) {
-             return Maybe.of(object);
-         }
- 
-         Maybe<?> resultMaybe = Tasks.resolving(object, Object.class)
-                 .context(((EntityInternal)entity()).getExecutionContext())
-                 .deep(true)
-                 .immediately(immediate)
-                 .recursive(false)
-                 .getMaybe();
- 
-         if (resultMaybe.isPresent()) {
-             // No nice way to figure out whether the object is deferred. Try to resolve it
-             // until it matches the input value as a poor man's replacement.
-             Object result = resultMaybe.get();
-             if (result == object) {
-                 return resultMaybe;
-             } else {
-                 return resolve(result, immediate);
-             }
-         } else {
-             return resultMaybe;
-         }
+         return Tasks.resolving(object, Object.class)
+             .context(entity().getExecutionContext())
+             .deep(true)
+             .immediately(immediate)
+             .iterator()
+             .nextOrLast(DslFunctionSource.class);
      }
  
      private static void checkCallAllowed(Method m) {

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/a1b5e3f4/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java
----------------------------------------------------------------------
diff --cc camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java
index 4491097,be28492..2836895
--- a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java
+++ b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java
@@@ -62,6 -62,9 +62,7 @@@ import org.apache.brooklyn.util.core.ta
  import org.apache.brooklyn.util.exceptions.Exceptions;
  import org.apache.brooklyn.util.guava.Maybe;
  import org.apache.brooklyn.util.javalang.Reflections;
+ import org.apache.brooklyn.util.net.Urls;
 -import org.apache.brooklyn.util.text.StringEscapes.JavaStringEscapes;
 -import org.apache.brooklyn.util.text.Strings;
  import org.apache.commons.beanutils.BeanUtils;
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/a1b5e3f4/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/DslComponent.java
----------------------------------------------------------------------
diff --cc camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/DslComponent.java
index 06716e8,f2ae006..84e84b6
--- a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/DslComponent.java
+++ b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/DslComponent.java
@@@ -542,9 -502,8 +542,9 @@@ public class DslComponent extends Brook
              if (targetEntityMaybe.isAbsent()) return Maybe.absent("Target entity not available");
              EntityInternal targetEntity = (EntityInternal) targetEntityMaybe.get();
  
 -            ConfigKey<Object> key = (ConfigKey<Object>) targetEntity.getEntityType().getConfigKey(keyName);
 -            Maybe<Object> result = targetEntity.config().getNonBlocking(key != null ? key : ConfigKeys.newConfigKey(Object.class, keyName));
 +            String keyNameS = resolveKeyName(true);
 +            ConfigKey<?> key = targetEntity.getEntityType().getConfigKey(keyNameS);
-             Maybe<? extends Object> result = targetEntity.config().getNonBlocking(key != null ? key : ConfigKeys.newConfigKey(Object.class, keyNameS));
++            Maybe<?> result = targetEntity.config().getNonBlocking(key != null ? key : ConfigKeys.newConfigKey(Object.class, keyNameS));
              return Maybe.<Object>cast(result);
          }
  

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/a1b5e3f4/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslTest.java
----------------------------------------------------------------------