Repository: incubator-brooklyn Updated Branches: refs/heads/master d767d781f -> 342a33679
Adds HasId and HasName marker interfaces for Rest API domain objects Simplifies sorting of summary objects by name/id Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/c358310e Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/c358310e Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/c358310e Branch: refs/heads/master Commit: c358310eeabdbbdbcd92f1d221d4b3b0f60f06b0 Parents: f8756e2 Author: Sam Corbett <sam.corb...@cloudsoftcorp.com> Authored: Fri Jul 4 12:04:23 2014 +0100 Committer: Sam Corbett <sam.corb...@cloudsoftcorp.com> Committed: Wed Jul 9 14:28:40 2014 +0100 ---------------------------------------------------------------------- .../brooklyn/rest/domain/ApplicationSpec.java | 3 +- .../rest/domain/ApplicationSummary.java | 3 +- .../rest/domain/CatalogItemSummary.java | 4 ++- .../brooklyn/rest/domain/ConfigSummary.java | 3 +- .../brooklyn/rest/domain/EffectorSummary.java | 6 ++-- .../java/brooklyn/rest/domain/EntitySpec.java | 3 +- .../brooklyn/rest/domain/EntitySummary.java | 4 ++- .../main/java/brooklyn/rest/domain/HasId.java | 8 ++++++ .../main/java/brooklyn/rest/domain/HasName.java | 8 ++++++ .../java/brooklyn/rest/domain/LocationSpec.java | 3 +- .../brooklyn/rest/domain/LocationSummary.java | 3 +- .../brooklyn/rest/domain/PolicySummary.java | 4 ++- .../brooklyn/rest/domain/SensorSummary.java | 3 +- .../rest/domain/SummaryComparators.java | 30 ++++++++++++++++++++ .../java/brooklyn/rest/domain/TaskSummary.java | 3 +- .../brooklyn/rest/domain/UsageStatistic.java | 3 +- .../rest/resources/CatalogResource.java | 30 ++++++++------------ .../rest/resources/EffectorResource.java | 8 ++---- .../rest/resources/LocationResource.java | 9 ++---- .../brooklyn/rest/resources/PolicyResource.java | 8 ++---- 20 files changed, 95 insertions(+), 51 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c358310e/usage/rest-api/src/main/java/brooklyn/rest/domain/ApplicationSpec.java ---------------------------------------------------------------------- diff --git a/usage/rest-api/src/main/java/brooklyn/rest/domain/ApplicationSpec.java b/usage/rest-api/src/main/java/brooklyn/rest/domain/ApplicationSpec.java index 07c1c1a..0ee625c 100644 --- a/usage/rest-api/src/main/java/brooklyn/rest/domain/ApplicationSpec.java +++ b/usage/rest-api/src/main/java/brooklyn/rest/domain/ApplicationSpec.java @@ -14,7 +14,7 @@ import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; -public class ApplicationSpec { +public class ApplicationSpec implements HasName { public static Builder builder() { return new Builder(); @@ -91,6 +91,7 @@ public class ApplicationSpec { // if (this.entities==null && this.type==null) throw new IllegalStateException("must supply either type or entities for an application spec"); } + @Override public String getName() { return name; } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c358310e/usage/rest-api/src/main/java/brooklyn/rest/domain/ApplicationSummary.java ---------------------------------------------------------------------- diff --git a/usage/rest-api/src/main/java/brooklyn/rest/domain/ApplicationSummary.java b/usage/rest-api/src/main/java/brooklyn/rest/domain/ApplicationSummary.java index 36c3beb..5afd0d2 100644 --- a/usage/rest-api/src/main/java/brooklyn/rest/domain/ApplicationSummary.java +++ b/usage/rest-api/src/main/java/brooklyn/rest/domain/ApplicationSummary.java @@ -9,7 +9,7 @@ import org.codehaus.jackson.annotate.JsonProperty; import com.google.common.collect.ImmutableMap; -public class ApplicationSummary { +public class ApplicationSummary implements HasId { private final static Map<Status, Status> validTransitions = ImmutableMap.<Status, Status>builder() @@ -38,6 +38,7 @@ public class ApplicationSummary { this.links = links == null ? ImmutableMap.<String, URI>of() : ImmutableMap.copyOf(links); } + @Override public String getId() { return id; } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c358310e/usage/rest-api/src/main/java/brooklyn/rest/domain/CatalogItemSummary.java ---------------------------------------------------------------------- diff --git a/usage/rest-api/src/main/java/brooklyn/rest/domain/CatalogItemSummary.java b/usage/rest-api/src/main/java/brooklyn/rest/domain/CatalogItemSummary.java index fb66d7f..1b971ee 100644 --- a/usage/rest-api/src/main/java/brooklyn/rest/domain/CatalogItemSummary.java +++ b/usage/rest-api/src/main/java/brooklyn/rest/domain/CatalogItemSummary.java @@ -13,7 +13,7 @@ import com.google.common.collect.ImmutableMap; /** variant of Catalog*ItemDto objects for JS/JSON serialization; * see also, subclasses */ -public class CatalogItemSummary { +public class CatalogItemSummary implements HasId, HasName { private final String id; @@ -53,6 +53,7 @@ public class CatalogItemSummary { this.links = ImmutableMap.copyOf(links); } + @Override public String getId() { return id; } @@ -73,6 +74,7 @@ public class CatalogItemSummary { return planYaml; } + @Override public String getName() { return name; } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c358310e/usage/rest-api/src/main/java/brooklyn/rest/domain/ConfigSummary.java ---------------------------------------------------------------------- diff --git a/usage/rest-api/src/main/java/brooklyn/rest/domain/ConfigSummary.java b/usage/rest-api/src/main/java/brooklyn/rest/domain/ConfigSummary.java index ddfb8c0..6b2f61d 100644 --- a/usage/rest-api/src/main/java/brooklyn/rest/domain/ConfigSummary.java +++ b/usage/rest-api/src/main/java/brooklyn/rest/domain/ConfigSummary.java @@ -18,7 +18,7 @@ import com.google.common.base.Function; import com.google.common.collect.FluentIterable; import com.google.common.collect.ImmutableMap; -public abstract class ConfigSummary { +public abstract class ConfigSummary implements HasName { private final String name; private final String type; @@ -94,6 +94,7 @@ public abstract class ConfigSummary { } } + @Override public String getName() { return name; } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c358310e/usage/rest-api/src/main/java/brooklyn/rest/domain/EffectorSummary.java ---------------------------------------------------------------------- diff --git a/usage/rest-api/src/main/java/brooklyn/rest/domain/EffectorSummary.java b/usage/rest-api/src/main/java/brooklyn/rest/domain/EffectorSummary.java index ffaa314..8d94457 100644 --- a/usage/rest-api/src/main/java/brooklyn/rest/domain/EffectorSummary.java +++ b/usage/rest-api/src/main/java/brooklyn/rest/domain/EffectorSummary.java @@ -11,9 +11,9 @@ import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion; import com.google.common.base.Objects; import com.google.common.collect.ImmutableMap; -public class EffectorSummary { +public class EffectorSummary implements HasName { - public static class ParameterSummary<T> { + public static class ParameterSummary<T> implements HasName { private final String name; private final String type; @JsonSerialize(include=Inclusion.NON_NULL) @@ -32,6 +32,7 @@ public class EffectorSummary { this.defaultValue = defaultValue; } + @Override public String getName() { return name; } @@ -102,6 +103,7 @@ public class EffectorSummary { this.links = links != null ? ImmutableMap.copyOf(links) : null; } + @Override public String getName() { return name; } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c358310e/usage/rest-api/src/main/java/brooklyn/rest/domain/EntitySpec.java ---------------------------------------------------------------------- diff --git a/usage/rest-api/src/main/java/brooklyn/rest/domain/EntitySpec.java b/usage/rest-api/src/main/java/brooklyn/rest/domain/EntitySpec.java index 85c458a..3a12fc4 100644 --- a/usage/rest-api/src/main/java/brooklyn/rest/domain/EntitySpec.java +++ b/usage/rest-api/src/main/java/brooklyn/rest/domain/EntitySpec.java @@ -7,7 +7,7 @@ import org.codehaus.jackson.annotate.JsonProperty; import java.util.Collections; import java.util.Map; -public class EntitySpec { +public class EntitySpec implements HasName { private final String name; private final String type; @@ -31,6 +31,7 @@ public class EntitySpec { this.config = (config != null) ? ImmutableMap.copyOf(config) : ImmutableMap.<String, String>of(); } + @Override public String getName() { return name; } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c358310e/usage/rest-api/src/main/java/brooklyn/rest/domain/EntitySummary.java ---------------------------------------------------------------------- diff --git a/usage/rest-api/src/main/java/brooklyn/rest/domain/EntitySummary.java b/usage/rest-api/src/main/java/brooklyn/rest/domain/EntitySummary.java index 054340b..0c4e48a 100644 --- a/usage/rest-api/src/main/java/brooklyn/rest/domain/EntitySummary.java +++ b/usage/rest-api/src/main/java/brooklyn/rest/domain/EntitySummary.java @@ -6,7 +6,7 @@ import org.codehaus.jackson.annotate.JsonProperty; import java.net.URI; import java.util.Map; -public class EntitySummary { +public class EntitySummary implements HasId, HasName { private final String id; private final String name; @@ -29,10 +29,12 @@ public class EntitySummary { return type; } + @Override public String getId() { return id; } + @Override public String getName() { return name; } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c358310e/usage/rest-api/src/main/java/brooklyn/rest/domain/HasId.java ---------------------------------------------------------------------- diff --git a/usage/rest-api/src/main/java/brooklyn/rest/domain/HasId.java b/usage/rest-api/src/main/java/brooklyn/rest/domain/HasId.java new file mode 100644 index 0000000..640917a --- /dev/null +++ b/usage/rest-api/src/main/java/brooklyn/rest/domain/HasId.java @@ -0,0 +1,8 @@ +package brooklyn.rest.domain; + +/** Marker interface for summary objects with an id field */ +public interface HasId { + + public String getId(); + +} http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c358310e/usage/rest-api/src/main/java/brooklyn/rest/domain/HasName.java ---------------------------------------------------------------------- diff --git a/usage/rest-api/src/main/java/brooklyn/rest/domain/HasName.java b/usage/rest-api/src/main/java/brooklyn/rest/domain/HasName.java new file mode 100644 index 0000000..94da59a --- /dev/null +++ b/usage/rest-api/src/main/java/brooklyn/rest/domain/HasName.java @@ -0,0 +1,8 @@ +package brooklyn.rest.domain; + +/** Marker interface for summary objects with a name field */ +public interface HasName { + + public String getName(); + +} http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c358310e/usage/rest-api/src/main/java/brooklyn/rest/domain/LocationSpec.java ---------------------------------------------------------------------- diff --git a/usage/rest-api/src/main/java/brooklyn/rest/domain/LocationSpec.java b/usage/rest-api/src/main/java/brooklyn/rest/domain/LocationSpec.java index 67554fd..6297bbb 100644 --- a/usage/rest-api/src/main/java/brooklyn/rest/domain/LocationSpec.java +++ b/usage/rest-api/src/main/java/brooklyn/rest/domain/LocationSpec.java @@ -14,7 +14,7 @@ import com.google.common.collect.ImmutableMap; // FIXME change name, due to confusion with brooklyn.location.LocationSpec <- no need, as we can kill the class instead soon! /** @deprecated since 0.7.0 location spec objects will not be used from the client, instead pass yaml location spec strings */ -public class LocationSpec { +public class LocationSpec implements HasName { @JsonSerialize(include=Inclusion.NON_NULL) private final String name; @@ -38,6 +38,7 @@ public class LocationSpec { this.config = (config == null) ? Collections.<String, String>emptyMap() : ImmutableMap.copyOf(config); } + @Override public String getName() { return name; } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c358310e/usage/rest-api/src/main/java/brooklyn/rest/domain/LocationSummary.java ---------------------------------------------------------------------- diff --git a/usage/rest-api/src/main/java/brooklyn/rest/domain/LocationSummary.java b/usage/rest-api/src/main/java/brooklyn/rest/domain/LocationSummary.java index 3764a75..2abab77 100644 --- a/usage/rest-api/src/main/java/brooklyn/rest/domain/LocationSummary.java +++ b/usage/rest-api/src/main/java/brooklyn/rest/domain/LocationSummary.java @@ -14,7 +14,7 @@ import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion; import com.google.common.base.Objects; import com.google.common.collect.ImmutableMap; -public class LocationSummary extends LocationSpec { +public class LocationSummary extends LocationSpec implements HasName, HasId { private final String id; @@ -37,6 +37,7 @@ public class LocationSummary extends LocationSpec { this.links = ImmutableMap.copyOf(links); } + @Override public String getId() { return id; } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c358310e/usage/rest-api/src/main/java/brooklyn/rest/domain/PolicySummary.java ---------------------------------------------------------------------- diff --git a/usage/rest-api/src/main/java/brooklyn/rest/domain/PolicySummary.java b/usage/rest-api/src/main/java/brooklyn/rest/domain/PolicySummary.java index d9b83b4..4fe2be1 100644 --- a/usage/rest-api/src/main/java/brooklyn/rest/domain/PolicySummary.java +++ b/usage/rest-api/src/main/java/brooklyn/rest/domain/PolicySummary.java @@ -6,7 +6,7 @@ import org.codehaus.jackson.annotate.JsonProperty; import java.net.URI; import java.util.Map; -public class PolicySummary { +public class PolicySummary implements HasName, HasId { private final String id; private final String name; @@ -25,10 +25,12 @@ public class PolicySummary { this.links = ImmutableMap.copyOf(links); } + @Override public String getId() { return id; } + @Override public String getName() { return name; } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c358310e/usage/rest-api/src/main/java/brooklyn/rest/domain/SensorSummary.java ---------------------------------------------------------------------- diff --git a/usage/rest-api/src/main/java/brooklyn/rest/domain/SensorSummary.java b/usage/rest-api/src/main/java/brooklyn/rest/domain/SensorSummary.java index 4e7b6f0..da462a1 100644 --- a/usage/rest-api/src/main/java/brooklyn/rest/domain/SensorSummary.java +++ b/usage/rest-api/src/main/java/brooklyn/rest/domain/SensorSummary.java @@ -9,7 +9,7 @@ import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion; import com.google.common.collect.ImmutableMap; -public class SensorSummary { +public class SensorSummary implements HasName { private final String name; private final String type; @@ -30,6 +30,7 @@ public class SensorSummary { this.links = links != null ? ImmutableMap.copyOf(links) : null; } + @Override public String getName() { return name; } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c358310e/usage/rest-api/src/main/java/brooklyn/rest/domain/SummaryComparators.java ---------------------------------------------------------------------- diff --git a/usage/rest-api/src/main/java/brooklyn/rest/domain/SummaryComparators.java b/usage/rest-api/src/main/java/brooklyn/rest/domain/SummaryComparators.java new file mode 100644 index 0000000..2ebadf3 --- /dev/null +++ b/usage/rest-api/src/main/java/brooklyn/rest/domain/SummaryComparators.java @@ -0,0 +1,30 @@ +package brooklyn.rest.domain; + +import java.util.Comparator; + +/** + * Useful comparators for domain objects + */ +public class SummaryComparators { + + private SummaryComparators() {} + + public static Comparator<HasName> nameComparator() { + return new Comparator<HasName>() { + @Override + public int compare(HasName o1, HasName o2) { + return o1.getName().compareTo(o2.getName()); + } + }; + } + + public static Comparator<HasId> idComparator() { + return new Comparator<HasId>() { + @Override + public int compare(HasId o1, HasId o2) { + return o1.getId().compareTo(o2.getId()); + } + }; + } + +} http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c358310e/usage/rest-api/src/main/java/brooklyn/rest/domain/TaskSummary.java ---------------------------------------------------------------------- diff --git a/usage/rest-api/src/main/java/brooklyn/rest/domain/TaskSummary.java b/usage/rest-api/src/main/java/brooklyn/rest/domain/TaskSummary.java index 0664125..451524a 100644 --- a/usage/rest-api/src/main/java/brooklyn/rest/domain/TaskSummary.java +++ b/usage/rest-api/src/main/java/brooklyn/rest/domain/TaskSummary.java @@ -17,7 +17,7 @@ import brooklyn.util.collections.Jsonya; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -public class TaskSummary { +public class TaskSummary implements HasId { private final String id; private final String displayName; @@ -94,6 +94,7 @@ public class TaskSummary { } + @Override public String getId() { return id; } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c358310e/usage/rest-api/src/main/java/brooklyn/rest/domain/UsageStatistic.java ---------------------------------------------------------------------- diff --git a/usage/rest-api/src/main/java/brooklyn/rest/domain/UsageStatistic.java b/usage/rest-api/src/main/java/brooklyn/rest/domain/UsageStatistic.java index 007dcc2..bbdde0d 100644 --- a/usage/rest-api/src/main/java/brooklyn/rest/domain/UsageStatistic.java +++ b/usage/rest-api/src/main/java/brooklyn/rest/domain/UsageStatistic.java @@ -11,7 +11,7 @@ import static com.google.common.base.Preconditions.checkNotNull; /** * @author Adam Lowe */ -public class UsageStatistic { +public class UsageStatistic implements HasId { private final Status status; private final String id; private final String applicationId; @@ -37,6 +37,7 @@ public class UsageStatistic { return status; } + @Override public String getId() { return id; } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c358310e/usage/rest-server/src/main/java/brooklyn/rest/resources/CatalogResource.java ---------------------------------------------------------------------- diff --git a/usage/rest-server/src/main/java/brooklyn/rest/resources/CatalogResource.java b/usage/rest-server/src/main/java/brooklyn/rest/resources/CatalogResource.java index 78ca63c..2872a64 100644 --- a/usage/rest-server/src/main/java/brooklyn/rest/resources/CatalogResource.java +++ b/usage/rest-server/src/main/java/brooklyn/rest/resources/CatalogResource.java @@ -23,6 +23,7 @@ import brooklyn.rest.api.CatalogApi; import brooklyn.rest.domain.ApiError; import brooklyn.rest.domain.CatalogEntitySummary; import brooklyn.rest.domain.CatalogItemSummary; +import brooklyn.rest.domain.SummaryComparators; import brooklyn.rest.transform.CatalogTransformer; import brooklyn.rest.util.WebResourceUtils; import brooklyn.util.ResourceUtils; @@ -33,6 +34,7 @@ import com.google.common.base.Charsets; import com.google.common.base.Function; import com.google.common.base.Predicate; import com.google.common.base.Predicates; +import com.google.common.collect.FluentIterable; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.google.common.io.CharStreams; @@ -81,24 +83,18 @@ public class CatalogResource extends AbstractBrooklynRestResource implements Cat } @Override - public List<CatalogItemSummary> listEntities( - final String regex, - final String fragment - ) { + public List<CatalogItemSummary> listEntities(String regex, String fragment) { return getCatalogItemSummariesMatchingRegexFragment(CatalogPredicates.IS_ENTITY, regex, fragment); } @Override - public List<CatalogItemSummary> listApplications( - final String regex, - final String fragment - ) { + public List<CatalogItemSummary> listApplications(String regex, String fragment) { return getCatalogItemSummariesMatchingRegexFragment(CatalogPredicates.IS_TEMPLATE, regex, fragment); } @Override @SuppressWarnings("unchecked") - public CatalogEntitySummary getEntity(String entityId) throws Exception { + public CatalogEntitySummary getEntity(String entityId) { CatalogItem<?,?> result = brooklyn().getCatalog().getCatalogItem(entityId); if (result==null) { throw WebResourceUtils.notFound("Entity with id '%s' not found", entityId); @@ -108,16 +104,12 @@ public class CatalogResource extends AbstractBrooklynRestResource implements Cat } @Override - public List<CatalogItemSummary> listPolicies( - final String regex, - final String fragment - ) { + public List<CatalogItemSummary> listPolicies(String regex, String fragment) { return getCatalogItemSummariesMatchingRegexFragment(CatalogPredicates.IS_POLICY, regex, fragment); } @Override - public CatalogItemSummary getPolicy( - String policyId) throws Exception { + public CatalogItemSummary getPolicy(String policyId) { CatalogItem<?,?> result = brooklyn().getCatalog().getCatalogItem(policyId); if (result==null) { throw WebResourceUtils.notFound("Policy with id '%s' not found", policyId); @@ -134,9 +126,11 @@ public class CatalogResource extends AbstractBrooklynRestResource implements Cat filters.add(CatalogPredicates.xml(StringPredicates.containsRegex(regex))); if (Strings.isNonEmpty(fragment)) filters.add(CatalogPredicates.xml(StringPredicates.containsLiteralCaseInsensitive(fragment))); - return ImmutableList.copyOf(Iterables.transform( - brooklyn().getCatalog().getCatalogItems(Predicates.and(filters)), - TO_CATALOG_ITEM_SUMMARY)); + + return FluentIterable.from(brooklyn().getCatalog().getCatalogItems()) + .filter(Predicates.and(filters)) + .transform(TO_CATALOG_ITEM_SUMMARY) + .toSortedList(SummaryComparators.idComparator()); } @Override http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c358310e/usage/rest-server/src/main/java/brooklyn/rest/resources/EffectorResource.java ---------------------------------------------------------------------- diff --git a/usage/rest-server/src/main/java/brooklyn/rest/resources/EffectorResource.java b/usage/rest-server/src/main/java/brooklyn/rest/resources/EffectorResource.java index eb81d11..1e61324 100644 --- a/usage/rest-server/src/main/java/brooklyn/rest/resources/EffectorResource.java +++ b/usage/rest-server/src/main/java/brooklyn/rest/resources/EffectorResource.java @@ -17,6 +17,7 @@ import brooklyn.management.Task; import brooklyn.management.internal.EffectorUtils; import brooklyn.rest.api.EffectorApi; import brooklyn.rest.domain.EffectorSummary; +import brooklyn.rest.domain.SummaryComparators; import brooklyn.rest.transform.EffectorTransformer; import brooklyn.rest.transform.TaskTransformer; import brooklyn.rest.util.WebResourceUtils; @@ -30,11 +31,6 @@ import com.google.common.collect.FluentIterable; public class EffectorResource extends AbstractBrooklynRestResource implements EffectorApi { private static final Logger log = LoggerFactory.getLogger(EffectorResource.class); - private static final Comparator<EffectorSummary> SUMMARY_NAME_COMPARATOR = new Comparator<EffectorSummary>() { - @Override public int compare(EffectorSummary o1, EffectorSummary o2) { - return o1.getName().compareTo(o2.getName()); - } - }; @Override public List<EffectorSummary> list(final String application, final String entityToken) { @@ -46,7 +42,7 @@ public class EffectorResource extends AbstractBrooklynRestResource implements Ef return EffectorTransformer.effectorSummary(entity, effector); } }) - .toSortedList(SUMMARY_NAME_COMPARATOR); + .toSortedList(SummaryComparators.nameComparator()); } @Override http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c358310e/usage/rest-server/src/main/java/brooklyn/rest/resources/LocationResource.java ---------------------------------------------------------------------- diff --git a/usage/rest-server/src/main/java/brooklyn/rest/resources/LocationResource.java b/usage/rest-server/src/main/java/brooklyn/rest/resources/LocationResource.java index 5ff2955..efc13f5 100644 --- a/usage/rest-server/src/main/java/brooklyn/rest/resources/LocationResource.java +++ b/usage/rest-server/src/main/java/brooklyn/rest/resources/LocationResource.java @@ -19,6 +19,7 @@ import brooklyn.location.basic.LocationConfigKeys; import brooklyn.rest.api.LocationApi; import brooklyn.rest.domain.LocationSpec; import brooklyn.rest.domain.LocationSummary; +import brooklyn.rest.domain.SummaryComparators; import brooklyn.rest.transform.LocationTransformer; import brooklyn.rest.transform.LocationTransformer.LocationDetailLevel; import brooklyn.rest.util.EntityLocationUtils; @@ -60,16 +61,10 @@ public class LocationResource extends AbstractBrooklynRestResource implements Lo } } }; - Comparator<LocationSummary> nameComparator = new Comparator<LocationSummary>() { - @Override - public int compare(LocationSummary o1, LocationSummary o2) { - return o1.getName().compareTo(o2.getName()); - } - }; return FluentIterable.from(brooklyn().getLocationRegistry().getDefinedLocations().values()) .transform(transformer) .filter(LocationSummary.class) - .toSortedList(nameComparator); + .toSortedList(SummaryComparators.nameComparator()); } // this is here to support the web GUI's circles http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c358310e/usage/rest-server/src/main/java/brooklyn/rest/resources/PolicyResource.java ---------------------------------------------------------------------- diff --git a/usage/rest-server/src/main/java/brooklyn/rest/resources/PolicyResource.java b/usage/rest-server/src/main/java/brooklyn/rest/resources/PolicyResource.java index 423fdc0..06b475d 100644 --- a/usage/rest-server/src/main/java/brooklyn/rest/resources/PolicyResource.java +++ b/usage/rest-server/src/main/java/brooklyn/rest/resources/PolicyResource.java @@ -16,6 +16,7 @@ import brooklyn.policy.basic.Policies; import brooklyn.rest.api.PolicyApi; import brooklyn.rest.domain.PolicySummary; import brooklyn.rest.domain.Status; +import brooklyn.rest.domain.SummaryComparators; import brooklyn.rest.transform.ApplicationTransformer; import brooklyn.rest.transform.PolicyTransformer; import brooklyn.util.exceptions.Exceptions; @@ -27,11 +28,6 @@ import com.google.common.collect.Maps; public class PolicyResource extends AbstractBrooklynRestResource implements PolicyApi { private static final Logger log = LoggerFactory.getLogger(PolicyResource.class); - private static final Comparator<PolicySummary> SUMMARY_NAME_COMPARATOR = new Comparator<PolicySummary>() { - @Override public int compare(PolicySummary o1, PolicySummary o2) { - return o1.getName().compareTo(o2.getName()); - } - }; @Override public List<PolicySummary> list( final String application, final String entityToken) { @@ -43,7 +39,7 @@ public class PolicyResource extends AbstractBrooklynRestResource implements Poli return PolicyTransformer.policySummary(entity, policy); } }) - .toSortedList(SUMMARY_NAME_COMPARATOR); + .toSortedList(SummaryComparators.nameComparator()); } // TODO support parameters ?show=value,summary&name=xxx