rename coreâs o.a.b.entity to o.a.b.core.entity - except for things that truly are entities, such as .group and .stock
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/c27cf1d0 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/c27cf1d0 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/c27cf1d0 Branch: refs/heads/master Commit: c27cf1d0e81707e7929d6161f9f8c24ce1836bc9 Parents: fc9fd2a Author: Aled Sage <[email protected]> Authored: Wed Aug 19 16:13:12 2015 +0100 Committer: Aled Sage <[email protected]> Committed: Wed Aug 19 16:13:12 2015 +0100 ---------------------------------------------------------------------- .../apache/brooklyn/core/BrooklynLogging.java | 2 +- .../brooklyn/core/annotation/Effector.java | 33 + .../brooklyn/core/annotation/EffectorParam.java | 42 + .../catalog/internal/CatalogClasspathDo.java | 2 +- .../core/catalog/internal/CatalogUtils.java | 2 +- .../config/internal/AbstractConfigMapImpl.java | 2 +- .../core/entity/AbstractApplication.java | 264 +++ .../brooklyn/core/entity/AbstractEntity.java | 1739 ++++++++++++++++++ .../apache/brooklyn/core/entity/Attributes.java | 169 ++ .../core/entity/BrooklynConfigKeys.java | 188 ++ .../apache/brooklyn/core/entity/Entities.java | 1108 +++++++++++ .../brooklyn/core/entity/EntityAdjuncts.java | 70 + .../core/entity/EntityAndAttribute.java | 107 ++ .../brooklyn/core/entity/EntityDynamicType.java | 339 ++++ .../brooklyn/core/entity/EntityFunctions.java | 153 ++ .../core/entity/EntityInitializers.java | 49 + .../brooklyn/core/entity/EntityInternal.java | 201 ++ .../brooklyn/core/entity/EntityPredicates.java | 451 +++++ .../brooklyn/core/entity/EntitySuppliers.java | 47 + .../brooklyn/core/entity/EntityTasks.java | 81 + .../core/entity/EntityTypeSnapshot.java | 126 ++ .../brooklyn/core/entity/EntityTypes.java | 28 + .../core/entity/StartableApplication.java | 25 + .../drivers/BasicEntityDriverManager.java | 56 + .../drivers/ReflectiveEntityDriverFactory.java | 277 +++ .../drivers/RegistryEntityDriverFactory.java | 127 ++ .../downloads/BasicDownloadRequirement.java | 85 + .../downloads/BasicDownloadResolver.java | 66 + .../drivers/downloads/BasicDownloadTargets.java | 121 ++ .../downloads/BasicDownloadsManager.java | 161 ++ .../DownloadProducerFromCloudsoftRepo.java | 83 + .../DownloadProducerFromLocalRepo.java | 84 + .../DownloadProducerFromProperties.java | 344 ++++ .../DownloadProducerFromUrlAttribute.java | 63 + .../drivers/downloads/DownloadSubstituters.java | 172 ++ .../drivers/downloads/FilenameProducers.java | 64 + .../AbstractConfigurableEntityFactory.java | 82 + .../core/entity/factory/ApplicationBuilder.java | 247 +++ .../factory/BasicConfigurableEntityFactory.java | 75 + .../entity/factory/ClosureEntityFactory.java | 53 + .../factory/ConfigurableEntityFactory.java | 33 + ...figurableEntityFactoryFromEntityFactory.java | 45 + .../core/entity/factory/EntityFactory.java | 32 + .../factory/EntityFactoryForLocation.java | 30 + .../internal/ConfigMapViewWithStringKeys.java | 130 ++ .../core/entity/internal/EntityConfigMap.java | 306 +++ .../internal/EntityTransientCopyInternal.java | 121 ++ .../core/entity/lifecycle/Lifecycle.java | 185 ++ .../core/entity/lifecycle/PolicyDescriptor.java | 68 + .../core/entity/lifecycle/QuorumCheck.java | 108 ++ .../entity/lifecycle/ServiceStateLogic.java | 639 +++++++ .../brooklyn/core/entity/trait/Changeable.java | 35 + .../core/entity/trait/MemberReplaceable.java | 45 + .../brooklyn/core/entity/trait/Resizable.java | 50 + .../brooklyn/core/entity/trait/Startable.java | 123 ++ .../core/entity/trait/StartableMethods.java | 125 ++ .../core/mgmt/EntityManagementUtils.java | 6 +- .../core/mgmt/entitlement/Entitlements.java | 2 +- .../mgmt/ha/HighAvailabilityManagerImpl.java | 2 +- .../internal/AbstractManagementContext.java | 8 +- .../mgmt/internal/BrooklynGarbageCollector.java | 2 +- .../mgmt/internal/BrooklynShutdownHooks.java | 6 +- .../core/mgmt/internal/EffectorUtils.java | 2 +- .../mgmt/internal/EntityManagementSupport.java | 6 +- .../core/mgmt/internal/LocalEntityManager.java | 10 +- .../mgmt/internal/LocalLocationManager.java | 2 +- .../mgmt/internal/LocalManagementContext.java | 2 +- .../mgmt/internal/LocalSubscriptionManager.java | 2 +- .../core/mgmt/internal/LocalUsageManager.java | 6 +- .../NonDeploymentManagementContext.java | 2 +- .../internal/NonDeploymentUsageManager.java | 2 +- .../mgmt/persist/BrooklynPersistenceUtils.java | 4 +- .../rebind/ActivePartialRebindIteration.java | 2 +- .../mgmt/rebind/BasicEntityRebindSupport.java | 4 +- .../mgmt/rebind/InitialFullRebindIteration.java | 2 +- .../rebind/PeriodicDeltaChangeListener.java | 2 +- .../core/mgmt/rebind/RebindIteration.java | 6 +- .../core/mgmt/rebind/RebindManagerImpl.java | 2 +- .../core/mgmt/rebind/dto/AbstractMemento.java | 2 +- .../mgmt/rebind/dto/BasicEnricherMemento.java | 2 +- .../mgmt/rebind/dto/BasicEntityMemento.java | 2 +- .../core/mgmt/rebind/dto/BasicFeedMemento.java | 2 +- .../mgmt/rebind/dto/BasicLocationMemento.java | 2 +- .../mgmt/rebind/dto/BasicPolicyMemento.java | 2 +- .../mgmt/rebind/dto/MementosGenerators.java | 4 +- .../core/mgmt/usage/ApplicationUsage.java | 2 +- .../brooklyn/core/mgmt/usage/LocationUsage.java | 2 +- .../brooklyn/core/mgmt/usage/UsageManager.java | 2 +- .../core/objs/AbstractBrooklynObject.java | 2 +- .../core/objs/AbstractEntityAdjunct.java | 4 +- .../brooklyn/core/objs/AdjunctConfigMap.java | 2 +- .../brooklyn/core/objs/BrooklynTypes.java | 2 +- .../core/objs/proxy/EntityProxyImpl.java | 8 +- .../core/objs/proxy/InternalEntityFactory.java | 8 +- .../core/objs/proxy/InternalPolicyFactory.java | 2 +- .../core/server/entity/BrooklynMetricsImpl.java | 2 +- .../brooklyn/effector/core/AddEffector.java | 2 +- .../brooklyn/effector/core/AddSensor.java | 2 +- .../brooklyn/effector/core/EffectorBody.java | 2 +- .../brooklyn/effector/core/Effectors.java | 4 +- .../brooklyn/effector/core/MethodEffector.java | 6 +- .../brooklyn/entity/annotation/Effector.java | 33 - .../entity/annotation/EffectorParam.java | 42 - .../entity/core/AbstractApplication.java | 264 --- .../brooklyn/entity/core/AbstractEntity.java | 1739 ------------------ .../apache/brooklyn/entity/core/Attributes.java | 169 -- .../entity/core/BrooklynConfigKeys.java | 188 -- .../apache/brooklyn/entity/core/Entities.java | 1108 ----------- .../brooklyn/entity/core/EntityAdjuncts.java | 70 - .../entity/core/EntityAndAttribute.java | 107 -- .../brooklyn/entity/core/EntityDynamicType.java | 339 ---- .../brooklyn/entity/core/EntityFunctions.java | 153 -- .../entity/core/EntityInitializers.java | 49 - .../brooklyn/entity/core/EntityInternal.java | 201 -- .../brooklyn/entity/core/EntityPredicates.java | 451 ----- .../brooklyn/entity/core/EntitySuppliers.java | 47 - .../brooklyn/entity/core/EntityTasks.java | 81 - .../entity/core/EntityTypeSnapshot.java | 126 -- .../brooklyn/entity/core/EntityTypes.java | 28 - .../entity/core/StartableApplication.java | 25 - .../internal/ConfigMapViewWithStringKeys.java | 130 -- .../entity/core/internal/EntityConfigMap.java | 306 --- .../internal/EntityTransientCopyInternal.java | 121 -- .../drivers/BasicEntityDriverManager.java | 56 - .../drivers/ReflectiveEntityDriverFactory.java | 277 --- .../drivers/RegistryEntityDriverFactory.java | 127 -- .../downloads/BasicDownloadRequirement.java | 85 - .../downloads/BasicDownloadResolver.java | 66 - .../drivers/downloads/BasicDownloadTargets.java | 121 -- .../downloads/BasicDownloadsManager.java | 161 -- .../DownloadProducerFromCloudsoftRepo.java | 83 - .../DownloadProducerFromLocalRepo.java | 84 - .../DownloadProducerFromProperties.java | 344 ---- .../DownloadProducerFromUrlAttribute.java | 63 - .../drivers/downloads/DownloadSubstituters.java | 172 -- .../drivers/downloads/FilenameProducers.java | 64 - .../AbstractConfigurableEntityFactory.java | 82 - .../entity/factory/ApplicationBuilder.java | 247 --- .../factory/BasicConfigurableEntityFactory.java | 75 - .../entity/factory/ClosureEntityFactory.java | 53 - .../factory/ConfigurableEntityFactory.java | 33 - ...figurableEntityFactoryFromEntityFactory.java | 45 - .../brooklyn/entity/factory/EntityFactory.java | 32 - .../factory/EntityFactoryForLocation.java | 30 - .../brooklyn/entity/group/AbstractGroup.java | 4 +- .../entity/group/AbstractGroupImpl.java | 6 +- .../group/AbstractMembershipTrackingPolicy.java | 2 +- .../apache/brooklyn/entity/group/Cluster.java | 4 +- .../brooklyn/entity/group/DynamicCluster.java | 12 +- .../entity/group/DynamicClusterImpl.java | 18 +- .../brooklyn/entity/group/DynamicFabric.java | 8 +- .../entity/group/DynamicFabricImpl.java | 16 +- .../brooklyn/entity/group/DynamicGroup.java | 4 +- .../entity/group/DynamicMultiGroupImpl.java | 2 +- .../entity/group/DynamicRegionsFabric.java | 4 +- .../entity/group/DynamicRegionsFabricImpl.java | 6 +- .../brooklyn/entity/group/QuarantineGroup.java | 4 +- .../entity/group/QuarantineGroupImpl.java | 6 +- .../BalancingNodePlacementStrategy.java | 2 +- .../brooklyn/entity/lifecycle/Lifecycle.java | 185 -- .../entity/lifecycle/PolicyDescriptor.java | 68 - .../brooklyn/entity/lifecycle/QuorumCheck.java | 108 -- .../entity/lifecycle/ServiceStateLogic.java | 639 ------- .../brooklyn/entity/stock/BasicApplication.java | 2 +- .../entity/stock/BasicApplicationImpl.java | 2 +- .../brooklyn/entity/stock/BasicEntityImpl.java | 2 +- .../brooklyn/entity/stock/BasicStartable.java | 2 +- .../entity/stock/BasicStartableImpl.java | 16 +- .../brooklyn/entity/stock/DataEntity.java | 2 +- .../brooklyn/entity/stock/DataEntityImpl.java | 2 +- .../entity/stock/DelegateEntityImpl.java | 2 +- .../entity/stock/EffectorStartableImpl.java | 8 +- .../brooklyn/entity/trait/Changeable.java | 35 - .../entity/trait/MemberReplaceable.java | 45 - .../apache/brooklyn/entity/trait/Resizable.java | 50 - .../apache/brooklyn/entity/trait/Startable.java | 123 -- .../brooklyn/entity/trait/StartableMethods.java | 125 -- .../location/access/BrooklynAccessUtils.java | 2 +- .../access/PortForwardManagerAuthority.java | 2 +- .../cloud/names/CustomMachineNamer.java | 2 +- .../brooklyn/location/core/Locations.java | 2 +- .../apache/brooklyn/location/core/Machines.java | 2 +- .../LocalhostMachineProvisioningLocation.java | 2 +- .../location/ssh/SshMachineLocation.java | 2 +- .../winrm/AdvertiseWinrmLoginPolicy.java | 2 +- .../apache/brooklyn/policy/core/Policies.java | 2 +- .../brooklyn/sensor/core/AttributeMap.java | 2 +- .../core/AttributeSensorAndConfigKey.java | 4 +- .../sensor/core/DependentConfiguration.java | 8 +- .../core/PortAttributeSensorAndConfigKey.java | 2 +- ...platedStringAttributeSensorAndConfigKey.java | 2 +- .../enricher/AbstractAggregatingEnricher.java | 2 +- .../sensor/enricher/AbstractAggregator.java | 4 +- .../sensor/enricher/AbstractEnricher.java | 4 +- .../brooklyn/sensor/enricher/Propagator.java | 2 +- .../brooklyn/sensor/enricher/UpdatingMap.java | 2 +- .../brooklyn/sensor/feed/AbstractFeed.java | 2 +- .../sensor/feed/AttributePollHandler.java | 10 +- .../apache/brooklyn/sensor/feed/FeedConfig.java | 2 +- .../org/apache/brooklyn/sensor/feed/Poller.java | 6 +- .../brooklyn/sensor/feed/http/HttpFeed.java | 2 +- .../brooklyn/sensor/feed/shell/ShellFeed.java | 2 +- .../windows/WindowsPerformanceCounterFeed.java | 2 +- .../brooklyn/util/core/flags/TypeCoercions.java | 14 +- .../util/core/task/BasicExecutionContext.java | 2 +- .../brooklyn/util/core/task/DynamicTasks.java | 2 +- .../brooklyn/util/core/task/ValueResolver.java | 2 +- .../util/core/text/TemplateProcessor.java | 4 +- .../core/catalog/internal/CatalogDtoTest.java | 2 +- .../core/catalog/internal/CatalogScanTest.java | 2 +- .../catalog/internal/CatalogVersioningTest.java | 2 +- .../core/catalog/internal/MyCatalogItems.java | 4 +- ...apListAndOtherStructuredConfigKeyTest.groovy | 2 +- .../entity/AbstractApplicationLegacyTest.java | 156 ++ .../core/entity/AbstractEntityLegacyTest.java | 131 ++ .../brooklyn/core/entity/AttributeMapTest.java | 226 +++ .../brooklyn/core/entity/AttributeTest.java | 66 + .../entity/ConfigEntityInheritanceTest.java | 190 ++ .../core/entity/DependentConfigurationTest.java | 413 +++++ .../brooklyn/core/entity/DynamicEntityTest.java | 60 + .../brooklyn/core/entity/EntitiesTest.java | 134 ++ .../brooklyn/core/entity/EntityConfigTest.java | 178 ++ .../core/entity/EntityFunctionsTest.java | 77 + .../core/entity/EntityLocationsTest.java | 126 ++ .../core/entity/EntityPreManagementTest.java | 146 ++ .../core/entity/EntityPredicatesTest.java | 129 ++ .../core/entity/EntityRegistrationTest.java | 102 + .../core/entity/EntitySetFromFlagTest.java | 213 +++ .../brooklyn/core/entity/EntitySpecTest.java | 214 +++ .../core/entity/EntitySubscriptionTest.java | 242 +++ .../core/entity/EntitySuppliersTest.java | 70 + .../brooklyn/core/entity/EntityTypeTest.java | 284 +++ .../brooklyn/core/entity/OwnedChildrenTest.java | 213 +++ .../core/entity/PolicyRegistrationTest.java | 152 ++ .../entity/RecordingSensorEventListener.java | 115 ++ .../brooklyn/core/entity/SanitizerTest.java | 38 + .../drivers/BasicEntityDriverManagerTest.java | 74 + .../drivers/EntityDriverRegistryTest.java | 59 + .../ReflectiveEntityDriverFactoryTest.java | 169 ++ .../RegistryEntityDriverFactoryTest.java | 86 + .../downloads/BasicDownloadsRegistryTest.java | 155 ++ .../DownloadProducerFromLocalRepoTest.java | 130 ++ .../DownloadProducerFromPropertiesTest.java | 162 ++ .../downloads/DownloadSubstitutersTest.java | 131 ++ .../downloads/FilenameProducersTest.java | 34 + .../drivers/downloads/MyEntityDriver.java | 44 + .../brooklyn/core/entity/hello/HelloEntity.java | 53 + .../core/entity/hello/HelloEntityImpl.java | 31 + .../core/entity/hello/LocalEntitiesTest.java | 282 +++ .../entity/internal/ConfigMapGroovyTest.groovy | 61 + .../core/entity/internal/ConfigMapTest.java | 298 +++ .../EntityConfigMapUsageLegacyTest.java | 292 +++ .../internal/EntityConfigMapUsageTest.java | 318 ++++ .../lifecycle/LifecycleTransitionTest.java | 51 + .../entity/lifecycle/ServiceStateLogicTest.java | 314 ++++ .../ApplicationBuilderOverridingTest.java | 221 +++ .../proxying/BasicEntityTypeRegistryTest.java | 135 ++ .../core/entity/proxying/EntityManagerTest.java | 83 + .../core/entity/proxying/EntityProxyTest.java | 171 ++ .../proxying/InternalEntityFactoryTest.java | 109 ++ .../core/entity/trait/FailingEntity.java | 84 + .../core/entity/trait/FailingEntityImpl.java | 87 + .../core/entity/trait/StartableMethodsTest.java | 127 ++ .../AcmeEntitlementManagerTestFixture.java | 4 +- .../core/mgmt/entitlement/EntitlementsTest.java | 4 +- .../mgmt/entitlement/EntityEntitlementTest.java | 4 +- .../ha/HighAvailabilityManagerInMemoryTest.java | 2 +- .../HighAvailabilityManagerSplitBrainTest.java | 4 +- .../ha/HighAvailabilityManagerTestFixture.java | 2 +- .../brooklyn/core/mgmt/ha/HotStandbyTest.java | 2 +- .../core/mgmt/ha/MasterChooserTest.java | 2 +- .../brooklyn/core/mgmt/ha/WarmStandbyTest.java | 2 +- .../core/mgmt/internal/AccessManagerTest.java | 4 +- .../internal/EntityExecutionManagerTest.java | 6 +- .../internal/LocalSubscriptionManagerTest.java | 2 +- .../brooklyn/core/mgmt/osgi/OsgiPathTest.java | 2 +- .../mgmt/osgi/OsgiVersionMoreEntityTest.java | 2 +- ...ntoPersisterInMemorySizeIntegrationTest.java | 2 +- .../BrooklynMementoPersisterTestFixture.java | 4 +- .../mgmt/persist/FileBasedObjectStoreTest.java | 2 +- .../mgmt/persist/XmlMementoSerializerTest.java | 2 +- .../mgmt/rebind/ActivePartialRebindTest.java | 6 +- .../core/mgmt/rebind/CheckpointEntityTest.java | 4 +- .../mgmt/rebind/RebindCatalogEntityTest.java | 10 +- .../mgmt/rebind/RebindDynamicGroupTest.java | 2 +- .../core/mgmt/rebind/RebindEnricherTest.java | 6 +- .../core/mgmt/rebind/RebindEntityTest.java | 10 +- .../core/mgmt/rebind/RebindFailuresTest.java | 4 +- .../core/mgmt/rebind/RebindFeedTest.java | 2 +- .../core/mgmt/rebind/RebindGroupTest.java | 2 +- .../mgmt/rebind/RebindManagerSorterTest.java | 2 +- .../core/mgmt/rebind/RebindPolicyTest.java | 2 +- .../core/mgmt/rebind/RebindTestFixture.java | 8 +- .../mgmt/rebind/RebindTestFixtureWithApp.java | 2 +- .../policy/basic/PolicySubscriptionTest.java | 2 +- .../core/server/entity/BrooklynMetricsTest.java | 4 +- .../core/test/BrooklynAppLiveTestSupport.java | 4 +- .../core/test/BrooklynAppUnitTestSupport.java | 6 +- .../core/test/entity/NoopStartable.java | 2 +- .../core/test/entity/TestApplication.java | 6 +- .../core/test/entity/TestApplicationImpl.java | 2 +- .../core/test/entity/TestClusterImpl.java | 4 +- .../brooklyn/core/test/entity/TestEntity.java | 12 +- .../core/test/entity/TestEntityImpl.java | 6 +- .../entity/TestEntityTransientCopyImpl.java | 2 +- .../EntityCleanupLongevityTestFixture.java | 4 +- .../qa/performance/AbstractPerformanceTest.java | 4 +- .../qa/performance/EntityPerformanceTest.java | 2 +- .../effector/core/EffectorBasicTest.java | 6 +- .../effector/core/EffectorConcatenateTest.java | 8 +- .../effector/core/EffectorMetadataTest.java | 10 +- .../core/EffectorSayHiGroovyTest.groovy | 10 +- .../effector/core/EffectorSayHiTest.java | 10 +- .../effector/core/EffectorTaskTest.java | 8 +- .../core/AbstractApplicationLegacyTest.java | 156 -- .../entity/core/AbstractEntityLegacyTest.java | 131 -- .../brooklyn/entity/core/AttributeMapTest.java | 226 --- .../brooklyn/entity/core/AttributeTest.java | 66 - .../core/ConfigEntityInheritanceTest.java | 188 -- .../entity/core/DependentConfigurationTest.java | 413 ----- .../brooklyn/entity/core/DynamicEntityTest.java | 60 - .../brooklyn/entity/core/EntitiesTest.java | 134 -- .../brooklyn/entity/core/EntityConfigTest.java | 178 -- .../entity/core/EntityFunctionsTest.java | 77 - .../entity/core/EntityLocationsTest.java | 126 -- .../entity/core/EntityPreManagementTest.java | 146 -- .../entity/core/EntityPredicatesTest.java | 129 -- .../entity/core/EntityRegistrationTest.java | 102 - .../entity/core/EntitySetFromFlagTest.java | 213 --- .../brooklyn/entity/core/EntitySpecTest.java | 214 --- .../entity/core/EntitySubscriptionTest.java | 242 --- .../entity/core/EntitySuppliersTest.java | 70 - .../brooklyn/entity/core/EntityTypeTest.java | 284 --- .../brooklyn/entity/core/OwnedChildrenTest.java | 213 --- .../entity/core/PolicyRegistrationTest.java | 152 -- .../core/RecordingSensorEventListener.java | 115 -- .../brooklyn/entity/core/SanitizerTest.java | 38 - .../core/internal/ConfigMapGroovyTest.groovy | 61 - .../entity/core/internal/ConfigMapTest.java | 298 --- .../EntityConfigMapUsageLegacyTest.java | 292 --- .../core/internal/EntityConfigMapUsageTest.java | 318 ---- .../drivers/BasicEntityDriverManagerTest.java | 74 - .../drivers/EntityDriverRegistryTest.java | 59 - .../ReflectiveEntityDriverFactoryTest.java | 169 -- .../RegistryEntityDriverFactoryTest.java | 86 - .../downloads/BasicDownloadsRegistryTest.java | 155 -- .../DownloadProducerFromLocalRepoTest.java | 130 -- .../DownloadProducerFromPropertiesTest.java | 162 -- .../downloads/DownloadSubstitutersTest.java | 131 -- .../downloads/FilenameProducersTest.java | 34 - .../drivers/downloads/MyEntityDriver.java | 44 - .../entity/group/DynamicClusterTest.java | 16 +- ...DynamicClusterWithAvailabilityZonesTest.java | 4 +- .../entity/group/DynamicFabricTest.java | 8 +- .../brooklyn/entity/group/DynamicGroupTest.java | 6 +- .../entity/group/DynamicMultiGroupTest.java | 6 +- .../entity/group/GroupPickUpEntitiesTest.java | 6 +- .../apache/brooklyn/entity/group/GroupTest.java | 6 +- .../group/MembershipTrackingPolicyTest.java | 4 +- .../entity/group/QuarantineGroupTest.java | 2 +- .../brooklyn/entity/hello/HelloEntity.java | 53 - .../brooklyn/entity/hello/HelloEntityImpl.java | 31 - .../entity/hello/LocalEntitiesTest.java | 282 --- .../lifecycle/LifecycleTransitionTest.java | 51 - .../entity/lifecycle/ServiceStateLogicTest.java | 314 ---- .../ApplicationBuilderOverridingTest.java | 221 --- .../proxying/BasicEntityTypeRegistryTest.java | 135 -- .../entity/proxying/EntityManagerTest.java | 83 - .../entity/proxying/EntityProxyTest.java | 171 -- .../proxying/InternalEntityFactoryTest.java | 109 -- .../entity/stock/BasicStartableTest.java | 10 +- .../brooklyn/entity/stock/DataEntityTest.java | 4 +- .../brooklyn/entity/trait/FailingEntity.java | 84 - .../entity/trait/FailingEntityImpl.java | 87 - .../entity/trait/StartableMethodsTest.java | 127 -- .../access/BrooklynAccessUtilsTest.java | 2 +- .../PortForwardManagerLocationResolverTest.java | 2 +- .../location/access/PortForwardManagerTest.java | 2 +- .../location/byon/ByonLocationResolverTest.java | 2 +- ...stMachineProvisioningLocationRebindTest.java | 4 +- ...ixedListMachineProvisioningLocationTest.java | 2 +- .../location/byon/HostLocationResolverTest.java | 2 +- .../byon/SingleMachineLocationResolverTest.java | 2 +- .../location/cloud/CloudMachineNamerTest.java | 4 +- .../location/cloud/CustomMachineNamerTest.java | 4 +- .../location/core/AbstractLocationTest.java | 2 +- ...regatingMachineProvisioningLocationTest.java | 2 +- .../location/core/LocationConfigTest.java | 2 +- .../location/core/LocationExtensionsTest.java | 2 +- .../location/core/LocationPredicatesTest.java | 2 +- .../location/core/LocationRegistryTest.java | 2 +- .../location/core/MachineDetailsTest.java | 2 +- .../location/core/MultiLocationRebindTest.java | 4 +- .../core/MultiLocationResolverTest.java | 2 +- .../location/core/MultiLocationTest.java | 2 +- .../LocalhostLocationResolverTest.java | 2 +- ...ocalhostMachineProvisioningLocationTest.java | 2 +- .../LocalhostProvisioningAndAccessTest.java | 2 +- .../ssh/SshMachineLocationIntegrationTest.java | 2 +- .../SshMachineLocationReuseIntegrationTest.java | 2 +- .../location/ssh/SshMachineLocationTest.java | 8 +- .../winrm/WinRmMachineLocationTest.java | 2 +- .../sensor/core/HttpRequestSensorTest.java | 4 +- .../sensor/enricher/BasicEnricherTest.java | 4 +- ...stomAggregatingEnricherDeprecatedTest.groovy | 2 +- .../enricher/CustomAggregatingEnricherTest.java | 2 +- .../brooklyn/sensor/enricher/EnrichersTest.java | 6 +- .../TransformingEnricherDeprecatedTest.groovy | 2 +- .../YamlRollingTimeWindowMeanEnricherTest.java | 4 +- .../YamlTimeWeightedDeltaEnricherTest.java | 4 +- .../sensor/feed/ConfigToAttributesTest.java | 2 +- .../sensor/feed/function/FunctionFeedTest.java | 4 +- .../brooklyn/sensor/feed/http/HttpFeedTest.java | 8 +- .../feed/shell/ShellFeedIntegrationTest.java | 4 +- .../sensor/feed/ssh/SshFeedIntegrationTest.java | 8 +- .../util/core/internal/TypeCoercionsTest.java | 2 +- .../core/ssh/BashCommandsIntegrationTest.java | 2 +- .../brooklyn/util/core/task/TasksTest.java | 2 +- .../util/core/task/ssh/SshTasksTest.java | 4 +- .../util/core/task/system/SystemTasksTest.java | 2 +- .../brooklyn/demo/GlobalWebFabricExample.java | 6 +- .../brooklyn/demo/KafkaClusterExample.java | 4 +- .../demo/StandaloneQpidBrokerExample.java | 6 +- .../brooklyn/demo/CumulusRDFApplication.java | 14 +- .../demo/HighAvailabilityCassandraCluster.java | 6 +- .../brooklyn/demo/ResilientMongoDbApp.java | 6 +- .../brooklyn/demo/RiakClusterExample.java | 6 +- .../brooklyn/demo/SimpleCassandraCluster.java | 6 +- .../brooklyn/demo/SimpleCouchDBCluster.java | 2 +- .../brooklyn/demo/SimpleMongoDBReplicaSet.java | 2 +- .../brooklyn/demo/SimpleRedisCluster.java | 2 +- .../apache/brooklyn/demo/StormSampleApp.java | 6 +- .../brooklyn/demo/WideAreaCassandraCluster.java | 6 +- .../brooklyn/demo/NodeJsTodoApplication.java | 8 +- .../brooklyn/demo/SingleWebServerExample.java | 8 +- .../demo/WebClusterDatabaseExample.java | 6 +- .../demo/WebClusterDatabaseExampleApp.java | 6 +- .../demo/WebClusterDatabaseExampleGroovy.groovy | 4 +- .../apache/brooklyn/demo/WebClusterExample.java | 4 +- ...lusterDatabaseExampleAppIntegrationTest.java | 4 +- .../location/jclouds/BrooklynMachinePool.java | 2 +- .../policy/jclouds/os/CreateUserPolicy.java | 4 +- .../persist/jclouds/BlobStoreExpiryTest.java | 2 +- .../mgmt/persist/jclouds/BlobStoreTest.java | 2 +- .../JcloudsBlobStoreBasedObjectStoreTest.java | 2 +- .../jclouds/JcloudsExpect100ContinueTest.java | 2 +- .../JcloudsObjectStoreAccessorWriterTest.java | 2 +- .../jclouds/AbstractJcloudsLiveTest.java | 2 +- .../JcloudsByonLocationResolverTest.java | 2 +- .../jclouds/JcloudsLocationMetadataTest.java | 2 +- .../location/jclouds/JcloudsLocationTest.java | 2 +- .../location/jclouds/LiveTestEntity.java | 2 +- .../jclouds/RebindJcloudsLocationLiveTest.java | 4 +- .../provider/AbstractJcloudsLocationTest.java | 2 +- .../AwsEc2LocationWindowsLiveTest.groovy | 2 +- .../zone/AwsAvailabilityZoneExtensionTest.java | 2 +- .../policy/autoscaling/AutoScalerPolicy.java | 6 +- .../policy/enricher/HttpLatencyDetector.java | 2 +- .../policy/followthesun/FollowTheSunPolicy.java | 2 +- .../policy/followthesun/FollowTheSunPool.java | 2 +- .../followthesun/FollowTheSunPoolImpl.java | 6 +- .../policy/ha/AbstractFailureDetector.java | 2 +- .../policy/ha/ServiceFailureDetector.java | 10 +- .../brooklyn/policy/ha/ServiceReplacer.java | 8 +- .../brooklyn/policy/ha/ServiceRestarter.java | 10 +- .../loadbalancing/BalanceableWorkerPool.java | 2 +- .../BalanceableWorkerPoolImpl.java | 6 +- .../loadbalancing/LoadBalancingPolicy.java | 2 +- .../brooklyn/policy/loadbalancing/Movable.java | 4 +- .../autoscaling/AutoScalerPolicyMetricTest.java | 2 +- .../autoscaling/AutoScalerPolicyRebindTest.java | 2 +- .../AutoScalerPolicyReconfigurationTest.java | 2 +- .../autoscaling/AutoScalerPolicyTest.java | 4 +- .../autoscaling/LocallyResizableEntity.java | 6 +- .../policy/enricher/DeltaEnrichersTests.groovy | 6 +- .../enricher/HttpLatencyDetectorTest.java | 2 +- .../policy/enricher/RebindEnricherTest.java | 2 +- .../enricher/RollingMeanEnricherTest.groovy | 6 +- .../RollingTimeWindowMeanEnricherTest.groovy | 6 +- .../enricher/TimeFractionDeltaEnricherTest.java | 4 +- .../AbstractFollowTheSunPolicyTest.java | 4 +- .../FollowTheSunPolicySoakTest.java | 2 +- .../followthesun/FollowTheSunPolicyTest.java | 2 +- .../ha/ConnectionFailureDetectorTest.java | 4 +- .../brooklyn/policy/ha/HaPolicyRebindTest.java | 6 +- ...ServiceFailureDetectorStabilizationTest.java | 10 +- .../policy/ha/ServiceFailureDetectorTest.java | 12 +- .../brooklyn/policy/ha/ServiceReplacerTest.java | 16 +- .../policy/ha/ServiceRestarterTest.java | 10 +- .../AbstractLoadBalancingPolicyTest.java | 2 +- .../BalanceableWorkerPoolTest.java | 6 +- .../ItemsInContainersGroupTest.java | 4 +- .../LoadBalancingPolicyConcurrencyTest.java | 2 +- .../LoadBalancingPolicySoakTest.java | 2 +- .../loadbalancing/LoadBalancingPolicyTest.java | 2 +- .../loadbalancing/MockContainerEntity.java | 4 +- .../loadbalancing/MockContainerEntityImpl.java | 2 +- .../loadbalancing/MockItemEntityImpl.java | 2 +- .../entity/database/derby/DerbySchema.java | 2 +- .../postgresql/PostgreSqlNodeSaltImpl.java | 2 +- .../brooklyn/entity/salt/SaltConfigs.java | 3 +- .../entity/salt/SaltLifecycleEffectorTasks.java | 4 +- .../brooklyn/entity/salt/SaltStackMaster.java | 3 +- .../entity/salt/SaltStackMasterSshDriver.java | 2 +- .../apache/brooklyn/entity/salt/SaltTasks.java | 2 +- .../postgresql/PostgreSqlSaltLiveTest.java | 3 +- .../brooklyn/entity/salt/SaltConfigsTest.java | 5 +- .../entity/monitoring/zabbix/ZabbixFeed.java | 4 +- .../monitoring/zabbix/ZabbixServerImpl.java | 4 +- .../nosql/hazelcast/HazelcastClusterImpl.java | 6 +- .../nosql/hazelcast/HazelcastNodeImpl.java | 3 +- .../nosql/hazelcast/HazelcastNodeSshDriver.java | 3 +- .../hazelcast/HazelcastClusterEc2LiveTest.java | 3 +- .../HazelcastClusterSoftlayerLiveTest.java | 3 +- .../brooklynnode/BrooklynClusterImpl.java | 8 +- .../brooklynnode/BrooklynEntityMirrorImpl.java | 12 +- .../entity/brooklynnode/BrooklynNode.java | 2 +- .../entity/brooklynnode/BrooklynNodeImpl.java | 12 +- .../brooklynnode/BrooklynNodeSshDriver.java | 4 +- .../BrooklynClusterUpgradeEffectorBody.java | 8 +- .../BrooklynNodeUpgradeEffectorBody.java | 6 +- .../effector/SelectMasterEffectorBody.java | 2 +- .../brooklyn/entity/chef/ChefAttributeFeed.java | 2 +- .../brooklyn/entity/chef/ChefConfigs.java | 2 +- .../entity/chef/ChefLifecycleEffectorTasks.java | 4 +- .../java/JavaSoftwareProcessSshDriver.java | 6 +- .../apache/brooklyn/entity/java/JmxSupport.java | 2 +- .../brooklyn/entity/machine/MachineEntity.java | 4 +- .../entity/machine/MachineInitTasks.java | 2 +- .../entity/machine/pool/ServerPool.java | 4 +- .../entity/machine/pool/ServerPoolImpl.java | 8 +- .../base/AbstractSoftwareProcessDriver.java | 6 +- .../base/AbstractSoftwareProcessSshDriver.java | 6 +- .../SameServerDriverLifecycleEffectorTasks.java | 4 +- .../entity/software/base/SameServerEntity.java | 8 +- .../software/base/SameServerEntityImpl.java | 8 +- .../entity/software/base/SoftwareProcess.java | 12 +- .../software/base/SoftwareProcessDriver.java | 2 +- ...wareProcessDriverLifecycleEffectorTasks.java | 10 +- .../software/base/SoftwareProcessImpl.java | 16 +- .../base/VanillaSoftwareProcessSshDriver.java | 2 +- .../base/VanillaWindowsProcessWinRmDriver.java | 2 +- .../MachineLifecycleEffectorTasks.java | 16 +- .../system_service/EntityLaunchListener.java | 2 +- .../system_service/InitdServiceInstaller.java | 4 +- .../system_service/SystemServiceEnricher.java | 4 +- .../brooklyn/sensor/ssh/SshEffectorTasks.java | 2 +- .../winrm/WindowsPerformanceCounterSensors.java | 2 +- .../entity/AbstractGoogleComputeLiveTest.java | 4 +- .../entity/AbstractSoftlayerLiveTest.java | 4 +- .../BrooklynNodeIntegrationTest.java | 4 +- .../entity/brooklynnode/BrooklynNodeTest.java | 6 +- .../entity/brooklynnode/MockBrooklynNode.java | 2 +- .../brooklynnode/SameBrooklynNodeImpl.java | 2 +- .../brooklynnode/SelectMasterEffectorTest.java | 2 +- .../brooklyn/entity/chef/ChefConfigsTest.java | 4 +- .../entity/chef/ChefLiveTestSupport.java | 2 +- .../chef/ChefServerTasksIntegrationTest.java | 4 +- .../ChefSoloDriverMySqlEntityLiveTest.java | 2 +- .../brooklyn/entity/java/EntityPollingTest.java | 2 +- ...SoftwareProcessSshDriverIntegrationTest.java | 2 +- .../brooklyn/entity/java/JmxSupportTest.java | 2 +- .../entity/java/VanillaJavaAppRebindTest.java | 2 +- .../entity/java/VanillaJavaAppTest.java | 4 +- .../entity/machine/MachineEntityRebindTest.java | 4 +- .../machine/pool/AbstractServerPoolTest.java | 8 +- .../entity/machine/pool/ServerPoolLiveTest.java | 2 +- .../pool/ServerPoolLocationResolverTest.java | 4 +- .../machine/pool/ServerPoolRebindTest.java | 2 +- .../entity/machine/pool/ServerPoolTest.java | 4 +- .../software/base/AbstractDockerLiveTest.java | 4 +- ...ctSoftwareProcessRestartIntegrationTest.java | 6 +- .../software/base/DoNothingSoftwareProcess.java | 2 +- .../base/DoNothingSoftwareProcessImpl.java | 2 +- .../software/base/SameServerEntityTest.java | 2 +- .../software/base/SoftwareEffectorTest.java | 2 +- .../base/SoftwareProcessEntityLatchTest.java | 4 +- .../base/SoftwareProcessEntityRebindTest.java | 10 +- .../base/SoftwareProcessEntityTest.java | 18 +- ...SoftwareProcessSshDriverIntegrationTest.java | 8 +- ...ftwareProcessAndChildrenIntegrationTest.java | 4 +- .../MachineLifecycleEffectorTasksTest.java | 8 +- .../base/lifecycle/ScriptHelperTest.java | 2 +- .../base/lifecycle/StartStopSshDriverTest.java | 4 +- .../usage/ApplicationUsageTrackingTest.java | 4 +- .../mgmt/usage/LocationUsageTrackingTest.java | 2 +- .../test/core/mgmt/usage/UsageListenerTest.java | 2 +- ...rWithAvailabilityZonesMultiLocationTest.java | 2 +- .../software/base/test/jmx/JmxService.java | 2 +- .../location/MachineDetailsEc2LiveTest.java | 2 +- .../MachineDetailsGoogleComputeLiveTest.java | 2 +- .../location/WinRmMachineLocationLiveTest.java | 2 +- .../test/mysql/AbstractToyMySqlEntityTest.java | 6 +- .../mysql/DynamicToyMySqlEntityBuilder.java | 2 +- .../PortAttributeSensorAndConfigKeyTest.java | 2 +- .../test/ssh/SshCommandIntegrationTest.java | 4 +- .../SystemServiceEnricherTest.java | 8 +- .../brooklyn/sensor/feed/jmx/JmxFeedTest.java | 6 +- .../sensor/feed/jmx/RebindJmxFeedTest.java | 2 +- .../sensor/ssh/SshEffectorTasksTest.java | 2 +- .../entity/database/crate/CrateNode.java | 2 +- .../entity/database/crate/CrateNodeImpl.java | 2 +- .../database/crate/CrateNodeSshDriver.java | 2 +- .../entity/database/mariadb/MariaDbNode.java | 2 +- .../database/mariadb/MariaDbSshDriver.java | 4 +- .../entity/database/mysql/MySqlClusterImpl.java | 8 +- .../entity/database/mysql/MySqlNode.java | 6 +- .../entity/database/mysql/MySqlSshDriver.java | 4 +- .../PostgreSqlNodeChefImplFromScratch.java | 2 +- .../postgresql/PostgreSqlSshDriver.java | 2 +- .../entity/database/rubyrep/RubyRepNode.java | 2 +- .../database/rubyrep/RubyRepNodeImpl.java | 2 +- .../database/rubyrep/RubyRepSshDriver.java | 4 +- .../crate/CrateNodeIntegrationTest.java | 6 +- .../mariadb/MariaDbIntegrationTest.java | 4 +- .../database/postgresql/PostgreSqlChefTest.java | 2 +- .../postgresql/PostgreSqlIntegrationTest.java | 4 +- .../rubyrep/RubyRepIntegrationTest.java | 4 +- .../messaging/activemq/ActiveMQBroker.java | 2 +- .../messaging/activemq/ActiveMQBrokerImpl.java | 2 +- .../messaging/activemq/ActiveMQSshDriver.java | 2 +- .../entity/messaging/amqp/AmqpServer.java | 2 +- .../entity/messaging/jms/JMSBrokerImpl.java | 2 +- .../messaging/jms/JMSDestinationImpl.java | 2 +- .../kafka/AbstractfKafkaSshDriver.java | 2 +- .../brooklyn/entity/messaging/kafka/Kafka.java | 2 +- .../entity/messaging/kafka/KafkaBrokerImpl.java | 2 +- .../entity/messaging/kafka/KafkaCluster.java | 6 +- .../messaging/kafka/KafkaClusterImpl.java | 6 +- .../entity/messaging/kafka/KafkaZooKeeper.java | 4 +- .../messaging/kafka/KafkaZooKeeperImpl.java | 2 +- .../kafka/KafkaZooKeeperSshDriver.java | 2 +- .../entity/messaging/qpid/QpidBroker.java | 2 +- .../entity/messaging/qpid/QpidBrokerImpl.java | 2 +- .../entity/messaging/qpid/QpidSshDriver.java | 2 +- .../messaging/rabbit/RabbitBrokerImpl.java | 2 +- .../messaging/rabbit/RabbitDestination.java | 2 +- .../messaging/rabbit/RabbitSshDriver.java | 2 +- .../entity/messaging/storm/StormDeployment.java | 2 +- .../messaging/storm/StormDeploymentImpl.java | 2 +- .../entity/messaging/storm/StormImpl.java | 2 +- .../entity/messaging/storm/StormSshDriver.java | 4 +- .../entity/zookeeper/ZooKeeperEnsembleImpl.java | 4 +- .../entity/zookeeper/ZooKeeperSshDriver.java | 2 +- .../messaging/activemq/ActiveMQEc2LiveTest.java | 2 +- .../activemq/ActiveMQGoogleComputeLiveTest.java | 2 +- .../activemq/ActiveMQIntegrationTest.java | 6 +- .../messaging/kafka/KafkaIntegrationTest.java | 6 +- .../entity/messaging/kafka/KafkaLiveTest.java | 4 +- .../entity/messaging/kafka/KafkaSupport.java | 2 +- .../messaging/qpid/QpidIntegrationTest.java | 8 +- .../messaging/rabbit/RabbitIntegrationTest.java | 6 +- .../storm/StormAbstractCloudLiveTest.java | 6 +- .../messaging/storm/StormEc2LiveTest.java | 4 +- .../zookeeper/ZooKeeperEc2LiveTest.java | 4 +- .../zookeeper/ZooKeeperEnsembleLiveTest.java | 8 +- .../entity/monitoring/monit/MonitNode.java | 2 +- .../entity/monitoring/monit/MonitSshDriver.java | 2 +- .../monitoring/monit/MonitIntegrationTest.java | 2 +- .../entity/network/bind/BindDnsServer.java | 2 +- .../entity/network/bind/BindDnsServerImpl.java | 4 +- .../bind/BindDnsServerIntegrationTest.java | 8 +- .../network/bind/BindDnsServerLiveTest.java | 4 +- .../nosql/cassandra/CassandraDatacenter.java | 2 +- .../cassandra/CassandraDatacenterImpl.java | 10 +- .../entity/nosql/cassandra/CassandraFabric.java | 2 +- .../nosql/cassandra/CassandraFabricImpl.java | 10 +- .../entity/nosql/cassandra/CassandraNode.java | 2 +- .../nosql/cassandra/CassandraNodeImpl.java | 4 +- .../nosql/cassandra/CassandraNodeSshDriver.java | 4 +- .../nosql/couchbase/CouchbaseClusterImpl.java | 10 +- .../entity/nosql/couchbase/CouchbaseNode.java | 6 +- .../nosql/couchbase/CouchbaseNodeImpl.java | 2 +- .../nosql/couchbase/CouchbaseNodeSshDriver.java | 10 +- .../CouchbaseSyncGatewaySshDriver.java | 4 +- .../nosql/couchdb/CouchDBNodeSshDriver.java | 2 +- .../ElasticSearchNodeSshDriver.java | 2 +- .../nosql/mongodb/AbstractMongoDBSshDriver.java | 2 +- .../entity/nosql/mongodb/MongoDBClient.java | 4 +- .../entity/nosql/mongodb/MongoDBClientImpl.java | 2 +- .../nosql/mongodb/MongoDBClientSshDriver.java | 2 +- .../nosql/mongodb/MongoDBReplicaSetImpl.java | 6 +- .../sharding/CoLocatedMongoDBRouterImpl.java | 4 +- .../sharding/MongoDBRouterClusterImpl.java | 4 +- .../sharding/MongoDBShardClusterImpl.java | 2 +- .../sharding/MongoDBShardedDeployment.java | 2 +- .../sharding/MongoDBShardedDeploymentImpl.java | 14 +- .../entity/nosql/redis/RedisCluster.java | 2 +- .../entity/nosql/redis/RedisClusterImpl.java | 10 +- .../entity/nosql/redis/RedisShardImpl.java | 2 +- .../entity/nosql/redis/RedisStoreSshDriver.java | 2 +- .../brooklyn/entity/nosql/riak/RiakCluster.java | 2 +- .../entity/nosql/riak/RiakClusterImpl.java | 16 +- .../brooklyn/entity/nosql/riak/RiakNode.java | 6 +- .../entity/nosql/riak/RiakNodeImpl.java | 2 +- .../entity/nosql/riak/RiakNodeSshDriver.java | 4 +- .../brooklyn/entity/nosql/solr/SolrServer.java | 2 +- .../entity/nosql/solr/SolrServerImpl.java | 2 +- .../entity/nosql/solr/SolrServerSshDriver.java | 2 +- .../entity/nosql/cassandra/AstyanaxSupport.java | 2 +- .../CassandraDatacenterIntegrationTest.java | 4 +- .../cassandra/CassandraDatacenterLiveTest.java | 6 +- ...assandraDatacenterRebindIntegrationTest.java | 2 +- .../cassandra/CassandraDatacenterTest.java | 4 +- .../nosql/cassandra/CassandraFabricTest.java | 12 +- .../cassandra/CassandraNodeIntegrationTest.java | 4 +- .../nosql/couchbase/CouchbaseOfflineTest.java | 2 +- .../CouchbaseSyncGatewayEc2LiveTest.java | 2 +- .../nosql/couchdb/AbstractCouchDBNodeTest.java | 4 +- .../nosql/couchdb/CouchDBClusterLiveTest.java | 6 +- .../nosql/couchdb/CouchDBNodeEc2LiveTest.java | 2 +- .../couchdb/CouchDBNodeIntegrationTest.java | 2 +- .../nosql/couchdb/CouchDBNodeLiveTest.java | 2 +- .../entity/nosql/couchdb/JcouchdbSupport.java | 2 +- .../ElasticSearchClusterIntegrationTest.java | 4 +- .../ElasticSearchNodeIntegrationTest.java | 8 +- .../nosql/mongodb/MongoDBIntegrationTest.java | 6 +- .../mongodb/MongoDBReplicaSetEc2LiveTest.java | 2 +- .../MongoDBReplicaSetIntegrationTest.java | 2 +- .../MongoDBConfigServerIntegrationTest.java | 6 +- .../MongoDBShardedDeploymentEc2LiveTest.java | 2 +- ...MongoDBShardedDeploymentIntegrationTest.java | 2 +- .../redis/RedisClusterIntegrationTest.java | 6 +- .../nosql/redis/RedisIntegrationTest.java | 4 +- .../nosql/riak/RiakClusterEc2LiveTest.java | 2 +- .../nosql/riak/RiakNodeIntegrationTest.java | 4 +- .../entity/nosql/solr/SolrJSupport.java | 2 +- .../nosql/solr/SolrServerEc2LiveTest.java | 2 +- .../nosql/solr/SolrServerIntegrationTest.java | 4 +- .../entity/nosql/solr/SolrServerLiveTest.java | 2 +- .../entity/osgi/karaf/KarafContainer.java | 4 +- .../entity/osgi/karaf/KarafContainerImpl.java | 4 +- .../entity/osgi/karaf/KarafSshDriver.java | 2 +- .../entity/osgi/karaf/KarafContainerTest.java | 4 +- .../entity/dns/AbstractGeoDnsService.java | 6 +- .../entity/dns/AbstractGeoDnsServiceImpl.java | 10 +- .../dns/geoscaling/GeoscalingDnsService.java | 2 +- .../geoscaling/GeoscalingDnsServiceImpl.java | 4 +- .../entity/proxy/AbstractControllerImpl.java | 10 +- .../AbstractNonProvisionedControllerImpl.java | 4 +- .../brooklyn/entity/proxy/LoadBalancer.java | 6 +- .../entity/proxy/nginx/NginxController.java | 4 +- .../entity/proxy/nginx/NginxControllerImpl.java | 8 +- .../entity/proxy/nginx/NginxSshDriver.java | 8 +- .../brooklyn/entity/proxy/nginx/UrlMapping.java | 2 +- .../entity/proxy/nginx/UrlMappingImpl.java | 10 +- .../webapp/ControlledDynamicWebAppCluster.java | 12 +- .../ControlledDynamicWebAppClusterImpl.java | 16 +- .../entity/webapp/DynamicWebAppClusterImpl.java | 6 +- .../entity/webapp/ElasticJavaWebAppService.java | 8 +- .../entity/webapp/JavaWebAppService.java | 4 +- .../webapp/JavaWebAppSoftwareProcessImpl.java | 4 +- .../entity/webapp/JavaWebAppSshDriver.java | 2 +- .../entity/webapp/WebAppServiceConstants.java | 2 +- .../entity/webapp/jboss/JBoss6ServerImpl.java | 2 +- .../entity/webapp/jboss/JBoss6SshDriver.java | 4 +- .../entity/webapp/jboss/JBoss7ServerImpl.java | 2 +- .../entity/webapp/jboss/JBoss7SshDriver.java | 2 +- .../entity/webapp/jetty/Jetty6ServerImpl.java | 2 +- .../entity/webapp/jetty/Jetty6SshDriver.java | 2 +- .../webapp/nodejs/NodeJsWebAppService.java | 2 +- .../webapp/nodejs/NodeJsWebAppServiceImpl.java | 2 +- .../webapp/nodejs/NodeJsWebAppSshDriver.java | 2 +- .../entity/webapp/tomcat/TomcatSshDriver.java | 2 +- .../entity/dns/AbstractGeoDnsServiceTest.java | 8 +- .../geoscaling/GeoscalingIntegrationTest.java | 4 +- .../entity/proxy/AbstractControllerTest.java | 8 +- .../brooklyn/entity/proxy/StubAppServer.java | 6 +- .../brooklyn/entity/proxy/UrlMappingTest.java | 12 +- .../nginx/NginxClusterIntegrationTest.java | 4 +- .../nginx/NginxHttpsSslIntegrationTest.java | 2 +- .../proxy/nginx/NginxIntegrationTest.java | 2 +- .../proxy/nginx/NginxLightIntegrationTest.java | 6 +- .../proxy/nginx/NginxRebindIntegrationTest.java | 4 +- .../nginx/NginxRebindWithHaIntegrationTest.java | 8 +- .../nginx/NginxUrlMappingIntegrationTest.java | 6 +- .../proxy/nginx/NginxWebClusterEc2LiveTest.java | 4 +- .../AbstractWebAppFixtureIntegrationTest.java | 8 +- ...lledDynamicWebAppClusterIntegrationTest.java | 6 +- .../ControlledDynamicWebAppClusterTest.java | 6 +- .../entity/webapp/DynamicWebAppClusterTest.java | 6 +- .../entity/webapp/DynamicWebAppFabricTest.java | 6 +- .../webapp/ElasticCustomLocationTest.java | 8 +- ...ElasticJavaWebAppServiceIntegrationTest.java | 2 +- .../webapp/TomcatAutoScalerPolicyTest.java | 2 +- .../webapp/WebAppConcurrentDeployTest.java | 4 +- .../webapp/WebAppLiveIntegrationTest.groovy | 4 +- ...namicWebAppClusterRebindIntegrationTest.java | 4 +- ...namicWebAppClusterRebindIntegrationTest.java | 4 +- ...Boss7ServerNonInheritingIntegrationTest.java | 2 +- .../NodeJsWebAppFixtureIntegrationTest.java | 4 +- .../test/entity/TestJavaWebAppEntity.java | 6 +- .../camp/brooklyn/YamlLauncherAbstract.java | 2 +- .../BrooklynAssemblyTemplateInstantiator.java | 2 +- .../BrooklynComponentTemplateResolver.java | 2 +- .../spi/dsl/BrooklynDslDeferredSupplier.java | 4 +- .../spi/dsl/methods/BrooklynDslCommon.java | 2 +- .../brooklyn/spi/dsl/methods/DslComponent.java | 6 +- .../camp/brooklyn/AbstractYamlRebindTest.java | 4 +- .../camp/brooklyn/AbstractYamlTest.java | 2 +- .../camp/brooklyn/ByonLocationsYamlTest.java | 2 +- .../camp/brooklyn/DslAndRebindYamlTest.java | 6 +- .../brooklyn/EmptySoftwareProcessYamlTest.java | 2 +- .../EnrichersSlightlySimplerYamlTest.java | 6 +- .../camp/brooklyn/EnrichersYamlTest.java | 6 +- .../camp/brooklyn/EntitiesYamlTest.java | 12 +- ...aWebAppWithDslYamlRebindIntegrationTest.java | 2 +- .../brooklyn/JavaWebAppsIntegrationTest.java | 6 +- .../camp/brooklyn/JavaWebAppsMatchingTest.java | 2 +- .../camp/brooklyn/MapReferenceYamlTest.java | 2 +- .../brooklyn/camp/brooklyn/ObjectsYamlTest.java | 2 +- .../camp/brooklyn/PoliciesYamlTest.java | 4 +- .../brooklyn/ReferencingYamlTestEntityImpl.java | 2 +- .../brooklyn/ReloadBrooklynPropertiesTest.java | 4 +- .../camp/brooklyn/TestEntityWithInitConfig.java | 4 +- .../brooklyn/TestEntityWithInitConfigImpl.java | 2 +- .../TestSensorAndEffectorInitializer.java | 2 +- .../brooklyn/VanillaBashNetcatYamlTest.java | 8 +- .../brooklyn/camp/brooklyn/WrapAppTest.java | 2 +- .../brooklyn/catalog/CatalogYamlCombiTest.java | 2 +- .../brooklyn/catalog/CatalogYamlRebindTest.java | 4 +- .../brooklyn/test/lite/CampYamlLiteTest.java | 4 +- .../main/java/org/apache/brooklyn/cli/Main.java | 12 +- .../apache/brooklyn/cli/lister/ClassFinder.java | 4 +- .../brooklyn/cli/lister/ItemDescriptors.java | 2 +- .../java/org/apache/brooklyn/cli/CliTest.java | 12 +- .../src/test/resources/ExampleAppInFile.groovy | 2 +- .../brooklyn/cli/BaseCliIntegrationTest.java | 3 +- .../BrooklynJavascriptGuiLauncherTest.java | 2 +- .../brooklyn/launcher/BrooklynLauncher.java | 8 +- .../launcher/config/BrooklynGlobalConfig.java | 2 +- .../entity/basic/VanillaSoftwareYamlTest.java | 2 +- .../BrooklynEntityMirrorIntegrationTest.java | 6 +- .../brooklynnode/BrooklynNodeRestTest.java | 8 +- .../BrooklynLauncherRebindTestFixture.java | 4 +- .../brooklyn/launcher/BrooklynLauncherTest.java | 2 +- .../launcher/BrooklynWebServerTest.java | 2 +- .../brooklyn/launcher/WebAppRunnerTest.java | 2 +- .../blueprints/AbstractBlueprintTest.java | 6 +- .../qa/load/SimulatedJBoss7ServerImpl.java | 2 +- .../brooklyn/qa/load/SimulatedTheeTierApp.java | 10 +- .../SoftlayerObtainPrivateLiveTest.java | 8 +- .../org/apache/brooklyn/qa/load/LoadTest.java | 6 +- .../qa/longevity/webcluster/WebClusterApp.java | 6 +- .../ApplicationResourceIntegrationTest.java | 4 +- .../rest/client/BrooklynApiRestClientTest.java | 4 +- .../rest/resources/ApplicationResource.java | 8 +- .../rest/resources/EntityConfigResource.java | 4 +- .../brooklyn/rest/resources/SensorResource.java | 2 +- .../brooklyn/rest/resources/ServerResource.java | 8 +- .../brooklyn/rest/resources/UsageResource.java | 2 +- .../rest/transform/ApplicationTransformer.java | 6 +- .../rest/transform/CatalogTransformer.java | 2 +- .../rest/util/BrooklynRestResourceUtils.java | 12 +- .../BrooklynRestApiLauncherTestFixture.java | 2 +- .../brooklyn/rest/HaMasterCheckFilterTest.java | 2 +- .../brooklyn/rest/domain/ApplicationTest.java | 2 +- .../brooklyn/rest/domain/SensorSummaryTest.java | 2 +- .../ApplicationResourceIntegrationTest.java | 2 +- .../rest/resources/ApplicationResourceTest.java | 10 +- .../resources/EntityConfigResourceTest.java | 4 +- .../rest/resources/EntityResourceTest.java | 4 +- .../rest/resources/ScriptResourceTest.java | 2 +- .../SensorResourceIntegrationTest.java | 4 +- .../rest/resources/SensorResourceTest.java | 4 +- .../rest/resources/ServerShutdownTest.java | 10 +- .../rest/resources/UsageResourceTest.java | 2 +- .../rest/testing/BrooklynRestApiTest.java | 2 +- .../rest/testing/BrooklynRestResourceTest.java | 2 +- .../testing/mocks/NameMatcherGroupImpl.java | 2 +- .../rest/testing/mocks/RestMockApp.java | 2 +- .../rest/testing/mocks/RestMockAppBuilder.java | 4 +- .../testing/mocks/RestMockSimpleEntity.java | 4 +- .../util/BrooklynRestResourceUtilsTest.java | 4 +- .../rest/util/EntityLocationUtilsTest.java | 2 +- .../json/BrooklynJacksonSerializerTest.java | 4 +- 876 files changed, 18278 insertions(+), 18273 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c27cf1d0/core/src/main/java/org/apache/brooklyn/core/BrooklynLogging.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/core/BrooklynLogging.java b/core/src/main/java/org/apache/brooklyn/core/BrooklynLogging.java index fd6b8b9..db9eb52 100644 --- a/core/src/main/java/org/apache/brooklyn/core/BrooklynLogging.java +++ b/core/src/main/java/org/apache/brooklyn/core/BrooklynLogging.java @@ -19,7 +19,7 @@ package org.apache.brooklyn.core; import org.apache.brooklyn.api.entity.Entity; -import org.apache.brooklyn.entity.core.EntityInternal; +import org.apache.brooklyn.core.entity.EntityInternal; import org.slf4j.Logger; /** contains common logging categories */ http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c27cf1d0/core/src/main/java/org/apache/brooklyn/core/annotation/Effector.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/core/annotation/Effector.java b/core/src/main/java/org/apache/brooklyn/core/annotation/Effector.java new file mode 100644 index 0000000..b7fc0e3 --- /dev/null +++ b/core/src/main/java/org/apache/brooklyn/core/annotation/Effector.java @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.brooklyn.core.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Marks a method as being an effector. Provides runtime to meta-data about that effector. + */ +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.PARAMETER, ElementType.METHOD}) +public @interface Effector { + String description() default ""; +} http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c27cf1d0/core/src/main/java/org/apache/brooklyn/core/annotation/EffectorParam.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/core/annotation/EffectorParam.java b/core/src/main/java/org/apache/brooklyn/core/annotation/EffectorParam.java new file mode 100644 index 0000000..8fdf79b --- /dev/null +++ b/core/src/main/java/org/apache/brooklyn/core/annotation/EffectorParam.java @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.brooklyn.core.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +//FIXME Move to brooklyn.entity.effector? + +/** + * Gives meta-data about a parameter of the effector. + */ +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.PARAMETER) +public @interface EffectorParam { + String name(); + String description() default MAGIC_STRING_MEANING_NULL; + String defaultValue() default MAGIC_STRING_MEANING_NULL; + boolean nullable() default true; + + /** Cannot use null as a default (e.g. for defaultValue); therefore define a magic string to mean that + /* so can tell when no-one has set it. */ + public static final String MAGIC_STRING_MEANING_NULL = "null default value; do not mis-use! 3U=Hhfkr8wuov]WO"; +} http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c27cf1d0/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogClasspathDo.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogClasspathDo.java b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogClasspathDo.java index 4868865..ffb7874 100644 --- a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogClasspathDo.java +++ b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogClasspathDo.java @@ -38,8 +38,8 @@ import org.apache.brooklyn.api.entity.Entity; import org.apache.brooklyn.api.entity.ImplementedBy; import org.apache.brooklyn.api.location.Location; import org.apache.brooklyn.api.policy.Policy; +import org.apache.brooklyn.core.entity.factory.ApplicationBuilder; import org.apache.brooklyn.core.mgmt.internal.ManagementContextInternal; -import org.apache.brooklyn.entity.factory.ApplicationBuilder; import org.apache.brooklyn.util.core.ResourceUtils; import org.apache.brooklyn.util.core.javalang.ReflectionScanner; import org.apache.brooklyn.util.core.javalang.UrlClassLoader; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c27cf1d0/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogUtils.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogUtils.java b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogUtils.java index 60fbc56..1da2957 100644 --- a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogUtils.java +++ b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogUtils.java @@ -32,6 +32,7 @@ import org.apache.brooklyn.api.mgmt.ManagementContext; import org.apache.brooklyn.api.objs.BrooklynObject; import org.apache.brooklyn.core.BrooklynLogging; import org.apache.brooklyn.core.catalog.internal.BasicBrooklynCatalog.BrooklynLoaderTracker; +import org.apache.brooklyn.core.entity.EntityInternal; import org.apache.brooklyn.core.mgmt.classloading.BrooklynClassLoadingContext; import org.apache.brooklyn.core.mgmt.classloading.BrooklynClassLoadingContextSequential; import org.apache.brooklyn.core.mgmt.classloading.JavaBrooklynClassLoadingContext; @@ -40,7 +41,6 @@ import org.apache.brooklyn.core.mgmt.ha.OsgiManager; import org.apache.brooklyn.core.mgmt.internal.ManagementContextInternal; import org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl.RebindTracker; import org.apache.brooklyn.core.objs.BrooklynObjectInternal; -import org.apache.brooklyn.entity.core.EntityInternal; import org.apache.brooklyn.util.guava.Maybe; import org.apache.brooklyn.util.text.Strings; import org.apache.brooklyn.util.time.Time; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c27cf1d0/core/src/main/java/org/apache/brooklyn/core/config/internal/AbstractConfigMapImpl.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/core/config/internal/AbstractConfigMapImpl.java b/core/src/main/java/org/apache/brooklyn/core/config/internal/AbstractConfigMapImpl.java index 8a0b9e8..fd02fc1 100644 --- a/core/src/main/java/org/apache/brooklyn/core/config/internal/AbstractConfigMapImpl.java +++ b/core/src/main/java/org/apache/brooklyn/core/config/internal/AbstractConfigMapImpl.java @@ -27,7 +27,7 @@ import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.config.ConfigMap; import org.apache.brooklyn.config.ConfigKey.HasConfigKey; import org.apache.brooklyn.core.config.StructuredConfigKey; -import org.apache.brooklyn.entity.core.internal.ConfigMapViewWithStringKeys; +import org.apache.brooklyn.core.entity.internal.ConfigMapViewWithStringKeys; import org.apache.brooklyn.util.core.flags.TypeCoercions; import org.apache.brooklyn.util.core.task.DeferredSupplier; import org.slf4j.Logger; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c27cf1d0/core/src/main/java/org/apache/brooklyn/core/entity/AbstractApplication.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/core/entity/AbstractApplication.java b/core/src/main/java/org/apache/brooklyn/core/entity/AbstractApplication.java new file mode 100644 index 0000000..03bfe31 --- /dev/null +++ b/core/src/main/java/org/apache/brooklyn/core/entity/AbstractApplication.java @@ -0,0 +1,264 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.brooklyn.core.entity; + +import java.util.Collection; +import java.util.Map; + +import org.apache.brooklyn.api.entity.Application; +import org.apache.brooklyn.api.entity.Entity; +import org.apache.brooklyn.api.location.Location; +import org.apache.brooklyn.config.ConfigKey; +import org.apache.brooklyn.core.config.ConfigKeys; +import org.apache.brooklyn.core.entity.lifecycle.Lifecycle; +import org.apache.brooklyn.core.entity.lifecycle.ServiceStateLogic; +import org.apache.brooklyn.core.entity.lifecycle.ServiceStateLogic.ServiceProblemsLogic; +import org.apache.brooklyn.core.entity.trait.StartableMethods; +import org.apache.brooklyn.core.mgmt.internal.ManagementContextInternal; +import org.apache.brooklyn.util.exceptions.Exceptions; +import org.apache.brooklyn.util.exceptions.RuntimeInterruptedException; +import org.apache.brooklyn.util.text.Strings; +import org.apache.brooklyn.util.time.Time; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Users can extend this to define the entities in their application, and the relationships between + * those entities. Users should override the {@link #init()} method, and in there should create + * their entities. + */ +public abstract class AbstractApplication extends AbstractEntity implements StartableApplication { + + private static final Logger log = LoggerFactory.getLogger(AbstractApplication.class); + + /** + * The default name to use for this app, if not explicitly overridden by the top-level app. + * Necessary to avoid the app being wrapped in another layer of "BasicApplication" on deployment. + * Previously, the catalog item gave an explicit name (rathe rthan this defaultDisplayName), which + * meant that if the user chose a different name then AMP would automatically wrap this app so + * that both names would be presented. + */ + public static final ConfigKey<String> DEFAULT_DISPLAY_NAME = ConfigKeys.newStringConfigKey("defaultDisplayName"); + + private volatile Application application; + + public AbstractApplication() { + } + + public void init() { + super.init(); + if (Strings.isNonBlank(getConfig(DEFAULT_DISPLAY_NAME))) { + setDefaultDisplayName(getConfig(DEFAULT_DISPLAY_NAME)); + } + initApp(); + } + + protected void initApp() {} + + /** + * + * @deprecated since 0.6; use EntitySpec so no-arg constructor + */ + @Deprecated + public AbstractApplication(Map properties) { + super(properties); + } + + /** + * Constructor for when application is nested inside another application + * + * @deprecated Nesting applications is not currently supported + */ + @Deprecated + public AbstractApplication(Map properties, Entity parent) { + super(properties, parent); + } + + @Override + public Application getApplication() { + if (application!=null) { + if (application.getId().equals(getId())) + return (Application) getProxyIfAvailable(); + return application; + } + if (getParent()==null) return (Application)getProxyIfAvailable(); + return getParent().getApplication(); + } + + @Override + protected synchronized void setApplication(Application app) { + if (app.getId().equals(getId())) { + application = getProxy()!=null ? (Application)getProxy() : app; + } else { + application = app; + + // Alex, Mar 2013: added some checks; + // i *think* these conditions should not happen, + // and so should throw but don't want to break things (yet) + if (getParent()==null) { + log.warn("Setting application of "+this+" to "+app+", but "+this+" is not parented"); + } else if (getParent().getApplicationId().equals(app.getParent())) { + log.warn("Setting application of "+this+" to "+app+", but parent "+getParent()+" has different app "+getParent().getApplication()); + } + } + super.setApplication(app); + } + + @Override + public AbstractApplication setParent(Entity parent) { + super.setParent(parent); + return this; + } + + /** as {@link AbstractEntity#initEnrichers()} but also adding default service not-up and problem indicators from children */ + @Override + protected void initEnrichers() { + super.initEnrichers(); + + // default app logic; easily overridable by adding a different enricher with the same tag + ServiceStateLogic.newEnricherFromChildren().checkChildrenAndMembers().addTo(this); + ServiceStateLogic.ServiceNotUpLogic.updateNotUpIndicator(this, Attributes.SERVICE_STATE_ACTUAL, "Application created but not yet started, at "+Time.makeDateString()); + } + + /** + * Default start will start all Startable children (child.start(Collection<? extends Location>)), + * calling preStart(locations) first and postStart(locations) afterwards. + */ + @Override + public void start(Collection<? extends Location> locations) { + this.addLocations(locations); + Collection<? extends Location> locationsToUse = getLocations(); + ServiceProblemsLogic.clearProblemsIndicator(this, START); + ServiceStateLogic.ServiceNotUpLogic.updateNotUpIndicator(this, Attributes.SERVICE_STATE_ACTUAL, "Application starting"); + setExpectedStateAndRecordLifecycleEvent(Lifecycle.STARTING); + try { + preStart(locationsToUse); + // if there are other items which should block service_up, they should be done in preStart + ServiceStateLogic.ServiceNotUpLogic.clearNotUpIndicator(this, Attributes.SERVICE_STATE_ACTUAL); + + doStart(locationsToUse); + postStart(locationsToUse); + } catch (Exception e) { + // TODO should probably remember these problems then clear? if so, do it here ... or on all effectors? +// ServiceProblemsLogic.updateProblemsIndicator(this, START, e); + + recordApplicationEvent(Lifecycle.ON_FIRE); + // no need to log here; the effector invocation should do that + throw Exceptions.propagate(e); + } finally { + ServiceStateLogic.setExpectedState(this, Lifecycle.RUNNING); + } + + setExpectedStateAndRecordLifecycleEvent(Lifecycle.RUNNING); + + logApplicationLifecycle("Started"); + } + + protected void logApplicationLifecycle(String message) { + log.info(message+" application " + this); + } + + protected void doStart(Collection<? extends Location> locations) { + StartableMethods.start(this, locations); + } + + /** + * Default is no-op. Subclasses can override. + * */ + public void preStart(Collection<? extends Location> locations) { + //no-op + } + + /** + * Default is no-op. Subclasses can override. + * */ + public void postStart(Collection<? extends Location> locations) { + //no-op + } + + /** + * Default stop will stop all Startable children + */ + @Override + public void stop() { + logApplicationLifecycle("Stopping"); + + ServiceStateLogic.ServiceNotUpLogic.updateNotUpIndicator(this, Attributes.SERVICE_STATE_ACTUAL, "Application stopping"); + setAttribute(SERVICE_UP, false); + setExpectedStateAndRecordLifecycleEvent(Lifecycle.STOPPING); + try { + doStop(); + } catch (Exception e) { + setExpectedStateAndRecordLifecycleEvent(Lifecycle.ON_FIRE); + log.warn("Error stopping application " + this + " (rethrowing): "+e); + throw Exceptions.propagate(e); + } + ServiceStateLogic.ServiceNotUpLogic.updateNotUpIndicator(this, Attributes.SERVICE_STATE_ACTUAL, "Application stopped"); + setExpectedStateAndRecordLifecycleEvent(Lifecycle.STOPPED); + + if (getParent()==null) { + synchronized (this) { + //TODO review mgmt destroy lifecycle + // we don't necessarily want to forget all about the app on stop, + //since operator may be interested in things recently stopped; + //but that could be handled by the impl at management + //(keeping recently unmanaged things) + // however unmanaging must be done last, _after_ we stop children and set attributes + getEntityManager().unmanage(this); + } + } + + logApplicationLifecycle("Stopped"); + } + + protected void doStop() { + StartableMethods.stop(this); + } + + /** default impl invokes restart on all children simultaneously */ + @Override + public void restart() { + StartableMethods.restart(this); + } + + @Override + public void onManagementStopped() { + super.onManagementStopped(); + if (getManagementContext().isRunning()) { + recordApplicationEvent(Lifecycle.DESTROYED); + } + } + + protected void setExpectedStateAndRecordLifecycleEvent(Lifecycle state) { + ServiceStateLogic.setExpectedState(this, state); + recordApplicationEvent(state); + } + + protected void recordApplicationEvent(Lifecycle state) { + try { + ((ManagementContextInternal)getManagementContext()).getUsageManager().recordApplicationEvent(this, state); + } catch (RuntimeInterruptedException e) { + throw e; + } catch (RuntimeException e) { + if (getManagementContext().isRunning()) { + log.warn("Problem recording application event '"+state+"' for "+this, e); + } + } + } +}
