Replaces all tab characters in java files with four spaces
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/a2da61d1 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/a2da61d1 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/a2da61d1 Branch: refs/heads/master Commit: a2da61d1aabcef095f9d6b621944bf03698906af Parents: 9d6db4e Author: Martin Harris <git...@nakomis.com> Authored: Fri Oct 3 10:53:47 2014 +0100 Committer: Aled Sage <aled.s...@gmail.com> Committed: Thu Oct 9 00:03:13 2014 +0100 ---------------------------------------------------------------------- .../brooklyn/camp/spi/resolve/PdpProcessor.java | 12 +- .../main/java/io/brooklyn/camp/CampServer.java | 2 +- .../catalog/internal/BasicBrooklynCatalog.java | 4 +- .../config/BrooklynServiceAttributes.java | 2 +- .../java/brooklyn/entity/basic/Attributes.java | 2 +- .../entity/group/DynamicFabricImpl.java | 4 +- .../rebind/BasicLocationRebindSupport.java | 10 +- .../entity/rebind/dto/BasicLocationMemento.java | 28 +- .../BrooklynMementoPersisterToMultiFile.java | 2 +- .../brooklyn/entity/trait/StartableMethods.java | 14 +- .../location/access/BrooklynAccessUtils.java | 2 +- .../location/basic/AbstractLocation.java | 18 +- .../location/basic/LocationConfigUtils.java | 4 +- .../brooklyn/location/basic/PortRanges.java | 18 +- .../java/brooklyn/location/geo/HostGeoInfo.java | 4 +- .../internal/AsyncCollectionChangeAdapter.java | 46 +- .../internal/BasicSubscriptionContext.java | 4 +- .../internal/LocalManagementContext.java | 2 +- .../java/brooklyn/util/flags/FlagUtils.java | 98 +-- .../java/brooklyn/util/internal/Repeater.java | 72 +- .../util/task/BasicExecutionManager.java | 28 +- .../main/java/brooklyn/util/task/BasicTask.java | 164 ++-- .../java/brooklyn/util/task/ScheduledTask.java | 172 ++--- .../java/brooklyn/entity/EffectorSayHiTest.java | 14 +- .../entity/group/DynamicFabricTest.java | 28 +- .../entity/hello/LocalEntitiesTest.java | 74 +- .../entity/rebind/RebindLocationTest.java | 10 +- .../brooklyn/entity/rebind/RebindTestUtils.java | 30 +- .../location/basic/AbstractLocationTest.java | 6 +- ...stMachineProvisioningLocationRebindTest.java | 82 +- ...ixedListMachineProvisioningLocationTest.java | 2 +- .../basic/LegacyAbstractLocationTest.java | 8 +- .../location/basic/LocationExtensionsTest.java | 4 +- .../brooklyn/test/entity/TestEntityImpl.java | 8 +- .../brooklyn/util/internal/FlagUtilsTest.java | 66 +- .../util/task/ScheduledExecutionTest.java | 104 +-- .../src/main/java/brooklyn/demo/Publish.java | 18 +- .../demo/StandaloneQpidBrokerExample.java | 20 +- .../brooklyn/demo/WideAreaCassandraCluster.java | 6 +- .../demo/WebClusterDatabaseExampleApp.java | 6 +- .../policy/followthesun/WeightedObject.java | 94 +-- .../DefaultBalanceablePoolModel.java | 2 +- .../entity/database/derby/DerbyDatabase.java | 4 +- .../nosql/infinispan/Infinispan5Server.java | 4 +- .../basic/AbstractSoftwareProcessSshDriver.java | 2 +- .../entity/basic/SoftwareProcessImpl.java | 50 +- .../entity/chef/ChefLifecycleEffectorTasks.java | 2 +- .../java/brooklyn/entity/java/UsesJava.java | 2 +- .../java/brooklyn/event/feed/jmx/JmxFeed.java | 4 +- .../brooklyn/entity/java/EntityPollingTest.java | 8 +- .../brooklyn/entity/java/JmxSupportTest.java | 2 +- .../messaging/activemq/ActiveMQBroker.java | 2 +- .../messaging/activemq/ActiveMQBrokerImpl.java | 24 +- .../entity/messaging/jms/JMSBrokerImpl.java | 16 +- .../messaging/rabbit/RabbitBrokerImpl.java | 2 +- .../messaging/rabbit/RabbitIntegrationTest.java | 10 +- .../monitoring/monit/MonitIntegrationTest.java | 22 +- .../entity/nosql/mongodb/ReplicaSetConfig.java | 20 +- .../nosql/mongodb/MongoDBIntegrationTest.java | 2 +- .../dns/geoscaling/GeoscalingDnsService.java | 2 +- .../geoscaling/GeoscalingDnsServiceImpl.java | 10 +- .../entity/webapp/DynamicWebAppFabricImpl.java | 10 +- .../entity/webapp/JavaWebAppService.java | 10 +- .../entity/webapp/jboss/JBoss7ServerImpl.java | 2 +- .../proxy/nginx/NginxRebindIntegrationTest.java | 38 +- .../proxy/nginx/NginxWebClusterEc2LiveTest.java | 2 +- .../AbstractWebAppFixtureIntegrationTest.java | 14 +- .../entity/webapp/DynamicWebAppFabricTest.java | 12 +- ...namicWebAppClusterRebindIntegrationTest.java | 28 +- ...namicWebAppClusterRebindIntegrationTest.java | 26 +- .../jboss/Jboss7ServerIntegrationTest.java | 4 +- .../Jboss7ServerRebindIntegrationTest.java | 20 +- .../test/entity/TestJavaWebAppEntity.java | 20 +- .../brooklyn/spi/dsl/methods/DslComponent.java | 120 +-- .../java/brooklyn/qa/longevity/Monitor.java | 4 +- .../java/brooklyn/rest/api/EffectorApi.java | 8 +- .../rest/domain/CatalogEntitySummary.java | 4 +- .../java/brooklyn/test/EntityTestUtils.java | 6 +- .../main/java/brooklyn/test/HttpTestUtils.java | 4 +- .../main/java/brooklyn/test/WebAppMonitor.java | 6 +- .../java/brooklyn/util/collections/Jsonya.java | 2 +- .../brooklyn/util/collections/MutableMap.java | 6 +- .../brooklyn/util/javalang/Reflections.java | 770 +++++++++---------- .../util/logging/SimpleOneLineLogFormatter.java | 208 ++--- .../brooklyn/util/net/HasNetworkAddresses.java | 34 +- .../brooklyn/util/stream/StreamGobbler.java | 50 +- .../util/text/NaturalOrderComparator.java | 200 ++--- .../util/text/QuotedStringTokenizer.java | 268 +++---- .../main/java/brooklyn/util/text/Strings.java | 3 +- .../src/main/java/brooklyn/util/time/Time.java | 348 ++++----- .../util/internal/CommandLineUtilTest.java | 62 +- .../java/brooklyn/util/repeat/RepeaterTest.java | 18 +- .../brooklyn/util/text/StringEscapesTest.java | 24 +- .../brooklyn/util/text/WildcardGlobsTest.java | 396 +++++----- .../brooklyn/util/jmx/jmxrmi/JmxRmiAgent.java | 4 +- .../main/java/brooklyn/test/StatusListener.java | 8 +- 96 files changed, 2110 insertions(+), 2111 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/camp/camp-base/src/main/java/io/brooklyn/camp/spi/resolve/PdpProcessor.java ---------------------------------------------------------------------- diff --git a/camp/camp-base/src/main/java/io/brooklyn/camp/spi/resolve/PdpProcessor.java b/camp/camp-base/src/main/java/io/brooklyn/camp/spi/resolve/PdpProcessor.java index e60019d..44ea105 100644 --- a/camp/camp-base/src/main/java/io/brooklyn/camp/spi/resolve/PdpProcessor.java +++ b/camp/camp-base/src/main/java/io/brooklyn/camp/spi/resolve/PdpProcessor.java @@ -73,7 +73,7 @@ public class PdpProcessor { } Map<String, Object> dpRootInterpreted = applyInterpreters(dpRootUninterpreted); - return DeploymentPlan.of(dpRootInterpreted, yaml); + return DeploymentPlan.of(dpRootInterpreted, yaml); } /** create and return an AssemblyTemplate based on the given DP (yaml) */ @@ -161,7 +161,7 @@ public class PdpProcessor { // ---------------------------- public void addInterpreter(PlanInterpreter interpreter) { - interpreters.add(interpreter); + interpreters.add(interpreter); } /** returns a DeploymentPlan object which is the result of running the interpretation @@ -169,10 +169,10 @@ public class PdpProcessor { * essentially a post-parse processing step before matching */ @SuppressWarnings("unchecked") @VisibleForTesting - public Map<String, Object> applyInterpreters(Map<String, Object> originalDeploymentPlan) { - PlanInterpretationNode interpretation = new PlanInterpretationNode( - new PlanInterpretationContext(originalDeploymentPlan, interpreters)); - return (Map<String, Object>) interpretation.getNewValue(); + public Map<String, Object> applyInterpreters(Map<String, Object> originalDeploymentPlan) { + PlanInterpretationNode interpretation = new PlanInterpretationNode( + new PlanInterpretationContext(originalDeploymentPlan, interpreters)); + return (Map<String, Object>) interpretation.getNewValue(); } } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/camp/camp-server/src/main/java/io/brooklyn/camp/CampServer.java ---------------------------------------------------------------------- diff --git a/camp/camp-server/src/main/java/io/brooklyn/camp/CampServer.java b/camp/camp-server/src/main/java/io/brooklyn/camp/CampServer.java index 3e2bd79..9f538c1 100644 --- a/camp/camp-server/src/main/java/io/brooklyn/camp/CampServer.java +++ b/camp/camp-server/src/main/java/io/brooklyn/camp/CampServer.java @@ -98,7 +98,7 @@ public class CampServer { // TODO if there is a GUI or other war... //findJsguiWebapp()!=null ? findJsguiWebapp() : CampServerUtils.createTempWebDirWithIndexHtml("CAMP REST API <p> (no gui available - " + - "rest endpoint at <a href=\""+PlatformRestResource.CAMP_URI_PATH+"\">"+PlatformRestResource.CAMP_URI_PATH+"</a>)")); + "rest endpoint at <a href=\""+PlatformRestResource.CAMP_URI_PATH+"\">"+PlatformRestResource.CAMP_URI_PATH+"</a>)")); CampServerUtils.installAsServletFilter(webAppContext); server = CampServerUtils.startServer(webAppContext, "CAMP server"); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java index ab1a766..2d0722a 100644 --- a/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java +++ b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java @@ -491,8 +491,8 @@ public class BasicBrooklynCatalog implements BrooklynCatalog { if (manualAdditionsCatalog!=null) return; CatalogDto manualAdditionsCatalogDto = CatalogDto.newNamedInstance( "Manual Catalog Additions", "User-additions to the catalog while Brooklyn is running, " + - "created "+Time.makeDateString(), - "manual-additions"); + "created "+Time.makeDateString(), + "manual-additions"); CatalogDo manualAdditionsCatalog = catalog.addCatalog(manualAdditionsCatalogDto); if (manualAdditionsCatalog==null) { // not hard to support, but slightly messy -- probably have to use ID's to retrieve the loaded instance http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/main/java/brooklyn/config/BrooklynServiceAttributes.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/config/BrooklynServiceAttributes.java b/core/src/main/java/brooklyn/config/BrooklynServiceAttributes.java index 9f33315..bdacd35 100644 --- a/core/src/main/java/brooklyn/config/BrooklynServiceAttributes.java +++ b/core/src/main/java/brooklyn/config/BrooklynServiceAttributes.java @@ -35,7 +35,7 @@ public class BrooklynServiceAttributes { * or battling maven etc to build web-console as jar available to launcher * (which would contain a lot of crap as well). */ - + /** used to hold the instance of ManagementContext which should be used */ public static final String BROOKLYN_MANAGEMENT_CONTEXT = ManagementContext.class.getName(); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/main/java/brooklyn/entity/basic/Attributes.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/basic/Attributes.java b/core/src/main/java/brooklyn/entity/basic/Attributes.java index eaa6143..f4f8a69 100644 --- a/core/src/main/java/brooklyn/entity/basic/Attributes.java +++ b/core/src/main/java/brooklyn/entity/basic/Attributes.java @@ -84,7 +84,7 @@ public interface Attributes { "host.sshAddress", "user@host:port for ssh'ing (or null if inappropriate)"); AttributeSensor<String> SUBNET_HOSTNAME = Sensors.newStringSensor( "host.subnet.hostname", "Host name as known internally in " + - "the subnet where it is running (if different to host.name)"); + "the subnet where it is running (if different to host.name)"); AttributeSensor<String> SUBNET_ADDRESS = Sensors.newStringSensor( "host.subnet.address", "Host address as known internally in " + "the subnet where it is running (if different to host.name)"); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/main/java/brooklyn/entity/group/DynamicFabricImpl.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/group/DynamicFabricImpl.java b/core/src/main/java/brooklyn/entity/group/DynamicFabricImpl.java index 8ba08d0..51e8a4c 100644 --- a/core/src/main/java/brooklyn/entity/group/DynamicFabricImpl.java +++ b/core/src/main/java/brooklyn/entity/group/DynamicFabricImpl.java @@ -188,8 +188,8 @@ public class DynamicFabricImpl extends AbstractGroupImpl implements DynamicFabri try { Iterable<Entity> stoppableChildren = Iterables.filter(getChildren(), Predicates.instanceOf(Startable.class)); Task<?> invoke = Entities.invokeEffector(this, stoppableChildren, Startable.STOP); - if (invoke != null) invoke.get(); - ServiceStateLogic.setExpectedState(this, Lifecycle.STOPPED); + if (invoke != null) invoke.get(); + ServiceStateLogic.setExpectedState(this, Lifecycle.STOPPED); setAttribute(SERVICE_UP, false); } catch (Exception e) { ServiceStateLogic.setExpectedState(this, Lifecycle.ON_FIRE); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/main/java/brooklyn/entity/rebind/BasicLocationRebindSupport.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/rebind/BasicLocationRebindSupport.java b/core/src/main/java/brooklyn/entity/rebind/BasicLocationRebindSupport.java index bc5841e..2ca5d2a 100644 --- a/core/src/main/java/brooklyn/entity/rebind/BasicLocationRebindSupport.java +++ b/core/src/main/java/brooklyn/entity/rebind/BasicLocationRebindSupport.java @@ -59,8 +59,8 @@ public class BasicLocationRebindSupport extends AbstractBrooklynObjectRebindSupp @Deprecated protected LocationMemento getMementoWithProperties(Map<String,?> props) { LocationMemento memento = MementosGenerators.newLocationMementoBuilder(location).customFields(props).build(); - if (LOG.isTraceEnabled()) LOG.trace("Creating memento for location: {}", memento.toVerboseString()); - return memento; + if (LOG.isTraceEnabled()) LOG.trace("Creating memento for location: {}", memento.toVerboseString()); + return memento; } @Override @@ -118,9 +118,9 @@ public class BasicLocationRebindSupport extends AbstractBrooklynObjectRebindSupp for (String childId : memento.getChildren()) { Location child = rebindContext.getLocation(childId); if (child != null) { - location.addChild(child); + location.addChild(child); } else { - LOG.warn("Ignoring child {} of location {}({}), as cannot be found", new Object[] {childId, memento.getType(), memento.getId()}); + LOG.warn("Ignoring child {} of location {}({}), as cannot be found", new Object[] {childId, memento.getType(), memento.getId()}); } } } @@ -130,7 +130,7 @@ public class BasicLocationRebindSupport extends AbstractBrooklynObjectRebindSupp if (parent != null) { location.setParent(parent); } else if (memento.getParent() != null) { - LOG.warn("Ignoring parent {} of location {}({}), as cannot be found", new Object[] {memento.getParent(), memento.getType(), memento.getId()}); + LOG.warn("Ignoring parent {} of location {}({}), as cannot be found", new Object[] {memento.getParent(), memento.getType(), memento.getId()}); } } } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/main/java/brooklyn/entity/rebind/dto/BasicLocationMemento.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/rebind/dto/BasicLocationMemento.java b/core/src/main/java/brooklyn/entity/rebind/dto/BasicLocationMemento.java index 639b8d8..7a0b0bd 100644 --- a/core/src/main/java/brooklyn/entity/rebind/dto/BasicLocationMemento.java +++ b/core/src/main/java/brooklyn/entity/rebind/dto/BasicLocationMemento.java @@ -69,29 +69,29 @@ public class BasicLocationMemento extends AbstractTreeNodeMemento implements Loc } private Map<String,Object> locationConfig; - private Set<String> locationConfigUnused; - private String locationConfigDescription; + private Set<String> locationConfigUnused; + private String locationConfigDescription; @SuppressWarnings("unused") // For deserialisation private BasicLocationMemento() {} // Trusts the builder to not mess around with mutability after calling build() - protected BasicLocationMemento(Builder builder) { - super(builder); - locationConfig = toPersistedMap(builder.locationConfig); - locationConfigUnused = toPersistedSet(builder.locationConfigUnused); - locationConfigDescription = builder.locationConfigDescription; - } - + protected BasicLocationMemento(Builder builder) { + super(builder); + locationConfig = toPersistedMap(builder.locationConfig); + locationConfigUnused = toPersistedSet(builder.locationConfigUnused); + locationConfigDescription = builder.locationConfigDescription; + } + @Override public Map<String,Object> getLocationConfig() { - return fromPersistedMap(locationConfig); - } - + return fromPersistedMap(locationConfig); + } + @Override public Set<String> getLocationConfigUnused() { - return fromPersistedSet(locationConfigUnused); - } + return fromPersistedSet(locationConfigUnused); + } @Override public String getLocationConfigDescription() { http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToMultiFile.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToMultiFile.java b/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToMultiFile.java index aeedf61..b58aea5 100644 --- a/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToMultiFile.java +++ b/core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToMultiFile.java @@ -379,7 +379,7 @@ public class BrooklynMementoPersisterToMultiFile implements BrooklynMementoPersi return; } if (LOG.isTraceEnabled()) LOG.trace("Checkpointed delta of memento; updating {} entities, {} locations, {} policies and {} enrichers; " + - "removing {} entities, {} locations {} policies and {} enrichers", + "removing {} entities, {} locations {} policies and {} enrichers", new Object[] {delta.entities(), delta.locations(), delta.policies(), delta.enrichers(), delta.removedEntityIds(), delta.removedLocationIds(), delta.removedPolicyIds(), delta.removedEnricherIds()}); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/main/java/brooklyn/entity/trait/StartableMethods.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/entity/trait/StartableMethods.java b/core/src/main/java/brooklyn/entity/trait/StartableMethods.java index b5be1ae..f479270 100644 --- a/core/src/main/java/brooklyn/entity/trait/StartableMethods.java +++ b/core/src/main/java/brooklyn/entity/trait/StartableMethods.java @@ -44,21 +44,21 @@ import com.google.common.collect.Lists; public class StartableMethods { public static final Logger log = LoggerFactory.getLogger(StartableMethods.class); - - private StartableMethods() {} + + private StartableMethods() {} /** Common implementation for start in parent nodes; just invokes start on all children of the entity */ - public static void start(EntityLocal e, Collection<? extends Location> locations) { + public static void start(EntityLocal e, Collection<? extends Location> locations) { log.debug("Starting entity "+e+" at "+locations); DynamicTasks.queueIfPossible(startingChildren(e, locations)).orSubmitAsync(e).getTask().getUnchecked(); - } - + } + /** Common implementation for stop in parent nodes; just invokes stop on all children of the entity */ - public static void stop(EntityLocal e) { + public static void stop(EntityLocal e) { log.debug("Stopping entity "+e); DynamicTasks.queueIfPossible(stoppingChildren(e)).orSubmitAsync(e).getTask().getUnchecked(); if (log.isDebugEnabled()) log.debug("Stopped entity "+e); - } + } /** Common implementation for restart in parent nodes; just invokes restart on all children of the entity */ public static void restart(EntityLocal e) { http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/main/java/brooklyn/location/access/BrooklynAccessUtils.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/location/access/BrooklynAccessUtils.java b/core/src/main/java/brooklyn/location/access/BrooklynAccessUtils.java index ac52998..2e9108d 100644 --- a/core/src/main/java/brooklyn/location/access/BrooklynAccessUtils.java +++ b/core/src/main/java/brooklyn/location/access/BrooklynAccessUtils.java @@ -83,7 +83,7 @@ public class BrooklynAccessUtils { if (hp!=null) return hp; } else { log.warn("No "+MANAGEMENT_ACCESS_CIDR.getName()+" configured for "+entity+", so cannot forward port "+port+" " + - "even though "+PORT_FORWARDING_MANAGER.getName()+" was supplied"); + "even though "+PORT_FORWARDING_MANAGER.getName()+" was supplied"); } } } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/main/java/brooklyn/location/basic/AbstractLocation.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/location/basic/AbstractLocation.java b/core/src/main/java/brooklyn/location/basic/AbstractLocation.java index 473ce78..ee12da9 100644 --- a/core/src/main/java/brooklyn/location/basic/AbstractLocation.java +++ b/core/src/main/java/brooklyn/location/basic/AbstractLocation.java @@ -416,7 +416,7 @@ public abstract class AbstractLocation extends AbstractBrooklynObject implements } Location l = (Location) o; - return getId().equals(l.getId()); + return getId().equals(l.getId()); } @Override @@ -442,14 +442,14 @@ public abstract class AbstractLocation extends AbstractBrooklynObject implements @SuppressWarnings("deprecation") public void addChild(Location child) { - // Previously, setParent delegated to addChildLocation and we sometimes ended up with - // duplicate entries here. Instead this now uses a similar scheme to - // AbstractLocation.setParent/addChild (with any weaknesses for distribution that such a - // scheme might have...). - // - // We continue to use a list to allow identical-looking locations, but they must be different - // instances. - + // Previously, setParent delegated to addChildLocation and we sometimes ended up with + // duplicate entries here. Instead this now uses a similar scheme to + // AbstractLocation.setParent/addChild (with any weaknesses for distribution that such a + // scheme might have...). + // + // We continue to use a list to allow identical-looking locations, but they must be different + // instances. + synchronized (children) { for (Location contender : children) { if (contender == child) { http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/main/java/brooklyn/location/basic/LocationConfigUtils.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/location/basic/LocationConfigUtils.java b/core/src/main/java/brooklyn/location/basic/LocationConfigUtils.java index 077bec2..1ce8542 100644 --- a/core/src/main/java/brooklyn/location/basic/LocationConfigUtils.java +++ b/core/src/main/java/brooklyn/location/basic/LocationConfigUtils.java @@ -147,7 +147,7 @@ public class LocationConfigUtils { if (!Objects.equal(value1, value2)) { // points to a bug in one of the get-with-deprecation methods log.warn("Deprecated getConfig with deprecated keys "+Arrays.toString(deprecatedKeys)+" gets different value with " + - "new strategy "+preferredKey+" ("+value1+") and old ("+value2+"); preferring old value for now, but this behaviour will change"); + "new strategy "+preferredKey+" ("+value1+") and old ("+value2+"); preferring old value for now, but this behaviour will change"); return value2; } return value1; @@ -178,7 +178,7 @@ public class LocationConfigUtils { // fine -- nothing } else { log.warn("Detected deprecated key "+deprecatedKey+" with value "+altValue+" used in addition to "+keyProvidingValue+" " + - "with value "+value+" for "+configBag.getDescription()+"; ignoring"); + "with value "+value+" for "+configBag.getDescription()+"; ignoring"); configBag.remove(deprecatedKey); } } else { http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/main/java/brooklyn/location/basic/PortRanges.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/location/basic/PortRanges.java b/core/src/main/java/brooklyn/location/basic/PortRanges.java index ee66b82..63d9b23 100644 --- a/core/src/main/java/brooklyn/location/basic/PortRanges.java +++ b/core/src/main/java/brooklyn/location/basic/PortRanges.java @@ -41,9 +41,9 @@ public class PortRanges { public static final PortRange ANY_HIGH_PORT = new LinearPortRange(1024, MAX_PORT); public static class SinglePort implements PortRange, Serializable { - private static final long serialVersionUID = 7446781416534230401L; - - final int port; + private static final long serialVersionUID = 7446781416534230401L; + + final int port; private SinglePort(int port) { this.port = port; } @Override @@ -73,9 +73,9 @@ public class PortRanges { } public static class LinearPortRange implements PortRange, Serializable { - private static final long serialVersionUID = -9165280509363743508L; - - final int start, end, delta; + private static final long serialVersionUID = -9165280509363743508L; + + final int start, end, delta; private LinearPortRange(int start, int end, int delta) { this.start = start; this.end = end; @@ -140,9 +140,9 @@ public class PortRanges { } public static class AggregatePortRange implements PortRange, Serializable { - private static final long serialVersionUID = 7332682500816739660L; - - final List<PortRange> ranges; + private static final long serialVersionUID = 7332682500816739660L; + + final List<PortRange> ranges; private AggregatePortRange(List<PortRange> ranges) { this.ranges = ImmutableList.copyOf(ranges); } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/main/java/brooklyn/location/geo/HostGeoInfo.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/location/geo/HostGeoInfo.java b/core/src/main/java/brooklyn/location/geo/HostGeoInfo.java index cec6df5..028dcc4 100644 --- a/core/src/main/java/brooklyn/location/geo/HostGeoInfo.java +++ b/core/src/main/java/brooklyn/location/geo/HostGeoInfo.java @@ -43,11 +43,11 @@ import com.google.common.base.Objects; */ public class HostGeoInfo implements Serializable { - private static final long serialVersionUID = -5866759901535266181L; + private static final long serialVersionUID = -5866759901535266181L; public static final Logger log = LoggerFactory.getLogger(HostGeoInfo.class); - /** the IP address */ + /** the IP address */ public final String address; public final String displayName; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/main/java/brooklyn/management/internal/AsyncCollectionChangeAdapter.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/management/internal/AsyncCollectionChangeAdapter.java b/core/src/main/java/brooklyn/management/internal/AsyncCollectionChangeAdapter.java index d669112..8b583d4 100644 --- a/core/src/main/java/brooklyn/management/internal/AsyncCollectionChangeAdapter.java +++ b/core/src/main/java/brooklyn/management/internal/AsyncCollectionChangeAdapter.java @@ -30,44 +30,44 @@ import brooklyn.util.task.BasicExecutionManager; import brooklyn.util.task.SingleThreadedScheduler; public class AsyncCollectionChangeAdapter<Item> implements CollectionChangeListener<Item> { - + private static final Logger LOG = LoggerFactory.getLogger(AsyncCollectionChangeAdapter.class); private final ExecutionManager executor; private final CollectionChangeListener<Item> delegate; public AsyncCollectionChangeAdapter(ExecutionManager executor, CollectionChangeListener<Item> delegate) { - this.executor = checkNotNull(executor, "executor"); + this.executor = checkNotNull(executor, "executor"); this.delegate = checkNotNull(delegate, "delegate"); ((BasicExecutionManager) executor).setTaskSchedulerForTag(delegate, SingleThreadedScheduler.class); } @Override public void onItemAdded(final Item item) { - executor.submit(MutableMap.of("tag", delegate), new Runnable() { - public void run() { - try { - delegate.onItemAdded(item); - } catch (Throwable t) { - LOG.warn("Error notifying listener of itemAdded("+item+")", t); - Exceptions.propagate(t); - } - } - }); + executor.submit(MutableMap.of("tag", delegate), new Runnable() { + public void run() { + try { + delegate.onItemAdded(item); + } catch (Throwable t) { + LOG.warn("Error notifying listener of itemAdded("+item+")", t); + Exceptions.propagate(t); + } + } + }); } @Override public void onItemRemoved(final Item item) { - executor.submit(MutableMap.of("tag", delegate), new Runnable() { - public void run() { - try { - delegate.onItemRemoved(item); - } catch (Throwable t) { - LOG.warn("Error notifying listener of itemAdded("+item+")", t); - Exceptions.propagate(t); - } - } - }); + executor.submit(MutableMap.of("tag", delegate), new Runnable() { + public void run() { + try { + delegate.onItemRemoved(item); + } catch (Throwable t) { + LOG.warn("Error notifying listener of itemAdded("+item+")", t); + Exceptions.propagate(t); + } + } + }); } @Override @@ -78,6 +78,6 @@ public class AsyncCollectionChangeAdapter<Item> implements CollectionChangeListe @Override public boolean equals(Object other) { return (other instanceof AsyncCollectionChangeAdapter) && - delegate.equals(((AsyncCollectionChangeAdapter<?>) other).delegate); + delegate.equals(((AsyncCollectionChangeAdapter<?>) other).delegate); } } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/main/java/brooklyn/management/internal/BasicSubscriptionContext.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/management/internal/BasicSubscriptionContext.java b/core/src/main/java/brooklyn/management/internal/BasicSubscriptionContext.java index bb3c0ea..f61956a 100644 --- a/core/src/main/java/brooklyn/management/internal/BasicSubscriptionContext.java +++ b/core/src/main/java/brooklyn/management/internal/BasicSubscriptionContext.java @@ -59,10 +59,10 @@ public class BasicSubscriptionContext implements SubscriptionContext { } public BasicSubscriptionContext(Map<String, ?> flags, SubscriptionManager manager, Object subscriber) { - this.manager = manager; + this.manager = manager; this.subscriber = subscriber; this.flags = mapOf("subscriber", subscriber); - if (flags!=null) this.flags.putAll(flags); + if (flags!=null) this.flags.putAll(flags); } @SuppressWarnings("rawtypes") http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/main/java/brooklyn/management/internal/LocalManagementContext.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/management/internal/LocalManagementContext.java b/core/src/main/java/brooklyn/management/internal/LocalManagementContext.java index 96de11d..514e96e 100644 --- a/core/src/main/java/brooklyn/management/internal/LocalManagementContext.java +++ b/core/src/main/java/brooklyn/management/internal/LocalManagementContext.java @@ -330,7 +330,7 @@ public class LocalManagementContext extends AbstractManagementContext { @SuppressWarnings({ "unchecked", "rawtypes" }) @Override public <T> Task<T> runAtEntity(Map flags, Entity entity, Callable<T> c) { - manageIfNecessary(entity, elvis(Arrays.asList(flags.get("displayName"), flags.get("description"), flags, c))); + manageIfNecessary(entity, elvis(Arrays.asList(flags.get("displayName"), flags.get("description"), flags, c))); return runAtEntity(entity, Tasks.<T>builder().dynamic(true).body(c).flags(flags).build()); } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/main/java/brooklyn/util/flags/FlagUtils.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/util/flags/FlagUtils.java b/core/src/main/java/brooklyn/util/flags/FlagUtils.java index 16a9af5..7cd52d1 100644 --- a/core/src/main/java/brooklyn/util/flags/FlagUtils.java +++ b/core/src/main/java/brooklyn/util/flags/FlagUtils.java @@ -72,7 +72,7 @@ public class FlagUtils { public static Map<?, ?> setFieldsFromFlags(Map<?, ?> flags, Object o) { return setFieldsFromFlagsInternal(o, getAllFields(o.getClass()), flags, null, true); } - + /** sets all fields (including private and static, local and inherited) annotated {@link SetFromFlag} on the given object, * from the given flags map, returning just those flag-value pairs passed in which do not correspond to SetFromFlags fields * annotated ConfigKey and HasConfigKey fields are _configured_ (and we assume the object in that case is {@link Configurable}); @@ -110,12 +110,12 @@ public class FlagUtils { public static Map<String, ?> getFieldsWithFlags(Object o) { return getFieldsWithFlagsInternal(o, getAllFields(o.getClass())); } - + /** * Finds the {@link Field} on the given object annotated with the given name flag. */ public static Field findFieldForFlag(String flagName, Object o) { - return findFieldForFlagInternal(flagName, o, getAllFields(o.getClass())); + return findFieldForFlagInternal(flagName, o, getAllFields(o.getClass())); } /** get all fields (including private and static) and their values on the given object and all supertypes, @@ -124,11 +124,11 @@ public class FlagUtils { public static Map<String, Object> getFieldsWithFlagsExcludingModifiers(Object o, int excludingModifiers) { List<Field> filteredFields = Lists.newArrayList(); for (Field contender : getAllFields(o.getClass())) { - if ((contender.getModifiers() & excludingModifiers) == 0) { - filteredFields.add(contender); - } + if ((contender.getModifiers() & excludingModifiers) == 0) { + filteredFields.add(contender); + } } - return getFieldsWithFlagsInternal(o, filteredFields); + return getFieldsWithFlagsInternal(o, filteredFields); } /** get all fields with the given modifiers, and their values on the given object and all supertypes, @@ -245,35 +245,35 @@ public class FlagUtils { return result; } - /** returns all fields on the given class, superclasses, and interfaces thereof, in that order of preference, - * (excluding fields on Object) */ + /** returns all fields on the given class, superclasses, and interfaces thereof, in that order of preference, + * (excluding fields on Object) */ public static List<Field> getAllFields(Class<?> base, Closure<Boolean> filter) { return getAllFields(base, GroovyJavaMethods.<Field>predicateFromClosure(filter)); } public static List<Field> getAllFields(Class<?> base) { return getAllFields(base, Predicates.<Field>alwaysTrue()); } - public static List<Field> getAllFields(Class<?> base, Predicate<Field> filter) { - return getLocalFields(getAllAssignableTypes(base), filter); - } - /** returns all fields explicitly declared on the given classes */ + public static List<Field> getAllFields(Class<?> base, Predicate<Field> filter) { + return getLocalFields(getAllAssignableTypes(base), filter); + } + /** returns all fields explicitly declared on the given classes */ public static List<Field> getLocalFields(List<Class<?>> classes) { return getLocalFields(classes, Predicates.<Field>alwaysTrue()); } public static List<Field> getLocalFields(List<Class<?>> classes, Closure<Boolean> filter) { return getLocalFields(classes, GroovyJavaMethods.<Field>predicateFromClosure(filter)); } - public static List<Field> getLocalFields(List<Class<?>> classes, Predicate<Field> filter) { - List<Field> fields = Lists.newArrayList(); - for (Class<?> c : classes) { - for (Field f : c.getDeclaredFields()) { - if (filter.apply(f)) fields.add(f); - } - } - return fields; - } - - /** returns base, superclasses, then interfaces */ + public static List<Field> getLocalFields(List<Class<?>> classes, Predicate<Field> filter) { + List<Field> fields = Lists.newArrayList(); + for (Class<?> c : classes) { + for (Field f : c.getDeclaredFields()) { + if (filter.apply(f)) fields.add(f); + } + } + return fields; + } + + /** returns base, superclasses, then interfaces */ public static List<Class<?>> getAllAssignableTypes(Class<?> base) { return getAllAssignableTypes(base, new Predicate<Class<?>>() { @Override public boolean apply(Class<?> it) { @@ -284,19 +284,19 @@ public class FlagUtils { public static List<Class<?>> getAllAssignableTypes(Class<?> base, Closure<Boolean> filter) { return getAllAssignableTypes(base, GroovyJavaMethods.<Class<?>>predicateFromClosure(filter)); } - public static List<Class<?>> getAllAssignableTypes(Class<?> base, Predicate<Class<?>> filter) { - List<Class<?>> classes = Lists.newArrayList(); - for (Class<?> c = base; c != null; c = c.getSuperclass()) { - if (filter.apply(c)) classes.add(c); - } - for (int i=0; i<classes.size(); i++) { - for (Class<?> interf : classes.get(i).getInterfaces()) { - if (filter.apply(interf) && !(classes.contains(interf))) classes.add(interf); - } - } - return classes; - } - + public static List<Class<?>> getAllAssignableTypes(Class<?> base, Predicate<Class<?>> filter) { + List<Class<?>> classes = Lists.newArrayList(); + for (Class<?> c = base; c != null; c = c.getSuperclass()) { + if (filter.apply(c)) classes.add(c); + } + for (int i=0; i<classes.size(); i++) { + for (Class<?> interf : classes.get(i).getInterfaces()) { + if (filter.apply(interf) && !(classes.contains(interf))) classes.add(interf); + } + } + return classes; + } + private static Map<String, Object> getFieldsWithFlagsInternal(Object o, Collection<Field> fields) { Map<String, Object> result = Maps.newLinkedHashMap(); for (Field f: fields) { @@ -304,9 +304,9 @@ public class FlagUtils { if (cf != null) { String flagName = elvis(cf.value(), f.getName()); if (truth(flagName)) { - result.put(flagName, getField(o, f)); + result.put(flagName, getField(o, f)); } else { - log.warn("Ignoring field {} of object {} as no flag name available", f, o); + log.warn("Ignoring field {} of object {} as no flag name available", f, o); } } } @@ -317,9 +317,9 @@ public class FlagUtils { for (Field f: fields) { SetFromFlag cf = f.getAnnotation(SetFromFlag.class); if (cf != null) { - String contenderName = elvis(cf.value(), f.getName()); + String contenderName = elvis(cf.value(), f.getName()); if (flagName.equals(contenderName)) { - return f; + return f; } } } @@ -508,11 +508,11 @@ public class FlagUtils { return result; } - /** returns a map of all fields which are annotated 'SetFromFlag' with their current values; - * useful if you want to clone settings from one object - */ - public static Map<String,Object> getFieldsWithValues(Object o) { - try { + /** returns a map of all fields which are annotated 'SetFromFlag' with their current values; + * useful if you want to clone settings from one object + */ + public static Map<String,Object> getFieldsWithValues(Object o) { + try { Map<String, Object> result = Maps.newLinkedHashMap(); for (Map.Entry<Field, SetFromFlag> entry : getAnnotatedFields(o.getClass()).entrySet()) { Field f = entry.getKey(); @@ -522,12 +522,12 @@ public class FlagUtils { if (!f.isAccessible()) f.setAccessible(true); result.put(flagName, f.get(o)); } - } - return result; + } + return result; } catch (IllegalAccessException e) { throw Throwables.propagate(e); } - } + } /** * @throws an IllegalStateException if there are fields required (nullable=false) which are unset http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/main/java/brooklyn/util/internal/Repeater.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/util/internal/Repeater.java b/core/src/main/java/brooklyn/util/internal/Repeater.java index 8757fc9..5a6edb7 100644 --- a/core/src/main/java/brooklyn/util/internal/Repeater.java +++ b/core/src/main/java/brooklyn/util/internal/Repeater.java @@ -88,21 +88,21 @@ public class Repeater { static { TimeExtras.init(); } - @SetFromFlag + @SetFromFlag private final String description; private Callable<?> body = Callables.returning(null); private Callable<Boolean> exitCondition; - @SetFromFlag - private Long period = null; - @SetFromFlag("timeout") - private Long durationLimit = null; + @SetFromFlag + private Long period = null; + @SetFromFlag("timeout") + private Long durationLimit = null; private int iterationLimit = 0; private boolean rethrowException = false; private boolean rethrowExceptionImmediately = false; - private boolean warnOnUnRethrownException = true; + private boolean warnOnUnRethrownException = true; - public Repeater() { - this(MutableMap.of(), null); + public Repeater() { + this(MutableMap.of(), null); } public Repeater(Map<?,?> flags) { @@ -120,20 +120,20 @@ public class Repeater { * @param description a description of the operation that will appear in debug logs. */ public Repeater(Map<?,?> flags, String description) { - setFromFlags(flags); - this.description = JavaGroovyEquivalents.elvis(description, this.description, "Repeater"); + setFromFlags(flags); + this.description = JavaGroovyEquivalents.elvis(description, this.description, "Repeater"); } - public void setFromFlags(Map<?,?> flags) { - FlagUtils.setFieldsFromFlags(flags, this); - } - + public void setFromFlags(Map<?,?> flags) { + FlagUtils.setFieldsFromFlags(flags, this); + } + public static Repeater create() { return create(MutableMap.of()); } - public static Repeater create(Map<?,?> flags) { - return create(flags, null); - } + public static Repeater create(Map<?,?> flags) { + return create(flags, null); + } public static Repeater create(String description) { return create(MutableMap.of(), description); } @@ -193,9 +193,9 @@ public class Repeater { */ public Repeater every(Duration duration) { Preconditions.checkNotNull(duration, "duration must not be null"); - Preconditions.checkArgument(duration.toMilliseconds()>0, "period must be positive: %s", duration); - this.period = duration.toMilliseconds(); - return this; + Preconditions.checkArgument(duration.toMilliseconds()>0, "period must be positive: %s", duration); + this.period = duration.toMilliseconds(); + return this; } public Repeater every(groovy.time.Duration duration) { @@ -204,7 +204,7 @@ public class Repeater { /** * @see #every(long, TimeUnit) - * @deprecated specify unit + * @deprecated specify unit */ public Repeater every(long duration) { return every(duration, TimeUnit.MILLISECONDS); @@ -244,9 +244,9 @@ public class Repeater { } public Repeater suppressWarnings() { - this.warnOnUnRethrownException = false; - return this; - } + this.warnOnUnRethrownException = false; + return this; + } /** * Set the maximum number of iterations. @@ -283,8 +283,8 @@ public class Repeater { */ public Repeater limitTimeTo(Duration duration) { Preconditions.checkNotNull(duration, "duration must not be null"); - Preconditions.checkArgument(duration.toMilliseconds() > 0, "deadline must be positive: %s", duration); - this.durationLimit = duration.toMilliseconds(); + Preconditions.checkArgument(duration.toMilliseconds() > 0, "deadline must be positive: %s", duration); + this.durationLimit = duration.toMilliseconds(); return this; } @@ -300,9 +300,9 @@ public class Repeater { Throwable lastError = null; int iterations = 0; - long endTime = -1; + long endTime = -1; if (durationLimit != null) { - endTime = System.currentTimeMillis() + durationLimit; + endTime = System.currentTimeMillis() + durationLimit; } while (true) { @@ -346,24 +346,24 @@ public class Repeater { log.warn("{}: error caught checking condition (rethrowing): {}", description, lastError.getMessage()); throw Exceptions.propagate(lastError); } - if (warnOnUnRethrownException && lastError != null) - log.warn("{}: error caught checking condition: {}", description, lastError.getMessage()); + if (warnOnUnRethrownException && lastError != null) + log.warn("{}: error caught checking condition: {}", description, lastError.getMessage()); return false; } if (endTime > 0) { - if (System.currentTimeMillis() > endTime) { + if (System.currentTimeMillis() > endTime) { if (log.isDebugEnabled()) log.debug("{}: condition not satisfied and deadline {} passed", description, Time.makeTimeStringRounded(endTime - System.currentTimeMillis())); - if (rethrowException && lastError != null) { - log.error("{}: error caught checking condition: {}", description, lastError.getMessage()); - throw Exceptions.propagate(lastError); - } + if (rethrowException && lastError != null) { + log.error("{}: error caught checking condition: {}", description, lastError.getMessage()); + throw Exceptions.propagate(lastError); + } return false; } } - Time.sleep(period); + Time.sleep(period); } } } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/main/java/brooklyn/util/task/BasicExecutionManager.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/util/task/BasicExecutionManager.java b/core/src/main/java/brooklyn/util/task/BasicExecutionManager.java index f711315..b4b6db5 100644 --- a/core/src/main/java/brooklyn/util/task/BasicExecutionManager.java +++ b/core/src/main/java/brooklyn/util/task/BasicExecutionManager.java @@ -96,8 +96,8 @@ public class BasicExecutionManager implements ExecutionManager { private final ExecutorService runner; - private final ScheduledExecutorService delayedRunner; - + private final ScheduledExecutorService delayedRunner; + // TODO Could have a set of all knownTasks; but instead we're having a separate set per tag, // so the same task could be listed multiple times if it has multiple tags... @@ -140,18 +140,18 @@ public class BasicExecutionManager implements ExecutionManager { } } - /** - * For use by overriders to use custom thread factory. - * But be extremely careful: called by constructor, so before sub-class' constructor will - * have been invoked! - */ - protected ThreadFactory newThreadFactory(String contextid) { - return new ThreadFactoryBuilder() - .setNameFormat("brooklyn-execmanager-"+contextid+"-%d") - .setUncaughtExceptionHandler(new UncaughtExceptionHandlerImplementation()) + /** + * For use by overriders to use custom thread factory. + * But be extremely careful: called by constructor, so before sub-class' constructor will + * have been invoked! + */ + protected ThreadFactory newThreadFactory(String contextid) { + return new ThreadFactoryBuilder() + .setNameFormat("brooklyn-execmanager-"+contextid+"-%d") + .setUncaughtExceptionHandler(new UncaughtExceptionHandlerImplementation()) .build(); - } - + } + public void shutdownNow() { runner.shutdownNow(); delayedRunner.shutdownNow(); @@ -508,7 +508,7 @@ public class BasicExecutionManager implements ExecutionManager { } Future<T> future; if (schedulers!=null && !schedulers.isEmpty()) { - if (schedulers.size()>1) log.warn("multiple schedulers detected, using only the first, for "+task+": "+schedulers); + if (schedulers.size()>1) log.warn("multiple schedulers detected, using only the first, for "+task+": "+schedulers); future = schedulers.iterator().next().submit(job); } else { future = runner.submit(job); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/main/java/brooklyn/util/task/BasicTask.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/util/task/BasicTask.java b/core/src/main/java/brooklyn/util/task/BasicTask.java index a3847a6..c478336 100644 --- a/core/src/main/java/brooklyn/util/task/BasicTask.java +++ b/core/src/main/java/brooklyn/util/task/BasicTask.java @@ -552,7 +552,7 @@ public class BasicTask<T> implements TaskInternal<T> { rv += "\n\n" + (v==null ? "No return value (null)" : "Result: "+v); } catch (Exception e) { rv += " at first\n" + - "Error accessing result ["+e+"]"; //shouldn't happen + "Error accessing result ["+e+"]"; //shouldn't happen } if (verbosity >= 2 && getExtraStatusText()!=null) { rv += "\n\n"+getExtraStatusText(); @@ -561,7 +561,7 @@ public class BasicTask<T> implements TaskInternal<T> { } } } else { - rv = getActiveTaskStatusString(verbosity); + rv = getActiveTaskStatusString(verbosity); } return rv; } @@ -572,28 +572,28 @@ public class BasicTask<T> implements TaskInternal<T> { return s; } - protected String getActiveTaskStatusString(int verbosity) { - String rv = ""; - Thread t = getThread(); - - // Normally, it's not possible for thread==null as we were started and not ended - - // However, there is a race where the task starts sand completes between the calls to getThread() - // at the start of the method and this call to getThread(), so both return null even though - // the intermediate checks returned started==true isDone()==false. - if (t == null) { - if (isDone()) { - return getStatusString(verbosity); - } else { - //should only happen for repeating task which is not active + protected String getActiveTaskStatusString(int verbosity) { + String rv = ""; + Thread t = getThread(); + + // Normally, it's not possible for thread==null as we were started and not ended + + // However, there is a race where the task starts sand completes between the calls to getThread() + // at the start of the method and this call to getThread(), so both return null even though + // the intermediate checks returned started==true isDone()==false. + if (t == null) { + if (isDone()) { + return getStatusString(verbosity); + } else { + //should only happen for repeating task which is not active return "Sleeping"; - } - } + } + } - ThreadInfo ti = ManagementFactory.getThreadMXBean().getThreadInfo(t.getId(), (verbosity<=0 ? 0 : verbosity==1 ? 1 : Integer.MAX_VALUE)); - if (getThread()==null) - //thread might have moved on to a new task; if so, recompute (it should now say "done") - return getStatusString(verbosity); + ThreadInfo ti = ManagementFactory.getThreadMXBean().getThreadInfo(t.getId(), (verbosity<=0 ? 0 : verbosity==1 ? 1 : Integer.MAX_VALUE)); + if (getThread()==null) + //thread might have moved on to a new task; if so, recompute (it should now say "done") + return getStatusString(verbosity); if (verbosity >= 1 && Strings.isNonBlank(blockingDetails)) { if (verbosity==1) @@ -611,70 +611,70 @@ public class BasicTask<T> implements TaskInternal<T> { rv = "Waiting on "+blockingTask + "\n\n"; } - if (verbosity>=2) { + if (verbosity>=2) { if (getExtraStatusText()!=null) { rv += getExtraStatusText()+"\n\n"; } - rv += ""+toString()+"\n"; - if (submittedByTask!=null) { - rv += "Submitted by "+submittedByTask+"\n"; - } - - if (this instanceof HasTaskChildren) { - // list children tasks for compound tasks - try { - Iterable<Task<?>> childrenTasks = ((HasTaskChildren)this).getChildren(); - if (childrenTasks.iterator().hasNext()) { - rv += "Children:\n"; - for (Task<?> child: childrenTasks) { - rv += " "+child+": "+child.getStatusDetail(false)+"\n"; - } - } - } catch (ConcurrentModificationException exc) { - rv += " (children not available - currently being modified)\n"; - } - } - rv += "\n"; - } - - LockInfo lock = ti.getLockInfo(); - rv += "In progress"; - if (verbosity>=1) { - if (lock==null && ti.getThreadState()==Thread.State.RUNNABLE) { - //not blocked - if (ti.isSuspended()) { - // when does this happen? - rv += ", thread suspended"; - } else { - if (verbosity >= 2) rv += " ("+ti.getThreadState()+")"; - } - } else { - rv +=", thread waiting "; - if (ti.getThreadState() == Thread.State.BLOCKED) { - rv += "(mutex) on "+lookup(lock); - //TODO could say who holds it - } else if (ti.getThreadState() == Thread.State.WAITING) { - rv += "(notify) on "+lookup(lock); - } else if (ti.getThreadState() == Thread.State.TIMED_WAITING) { - rv += "(timed) on "+lookup(lock); - } else { - rv = "("+ti.getThreadState()+") on "+lookup(lock); - } - } - } - if (verbosity>=2) { - StackTraceElement[] st = ti.getStackTrace(); - st = brooklyn.util.javalang.StackTraceSimplifier.cleanStackTrace(st); - if (st!=null && st.length>0) - rv += "\n" +"At: "+st[0]; - for (int ii=1; ii<st.length; ii++) { - rv += "\n" +" "+st[ii]; - } - } - return rv; - } - + rv += ""+toString()+"\n"; + if (submittedByTask!=null) { + rv += "Submitted by "+submittedByTask+"\n"; + } + + if (this instanceof HasTaskChildren) { + // list children tasks for compound tasks + try { + Iterable<Task<?>> childrenTasks = ((HasTaskChildren)this).getChildren(); + if (childrenTasks.iterator().hasNext()) { + rv += "Children:\n"; + for (Task<?> child: childrenTasks) { + rv += " "+child+": "+child.getStatusDetail(false)+"\n"; + } + } + } catch (ConcurrentModificationException exc) { + rv += " (children not available - currently being modified)\n"; + } + } + rv += "\n"; + } + + LockInfo lock = ti.getLockInfo(); + rv += "In progress"; + if (verbosity>=1) { + if (lock==null && ti.getThreadState()==Thread.State.RUNNABLE) { + //not blocked + if (ti.isSuspended()) { + // when does this happen? + rv += ", thread suspended"; + } else { + if (verbosity >= 2) rv += " ("+ti.getThreadState()+")"; + } + } else { + rv +=", thread waiting "; + if (ti.getThreadState() == Thread.State.BLOCKED) { + rv += "(mutex) on "+lookup(lock); + //TODO could say who holds it + } else if (ti.getThreadState() == Thread.State.WAITING) { + rv += "(notify) on "+lookup(lock); + } else if (ti.getThreadState() == Thread.State.TIMED_WAITING) { + rv += "(timed) on "+lookup(lock); + } else { + rv = "("+ti.getThreadState()+") on "+lookup(lock); + } + } + } + if (verbosity>=2) { + StackTraceElement[] st = ti.getStackTrace(); + st = brooklyn.util.javalang.StackTraceSimplifier.cleanStackTrace(st); + if (st!=null && st.length>0) + rv += "\n" +"At: "+st[0]; + for (int ii=1; ii<st.length; ii++) { + rv += "\n" +" "+st[ii]; + } + } + return rv; + } + protected String lookup(LockInfo info) { return info!=null ? ""+info : "unknown (sleep)"; } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/main/java/brooklyn/util/task/ScheduledTask.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/util/task/ScheduledTask.java b/core/src/main/java/brooklyn/util/task/ScheduledTask.java index 27aae30..0be8dd9 100644 --- a/core/src/main/java/brooklyn/util/task/ScheduledTask.java +++ b/core/src/main/java/brooklyn/util/task/ScheduledTask.java @@ -45,21 +45,21 @@ import com.google.common.base.Throwables; // reduce external assumptions about internal structure, and clarify "done" semantics public class ScheduledTask extends BasicTask { - final Callable<Task<?>> taskFactory; - /** initial delay before running, set as flag in constructor; defaults to 0 */ - protected Duration delay; - /** time to wait between executions, or null if not to repeat (default), set as flag to constructor; - * this may be modified for subsequent submissions by a running task generated by the factory - * using getSubmittedByTask().setPeriod(Duration) */ - protected Duration period = null; - /** optional, set as flag in constructor; defaults to null meaning no limit */ - protected Integer maxIterations = null; - - protected int runCount=0; - protected Task recentRun, nextRun; + final Callable<Task<?>> taskFactory; + /** initial delay before running, set as flag in constructor; defaults to 0 */ + protected Duration delay; + /** time to wait between executions, or null if not to repeat (default), set as flag to constructor; + * this may be modified for subsequent submissions by a running task generated by the factory + * using getSubmittedByTask().setPeriod(Duration) */ + protected Duration period = null; + /** optional, set as flag in constructor; defaults to null meaning no limit */ + protected Integer maxIterations = null; + + protected int runCount=0; + protected Task recentRun, nextRun; - public int getRunCount() { return runCount; } - public ScheduledFuture getNextScheduled() { return (ScheduledFuture)internalFuture; } + public int getRunCount() { return runCount; } + public ScheduledFuture getNextScheduled() { return (ScheduledFuture)internalFuture; } public ScheduledTask(Callable<Task<?>> taskFactory) { this(MutableMap.of(), taskFactory); @@ -77,22 +77,22 @@ public class ScheduledTask extends BasicTask { }}); } - public ScheduledTask(Map flags, Callable<Task<?>> taskFactory) { - super(flags); - this.taskFactory = taskFactory; - - delay = Duration.of(elvis(flags.remove("delay"), 0)); - period = Duration.of(elvis(flags.remove("period"), null)); - maxIterations = elvis(flags.remove("maxIterations"), null); - } - - public ScheduledTask delay(Duration d) { - this.delay = d; - return this; - } - public ScheduledTask delay(long val) { - return delay(Duration.millis(val)); - } + public ScheduledTask(Map flags, Callable<Task<?>> taskFactory) { + super(flags); + this.taskFactory = taskFactory; + + delay = Duration.of(elvis(flags.remove("delay"), 0)); + period = Duration.of(elvis(flags.remove("period"), null)); + maxIterations = elvis(flags.remove("maxIterations"), null); + } + + public ScheduledTask delay(Duration d) { + this.delay = d; + return this; + } + public ScheduledTask delay(long val) { + return delay(Duration.millis(val)); + } public ScheduledTask period(Duration d) { this.period = d; @@ -111,35 +111,35 @@ public class ScheduledTask extends BasicTask { return taskFactory; } - public Task newTask() { - try { - return taskFactory.call(); - } catch (Exception e) { - throw Throwables.propagate(e); - } - } - - protected String getActiveTaskStatusString(int verbosity) { - StringBuilder rv = new StringBuilder("Scheduler"); - if (runCount>0) rv.append(", iteration "+(runCount+1)); - if (recentRun!=null) rv.append(", last run "+(System.currentTimeMillis()-recentRun.getStartTimeUtc())+" ms ago"); - if (truth(getNextScheduled())) { - long untilNext = getNextScheduled().getDelay(TimeUnit.MILLISECONDS); - if (untilNext>0) - rv.append(", next in "+untilNext+" ms"); - else - rv.append(", next imminent"); - } - return rv.toString(); - } - - @Override - public boolean isDone() { - return isCancelled() || (maxIterations!=null && maxIterations <= runCount) || (period==null && nextRun!=null && nextRun.isDone()); - } - - public synchronized void blockUntilFirstScheduleStarted() { - // TODO Assumes that maxIterations is not negative! + public Task newTask() { + try { + return taskFactory.call(); + } catch (Exception e) { + throw Throwables.propagate(e); + } + } + + protected String getActiveTaskStatusString(int verbosity) { + StringBuilder rv = new StringBuilder("Scheduler"); + if (runCount>0) rv.append(", iteration "+(runCount+1)); + if (recentRun!=null) rv.append(", last run "+(System.currentTimeMillis()-recentRun.getStartTimeUtc())+" ms ago"); + if (truth(getNextScheduled())) { + long untilNext = getNextScheduled().getDelay(TimeUnit.MILLISECONDS); + if (untilNext>0) + rv.append(", next in "+untilNext+" ms"); + else + rv.append(", next imminent"); + } + return rv.toString(); + } + + @Override + public boolean isDone() { + return isCancelled() || (maxIterations!=null && maxIterations <= runCount) || (period==null && nextRun!=null && nextRun.isDone()); + } + + public synchronized void blockUntilFirstScheduleStarted() { + // TODO Assumes that maxIterations is not negative! while (true) { if (isCancelled()) throw new CancellationException(); if (recentRun==null) @@ -151,33 +151,33 @@ public class ScheduledTask extends BasicTask { } if (recentRun!=null) return; } - } - - public void blockUntilEnded() { - while (!isDone()) super.blockUntilEnded(); - } + } + + public void blockUntilEnded() { + while (!isDone()) super.blockUntilEnded(); + } - /** gets the value of the most recently run task */ - public Object get() throws InterruptedException, ExecutionException { - blockUntilStarted(); + /** gets the value of the most recently run task */ + public Object get() throws InterruptedException, ExecutionException { + blockUntilStarted(); blockUntilFirstScheduleStarted(); - return (truth(recentRun)) ? recentRun.get() : internalFuture.get(); - } - - @Override - public synchronized boolean cancel(boolean mayInterrupt) { - boolean result = super.cancel(mayInterrupt); - if (nextRun!=null) { - nextRun.cancel(mayInterrupt); - notifyAll(); - } - return result; - } - - /** internal method used to allow callers to wait for underlying tasks to finished in the case of cancellation - * @param duration */ - @Beta - public boolean blockUntilNextRunFinished(Duration timeout) { - return Tasks.blockUntilInternalTasksEnded(nextRun, timeout); - } + return (truth(recentRun)) ? recentRun.get() : internalFuture.get(); + } + + @Override + public synchronized boolean cancel(boolean mayInterrupt) { + boolean result = super.cancel(mayInterrupt); + if (nextRun!=null) { + nextRun.cancel(mayInterrupt); + notifyAll(); + } + return result; + } + + /** internal method used to allow callers to wait for underlying tasks to finished in the case of cancellation + * @param duration */ + @Beta + public boolean blockUntilNextRunFinished(Duration timeout) { + return Tasks.blockUntilInternalTasksEnded(nextRun, timeout); + } } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/test/java/brooklyn/entity/EffectorSayHiTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/entity/EffectorSayHiTest.java b/core/src/test/java/brooklyn/entity/EffectorSayHiTest.java index 49ee7c3..420c3dd 100644 --- a/core/src/test/java/brooklyn/entity/EffectorSayHiTest.java +++ b/core/src/test/java/brooklyn/entity/EffectorSayHiTest.java @@ -127,15 +127,15 @@ public class EffectorSayHiTest extends BrooklynAppUnitTestSupport { } public interface CanSayHi { - static MethodEffector<String> SAY_HI_1 = new MethodEffector<String>(CanSayHi.class, "sayHi1"); + static MethodEffector<String> SAY_HI_1 = new MethodEffector<String>(CanSayHi.class, "sayHi1"); static MethodEffector<String> DELEGATE_SAY_HI_1 = new MethodEffector<String>(CanSayHi.class, "delegateSayHi1"); - @brooklyn.entity.annotation.Effector(description="says hello") - public String sayHi1( - @EffectorParam(name="name") String name, - @EffectorParam(name="greeting", defaultValue="hello", description="what to say") String greeting); - - @brooklyn.entity.annotation.Effector(description="delegate says hello") + @brooklyn.entity.annotation.Effector(description="says hello") + public String sayHi1( + @EffectorParam(name="name") String name, + @EffectorParam(name="greeting", defaultValue="hello", description="what to say") String greeting); + + @brooklyn.entity.annotation.Effector(description="delegate says hello") public String delegateSayHi1( @EffectorParam(name="name") String name, @EffectorParam(name="greeting") String greeting); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/test/java/brooklyn/entity/group/DynamicFabricTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/entity/group/DynamicFabricTest.java b/core/src/test/java/brooklyn/entity/group/DynamicFabricTest.java index 84cb13c..904d847 100644 --- a/core/src/test/java/brooklyn/entity/group/DynamicFabricTest.java +++ b/core/src/test/java/brooklyn/entity/group/DynamicFabricTest.java @@ -356,9 +356,9 @@ public class DynamicFabricTest extends BrooklynAppUnitTestSupport { fabric.stop(); } - @Test + @Test public void testDynamicFabricPropagatesProperties() throws Exception { - final EntityFactory<Entity> entityFactory = new EntityFactory<Entity>() { + final EntityFactory<Entity> entityFactory = new EntityFactory<Entity>() { @Override public Entity newEntity(Map flags, Entity parent) { return app.getManagementContext().getEntityManager().createEntity(EntitySpec.create(TestEntity.class) .parent(parent) @@ -385,16 +385,16 @@ public class DynamicFabricTest extends BrooklynAppUnitTestSupport { .configure("customChildFlags", ImmutableMap.of("fromFabric", "passed to cluster but not base entity")) .configure(Attributes.HTTP_PORT, PortRanges.fromInteger(1234))); // for inheritance by children (as a port range) - app.start(ImmutableList.of(loc1)); + app.start(ImmutableList.of(loc1)); - assertEquals(fabric.getChildren().size(), 1); - DynamicCluster child = (DynamicCluster) getChild(fabric, 0); - assertEquals(child.getMembers().size(), 1); - assertEquals(getMember(child, 0).getConfig(Attributes.HTTP_PORT.getConfigKey()), PortRanges.fromInteger(1234)); - assertEquals(((TestEntity)getMember(child, 0)).getConfigureProperties().get("a"), null); - assertEquals(((TestEntity)getMember(child, 0)).getConfigureProperties().get("b"), "avail"); - assertEquals(((TestEntity)getMember(child, 0)).getConfigureProperties().get("fromCluster"), "passed to base entity"); - assertEquals(((TestEntity)getMember(child, 0)).getConfigureProperties().get("fromFabric"), null); + assertEquals(fabric.getChildren().size(), 1); + DynamicCluster child = (DynamicCluster) getChild(fabric, 0); + assertEquals(child.getMembers().size(), 1); + assertEquals(getMember(child, 0).getConfig(Attributes.HTTP_PORT.getConfigKey()), PortRanges.fromInteger(1234)); + assertEquals(((TestEntity)getMember(child, 0)).getConfigureProperties().get("a"), null); + assertEquals(((TestEntity)getMember(child, 0)).getConfigureProperties().get("b"), "avail"); + assertEquals(((TestEntity)getMember(child, 0)).getConfigureProperties().get("fromCluster"), "passed to base entity"); + assertEquals(((TestEntity)getMember(child, 0)).getConfigureProperties().get("fromFabric"), null); child.resize(2); assertEquals(child.getMembers().size(), 2); @@ -403,7 +403,7 @@ public class DynamicFabricTest extends BrooklynAppUnitTestSupport { assertEquals(((TestEntity)getMember(child, 1)).getConfigureProperties().get("b"), "avail"); assertEquals(((TestEntity)getMember(child, 1)).getConfigureProperties().get("fromCluster"), "passed to base entity"); assertEquals(((TestEntity)getMember(child, 1)).getConfigureProperties().get("fromFabric"), null); - } + } @Test public void testExistingChildrenStarted() throws Exception { @@ -482,10 +482,10 @@ public class DynamicFabricTest extends BrooklynAppUnitTestSupport { } } - private Entity getGrandchild(Entity entity, int childIndex, int grandchildIndex) { + private Entity getGrandchild(Entity entity, int childIndex, int grandchildIndex) { Entity child = getChild(entity, childIndex); return Iterables.get(child.getChildren(), grandchildIndex); - } + } private Entity getChild(Entity entity, int childIndex) { return Iterables.get(entity.getChildren(), childIndex); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/test/java/brooklyn/entity/hello/LocalEntitiesTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/entity/hello/LocalEntitiesTest.java b/core/src/test/java/brooklyn/entity/hello/LocalEntitiesTest.java index c36c239..823d299 100644 --- a/core/src/test/java/brooklyn/entity/hello/LocalEntitiesTest.java +++ b/core/src/test/java/brooklyn/entity/hello/LocalEntitiesTest.java @@ -62,19 +62,19 @@ import com.google.common.collect.ImmutableMap; /** tests effector invocation and a variety of sensor accessors and subscribers */ public class LocalEntitiesTest extends BrooklynAppUnitTestSupport { - - public static final Logger log = LoggerFactory.getLogger(LocalEntitiesTest.class); - + + public static final Logger log = LoggerFactory.getLogger(LocalEntitiesTest.class); + private SimulatedLocation loc; private EntityManager entityManager; - + @BeforeMethod(alwaysRun=true) - @Override - public void setUp() throws Exception { - super.setUp(); - loc = new SimulatedLocation(); - entityManager = mgmt.getEntityManager(); - } + @Override + public void setUp() throws Exception { + super.setUp(); + loc = new SimulatedLocation(); + entityManager = mgmt.getEntityManager(); + } @Test public void testEffectorUpdatesAttributeSensor() { @@ -191,10 +191,10 @@ public class LocalEntitiesTest extends BrooklynAppUnitTestSupport { assertEquals("Carl", app.getAttribute(HelloEntity.FAVOURITE_NAME)); assertEquals(null, dad.getAttribute(HelloEntity.FAVOURITE_NAME)); } - @Test - public void testConfigSetFromAttributeWhenReady() throws Exception { - app.setConfig(HelloEntity.MY_NAME, "Bob"); - + @Test + public void testConfigSetFromAttributeWhenReady() throws Exception { + app.setConfig(HelloEntity.MY_NAME, "Bob"); + final HelloEntity dad = app.createAndManageChild(EntitySpec.create(HelloEntity.class)); final HelloEntity son = entityManager.createEntity(EntitySpec.create(HelloEntity.class) .parent(dad) @@ -204,29 +204,29 @@ public class LocalEntitiesTest extends BrooklynAppUnitTestSupport { */ ))); Entities.manage(son); - app.start(ImmutableList.of(loc)); - + app.start(ImmutableList.of(loc)); + final Semaphore s1 = new Semaphore(0); final Object[] sonsConfig = new Object[1]; Thread t = new Thread(new Runnable() { public void run() { - log.info("started"); - s1.release(); - log.info("getting config "+sonsConfig[0]); - sonsConfig[0] = son.getConfig(HelloEntity.MY_NAME); - log.info("got config {}", sonsConfig[0]); + log.info("started"); + s1.release(); + log.info("getting config "+sonsConfig[0]); + sonsConfig[0] = son.getConfig(HelloEntity.MY_NAME); + log.info("got config {}", sonsConfig[0]); s1.release(); }}); - log.info("starting"); + log.info("starting"); long startTime = System.currentTimeMillis(); - t.start(); - log.info("waiting {}", System.identityHashCode(sonsConfig)); + t.start(); + log.info("waiting {}", System.identityHashCode(sonsConfig)); if (!s1.tryAcquire(2, TimeUnit.SECONDS)) fail("race mismatch, missing permits"); //thread should be blocking on call to getConfig assertTrue(t.isAlive()); - assertTrue(System.currentTimeMillis() - startTime < 1500); + assertTrue(System.currentTimeMillis() - startTime < 1500); synchronized (sonsConfig) { assertEquals(null, sonsConfig[0]); for (Task tt : ((EntityInternal)dad).getExecutionContext().getTasks()) { log.info("task at dad: {}, {}", tt, tt.getStatusDetail(false)); } @@ -234,19 +234,19 @@ public class LocalEntitiesTest extends BrooklynAppUnitTestSupport { ((EntityLocal)dad).setAttribute(HelloEntity.FAVOURITE_NAME, "Dan"); if (!s1.tryAcquire(2, TimeUnit.SECONDS)) fail("race mismatch, missing permits"); } - log.info("dad: "+dad.getAttribute(HelloEntity.FAVOURITE_NAME)); - log.info("son: "+son.getConfig(HelloEntity.MY_NAME)); - + log.info("dad: "+dad.getAttribute(HelloEntity.FAVOURITE_NAME)); + log.info("son: "+son.getConfig(HelloEntity.MY_NAME)); + //shouldn't have blocked for very long at all assertTrue(System.currentTimeMillis() - startTime < 1500); //and sons config should now pick up the dad's attribute assertEquals(sonsConfig[0], "Dan"); - } - - @Test - public void testConfigSetFromAttributeWhenReadyTransformations() { - app.setConfig(HelloEntity.MY_NAME, "Bob"); - + } + + @Test + public void testConfigSetFromAttributeWhenReadyTransformations() { + app.setConfig(HelloEntity.MY_NAME, "Bob"); + HelloEntity dad = app.createAndManageChild(EntitySpec.create(HelloEntity.class)); HelloEntity son = entityManager.createEntity(EntitySpec.create(HelloEntity.class) .parent(dad) @@ -256,11 +256,11 @@ public class LocalEntitiesTest extends BrooklynAppUnitTestSupport { }}))); Entities.manage(son); - app.start(ImmutableList.of(loc)); - ((EntityLocal)dad).setAttribute(HelloEntity.FAVOURITE_NAME, "Dan"); + app.start(ImmutableList.of(loc)); + ((EntityLocal)dad).setAttribute(HelloEntity.FAVOURITE_NAME, "Dan"); assertEquals(son.getConfig(HelloEntity.MY_NAME), "Danny"); } - + @Test public void testConfigSetFromAttributeWhenReadyNullTransformations() { app.setConfig(HelloEntity.MY_NAME, "Bob"); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/test/java/brooklyn/entity/rebind/RebindLocationTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/entity/rebind/RebindLocationTest.java b/core/src/test/java/brooklyn/entity/rebind/RebindLocationTest.java index 9018525..82c7a44 100644 --- a/core/src/test/java/brooklyn/entity/rebind/RebindLocationTest.java +++ b/core/src/test/java/brooklyn/entity/rebind/RebindLocationTest.java @@ -105,7 +105,7 @@ public class RebindLocationTest extends RebindTestFixtureWithApp { @Test public void testRestoresFieldsWithSetFromFlag() throws Exception { - MyLocation origLoc = new MyLocation(MutableMap.of("myfield", "myval")); + MyLocation origLoc = new MyLocation(MutableMap.of("myfield", "myval")); origApp.start(ImmutableList.of(origLoc)); newApp = (TestApplication) rebind(); @@ -202,10 +202,10 @@ public class RebindLocationTest extends RebindTestFixtureWithApp { @Test public void testHandlesFieldReferencingOtherLocations() throws Exception { - MyLocation origOtherLoc = new MyLocation(); - MyLocationReffingOthers origLoc = new MyLocationReffingOthers(MutableMap.of("otherLocs", ImmutableList.of(origOtherLoc), "myfield", "myval")); - origOtherLoc.setParent(origLoc); - + MyLocation origOtherLoc = new MyLocation(); + MyLocationReffingOthers origLoc = new MyLocationReffingOthers(MutableMap.of("otherLocs", ImmutableList.of(origOtherLoc), "myfield", "myval")); + origOtherLoc.setParent(origLoc); + origApp.start(ImmutableList.of(origLoc)); newApp = rebind(); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/test/java/brooklyn/entity/rebind/RebindTestUtils.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/entity/rebind/RebindTestUtils.java b/core/src/test/java/brooklyn/entity/rebind/RebindTestUtils.java index ee34e54..61e130a 100644 --- a/core/src/test/java/brooklyn/entity/rebind/RebindTestUtils.java +++ b/core/src/test/java/brooklyn/entity/rebind/RebindTestUtils.java @@ -62,7 +62,7 @@ public class RebindTestUtils { private static final Duration TIMEOUT = Duration.seconds(20); - public static <T> T serializeAndDeserialize(T memento) throws Exception { + public static <T> T serializeAndDeserialize(T memento) throws Exception { ObjectReplacer replacer = new ObjectReplacer() { private final Map<Pointer, Object> replaced = Maps.newLinkedHashMap(); @@ -82,22 +82,22 @@ public class RebindTestUtils { } }; - try { - return Serializers.reconstitute(memento, replacer); - } catch (Exception e) { - try { - Dumpers.logUnserializableChains(memento, replacer); - //Dumpers.deepDumpSerializableness(memento); - } catch (Throwable t) { - LOG.warn("Error logging unserializable chains for memento "+memento+" (propagating original exception)", t); - } - throw e; - } + try { + return Serializers.reconstitute(memento, replacer); + } catch (Exception e) { + try { + Dumpers.logUnserializableChains(memento, replacer); + //Dumpers.deepDumpSerializableness(memento); + } catch (Throwable t) { + LOG.warn("Error logging unserializable chains for memento "+memento+" (propagating original exception)", t); + } + throw e; + } } - public static void deleteMementoDir(String path) { - deleteMementoDir(new File(path)); - } + public static void deleteMementoDir(String path) { + deleteMementoDir(new File(path)); + } public static void deleteMementoDir(File f) { FileBasedObjectStore.deleteCompletely(f); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a2da61d1/core/src/test/java/brooklyn/location/basic/AbstractLocationTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/brooklyn/location/basic/AbstractLocationTest.java b/core/src/test/java/brooklyn/location/basic/AbstractLocationTest.java index d005098..986c7aa 100644 --- a/core/src/test/java/brooklyn/location/basic/AbstractLocationTest.java +++ b/core/src/test/java/brooklyn/location/basic/AbstractLocationTest.java @@ -50,8 +50,8 @@ public class AbstractLocationTest { String myfield; public ConcreteLocation() { - super(); - } + super(); + } public ConcreteLocation(Map<?,?> properties) { super(properties); @@ -165,7 +165,7 @@ public class AbstractLocationTest { @Test public void testFieldSetFromFlag() { - ConcreteLocation loc = createConcrete(MutableMap.of("myfield", "myval")); + ConcreteLocation loc = createConcrete(MutableMap.of("myfield", "myval")); assertEquals(loc.myfield, "myval"); }