fix REST tests and code * containingBundle should be in result json (not related, but thought it was the problem) * list call includes items twice now * camp needs to be loaded before any usage of catalog
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/e387e423 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/e387e423 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/e387e423 Branch: refs/heads/master Commit: e387e4237ed998e8194e5abd513427b3aae74609 Parents: e8e39fd Author: Alex Heneveld <[email protected]> Authored: Thu Aug 17 11:29:09 2017 +0100 Committer: Alex Heneveld <[email protected]> Committed: Thu Aug 17 11:29:09 2017 +0100 ---------------------------------------------------------------------- .../core/typereg/BasicBrooklynTypeRegistry.java | 18 ++++++++++++++---- .../rest/domain/CatalogEnricherSummary.java | 3 ++- .../rest/domain/CatalogEntitySummary.java | 4 +++- .../rest/domain/CatalogItemSummary.java | 11 ++++++++++- .../rest/domain/CatalogLocationSummary.java | 3 ++- .../rest/domain/CatalogPolicySummary.java | 3 ++- .../rest/transform/CatalogTransformer.java | 20 ++++++++++---------- .../rest/resources/CatalogResourceTest.java | 5 ++--- .../rest/testing/BrooklynRestApiTest.java | 5 +++-- 9 files changed, 48 insertions(+), 24 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/e387e423/core/src/main/java/org/apache/brooklyn/core/typereg/BasicBrooklynTypeRegistry.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/core/typereg/BasicBrooklynTypeRegistry.java b/core/src/main/java/org/apache/brooklyn/core/typereg/BasicBrooklynTypeRegistry.java index 60142a7..8c65f99 100644 --- a/core/src/main/java/org/apache/brooklyn/core/typereg/BasicBrooklynTypeRegistry.java +++ b/core/src/main/java/org/apache/brooklyn/core/typereg/BasicBrooklynTypeRegistry.java @@ -87,10 +87,20 @@ public class BasicBrooklynTypeRegistry implements BrooklynTypeRegistry { @SuppressWarnings("deprecation") @Override public Iterable<RegisteredType> getMatching(Predicate<? super RegisteredType> filter) { - return Iterables.filter(Iterables.concat( - getAllWithoutCatalog(filter), - Iterables.transform(mgmt.getCatalog().getCatalogItems(), RegisteredTypes.CI_TO_RT)), - filter); + Map<String,RegisteredType> result = MutableMap.of(); + for (RegisteredType rt: getAllWithoutCatalog(filter)) { + result.put(rt.getId(), rt); + } + for (RegisteredType rt: Iterables.filter( + Iterables.transform(mgmt.getCatalog().getCatalogItems(), RegisteredTypes.CI_TO_RT), + filter)) { + if (!result.containsKey(rt.getId())) { + // shouldn't be using this now + log.warn("Item '"+rt.getId()+"' not in type registry; only found in legacy catalog"); + result.put(rt.getId(), rt); + } + } + return result.values(); } @SuppressWarnings("deprecation") http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/e387e423/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogEnricherSummary.java ---------------------------------------------------------------------- diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogEnricherSummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogEnricherSummary.java index b0a0403..2e81ae1 100644 --- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogEnricherSummary.java +++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogEnricherSummary.java @@ -37,6 +37,7 @@ public class CatalogEnricherSummary extends CatalogItemSummary { public CatalogEnricherSummary( @JsonProperty("symbolicName") String symbolicName, @JsonProperty("version") String version, + @JsonProperty("containingBundle") String containingBundle, @JsonProperty("name") String name, @JsonProperty("javaType") String javaType, @JsonProperty("itemType") String itemType, @@ -48,7 +49,7 @@ public class CatalogEnricherSummary extends CatalogItemSummary { @JsonProperty("deprecated") boolean deprecated, @JsonProperty("links") Map<String, URI> links ) { - super(symbolicName, version, name, javaType, itemType, planYaml, description, iconUrl, tags, deprecated, links); + super(symbolicName, version, containingBundle, name, javaType, itemType, planYaml, description, iconUrl, tags, deprecated, links); // TODO expose config from enrichers this.config = (config == null) ? ImmutableSet.<EnricherConfigSummary>of() : config; } http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/e387e423/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogEntitySummary.java ---------------------------------------------------------------------- diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogEntitySummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogEntitySummary.java index 6d66401..5947b7f 100644 --- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogEntitySummary.java +++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogEntitySummary.java @@ -44,6 +44,7 @@ public class CatalogEntitySummary extends CatalogItemSummary { public CatalogEntitySummary( @JsonProperty("symbolicName") String symbolicName, @JsonProperty("version") String version, + @JsonProperty("containingBundle") String containingBundle, @JsonProperty("name") String name, @JsonProperty("javaType") String javaType, @JsonProperty("itemType") String itemType, @@ -57,7 +58,7 @@ public class CatalogEntitySummary extends CatalogItemSummary { @JsonProperty("deprecated") boolean deprecated, @JsonProperty("links") Map<String, URI> links ) { - super(symbolicName, version, name, javaType, itemType, planYaml, description, iconUrl, tags, deprecated, links); + super(symbolicName, version, containingBundle, name, javaType, itemType, planYaml, description, iconUrl, tags, deprecated, links); this.config = config; this.sensors = sensors; this.effectors = effectors; @@ -97,6 +98,7 @@ public class CatalogEntitySummary extends CatalogItemSummary { "id='" + getId() + '\'' + ", symbolicName='" + getSymbolicName() + '\'' + ", version='" + getVersion() + '\'' + + ", containingBundle='" + getContainingBundle() + '\'' + ", type='" + getType() + '\'' + ", name='" + getName() + '\'' + ", config=" + config + http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/e387e423/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogItemSummary.java ---------------------------------------------------------------------- diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogItemSummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogItemSummary.java index 49c838a..cdb86d4 100644 --- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogItemSummary.java +++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogItemSummary.java @@ -43,6 +43,7 @@ public class CatalogItemSummary implements HasId, HasName, Serializable { private final String id; private final String symbolicName; private final String version; + private final String containingBundle; //needed for backwards compatibility only (json serializer works on fields, not getters) @Deprecated @@ -67,6 +68,7 @@ public class CatalogItemSummary implements HasId, HasName, Serializable { public CatalogItemSummary( @JsonProperty("symbolicName") String symbolicName, @JsonProperty("version") String version, + @JsonProperty("containingBundle") String containingBundle, @JsonProperty("name") String displayName, @JsonProperty("javaType") String javaType, @JsonProperty("itemType") String itemType, @@ -81,6 +83,7 @@ public class CatalogItemSummary implements HasId, HasName, Serializable { this.symbolicName = symbolicName; this.type = symbolicName; this.version = version; + this.containingBundle = containingBundle; this.name = displayName; this.javaType = javaType; this.itemType = itemType; @@ -105,6 +108,10 @@ public class CatalogItemSummary implements HasId, HasName, Serializable { return version; } + public String getContainingBundle() { + return containingBundle; + } + public String getJavaType() { return javaType; } @@ -155,6 +162,7 @@ public class CatalogItemSummary implements HasId, HasName, Serializable { Objects.equals(id, that.id) && Objects.equals(symbolicName, that.symbolicName) && Objects.equals(version, that.version) && + Objects.equals(containingBundle, that.containingBundle) && Objects.equals(type, that.type) && Objects.equals(itemType, that.itemType) && Objects.equals(javaType, that.javaType) && @@ -168,7 +176,7 @@ public class CatalogItemSummary implements HasId, HasName, Serializable { @Override public int hashCode() { - return Objects.hash(id, symbolicName, version, type, javaType, itemType, name, description, iconUrl, planYaml, tags, deprecated, links); + return Objects.hash(id, symbolicName, version, containingBundle, type, javaType, itemType, name, description, iconUrl, planYaml, tags, deprecated, links); } @Override @@ -177,6 +185,7 @@ public class CatalogItemSummary implements HasId, HasName, Serializable { "id='" + id + '\'' + ", symbolicName='" + symbolicName + '\'' + ", version='" + version + '\'' + + ", containingBundle='" + containingBundle + '\'' + ", type='" + type + '\'' + ", javaType='" + javaType + '\'' + ", itemType='" + itemType + '\'' + http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/e387e423/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogLocationSummary.java ---------------------------------------------------------------------- diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogLocationSummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogLocationSummary.java index 883232b..0213a0c 100644 --- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogLocationSummary.java +++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogLocationSummary.java @@ -35,6 +35,7 @@ public class CatalogLocationSummary extends CatalogItemSummary { public CatalogLocationSummary( @JsonProperty("symbolicName") String symbolicName, @JsonProperty("version") String version, + @JsonProperty("containingBundle") String containingBundle, @JsonProperty("name") String name, @JsonProperty("javaType") String javaType, @JsonProperty("itemType") String itemType, @@ -46,7 +47,7 @@ public class CatalogLocationSummary extends CatalogItemSummary { @JsonProperty("deprecated") boolean deprecated, @JsonProperty("links") Map<String, URI> links ) { - super(symbolicName, version, name, javaType, itemType, planYaml, description, iconUrl, tags, deprecated, links); + super(symbolicName, version, containingBundle, name, javaType, itemType, planYaml, description, iconUrl, tags, deprecated, links); // TODO expose config from policies this.config = (config == null) ? ImmutableSet.<LocationConfigSummary>of() : config; } http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/e387e423/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogPolicySummary.java ---------------------------------------------------------------------- diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogPolicySummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogPolicySummary.java index 396c550..37e5786 100644 --- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogPolicySummary.java +++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogPolicySummary.java @@ -37,6 +37,7 @@ public class CatalogPolicySummary extends CatalogItemSummary { public CatalogPolicySummary( @JsonProperty("symbolicName") String symbolicName, @JsonProperty("version") String version, + @JsonProperty("containingBundle") String containingBundle, @JsonProperty("name") String name, @JsonProperty("javaType") String javaType, @JsonProperty("itemType") String itemType, @@ -48,7 +49,7 @@ public class CatalogPolicySummary extends CatalogItemSummary { @JsonProperty("deprecated") boolean deprecated, @JsonProperty("links") Map<String, URI> links ) { - super(symbolicName, version, name, javaType, itemType, planYaml, description, iconUrl, tags, deprecated, links); + super(symbolicName, version, containingBundle, name, javaType, itemType, planYaml, description, iconUrl, tags, deprecated, links); // TODO expose config from policies this.config = (config == null) ? ImmutableSet.<PolicyConfigSummary>of() : config; } http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/e387e423/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/CatalogTransformer.java ---------------------------------------------------------------------- diff --git a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/CatalogTransformer.java b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/CatalogTransformer.java index 9fe024a..aa30dd5 100644 --- a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/CatalogTransformer.java +++ b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/transform/CatalogTransformer.java @@ -107,7 +107,7 @@ public class CatalogTransformer { } } - return new CatalogEntitySummary(item.getSymbolicName(), item.getVersion(), item.getDisplayName(), + return new CatalogEntitySummary(item.getSymbolicName(), item.getVersion(), item.getContainingBundle(), item.getDisplayName(), spec!=null ? spec.getType().getName() : item.getSuperTypes().toString(), spec!=null ? CatalogItemType.ofTargetClass(spec.getType()).name() : @@ -137,7 +137,7 @@ public class CatalogTransformer { Exceptions.propagateIfFatal(e); log.warn("Invalid item in catalog when converting REST summaries (supplying generic item), at "+item+": "+e, e); } - return new CatalogItemSummary(item.getSymbolicName(), item.getVersion(), item.getDisplayName(), + return new CatalogItemSummary(item.getSymbolicName(), item.getVersion(), item.getContainingBundle(), item.getDisplayName(), item.getSuperTypes().toString(), item.getKind()==RegisteredTypeKind.BEAN ? "bean" : "unknown", RegisteredTypes.getImplementationDataStringForSpec(item), @@ -156,7 +156,7 @@ public class CatalogTransformer { Exceptions.propagateIfFatal(e); log.trace("Unable to create policy spec for "+item+": "+e, e); } - return new CatalogPolicySummary(item.getSymbolicName(), item.getVersion(), item.getDisplayName(), + return new CatalogPolicySummary(item.getSymbolicName(), item.getVersion(), item.getContainingBundle(), item.getDisplayName(), spec!=null ? spec.getType().getName() : item.getSuperTypes().toString(), CatalogItemType.POLICY.toString(), RegisteredTypes.getImplementationDataStringForSpec(item), @@ -176,7 +176,7 @@ public class CatalogTransformer { Exceptions.propagateIfFatal(e); log.trace("Unable to create policy spec for "+item+": "+e, e); } - return new CatalogEnricherSummary(item.getSymbolicName(), item.getVersion(), item.getDisplayName(), + return new CatalogEnricherSummary(item.getSymbolicName(), item.getVersion(), item.getContainingBundle(), item.getDisplayName(), spec!=null ? spec.getType().getName() : item.getSuperTypes().toString(), CatalogItemType.ENRICHER.toString(), RegisteredTypes.getImplementationDataStringForSpec(item), @@ -186,7 +186,7 @@ public class CatalogTransformer { public static CatalogLocationSummary catalogLocationSummary(BrooklynRestResourceUtils b, RegisteredType item, UriBuilder ub) { Set<LocationConfigSummary> config = ImmutableSet.of(); - return new CatalogLocationSummary(item.getSymbolicName(), item.getVersion(), item.getDisplayName(), + return new CatalogLocationSummary(item.getSymbolicName(), item.getVersion(), item.getContainingBundle(), item.getDisplayName(), item.getSuperTypes().toString(), CatalogItemType.LOCATION.toString(), RegisteredTypes.getImplementationDataStringForSpec(item), @@ -277,7 +277,7 @@ public class CatalogTransformer { } } - return new CatalogEntitySummary(item.getSymbolicName(), item.getVersion(), item.getDisplayName(), + return new CatalogEntitySummary(item.getSymbolicName(), item.getVersion(), item.getContainingBundle(), item.getDisplayName(), item.getJavaType(), item.getCatalogItemType().toString(), item.getPlanYaml(), item.getDescription(), tidyIconLink(b, item, item.getIconUrl(), ub), makeTags(spec, item), config, sensors, effectors, @@ -305,7 +305,7 @@ public class CatalogTransformer { Exceptions.propagateIfFatal(e); log.warn("Invalid item in catalog when converting REST summaries (supplying generic item), at "+item+": "+e, e); } - return new CatalogItemSummary(item.getSymbolicName(), item.getVersion(), item.getDisplayName(), + return new CatalogItemSummary(item.getSymbolicName(), item.getVersion(), item.getContainingBundle(), item.getDisplayName(), item.getJavaType(), item.getCatalogItemType().toString(), item.getPlanYaml(), item.getDescription(), tidyIconLink(b, item, item.getIconUrl(), ub), item.tags().getTags(), item.isDeprecated(), makeLinks(item, ub)); } @@ -322,7 +322,7 @@ public class CatalogTransformer { Exceptions.propagateIfFatal(e); log.trace("Unable to create policy spec for "+item+": "+e, e); } - return new CatalogPolicySummary(item.getSymbolicName(), item.getVersion(), item.getDisplayName(), + return new CatalogPolicySummary(item.getSymbolicName(), item.getVersion(), item.getContainingBundle(), item.getDisplayName(), item.getJavaType(), item.getCatalogItemType().toString(), item.getPlanYaml(), item.getDescription(), tidyIconLink(b, item, item.getIconUrl(), ub), config, item.tags().getTags(), item.isDeprecated(), makeLinks(item, ub)); @@ -340,7 +340,7 @@ public class CatalogTransformer { Exceptions.propagateIfFatal(e); log.trace("Unable to create policy spec for "+item+": "+e, e); } - return new CatalogEnricherSummary(item.getSymbolicName(), item.getVersion(), item.getDisplayName(), + return new CatalogEnricherSummary(item.getSymbolicName(), item.getVersion(), item.getContainingBundle(), item.getDisplayName(), item.getJavaType(), item.getCatalogItemType().toString(), item.getPlanYaml(), item.getDescription(), tidyIconLink(b, item, item.getIconUrl(), ub), config, item.tags().getTags(), item.isDeprecated(), makeLinks(item, ub)); @@ -349,7 +349,7 @@ public class CatalogTransformer { /** @deprecated since 0.12.0 use {@link RegisteredType} methods instead */ @Deprecated public static CatalogLocationSummary catalogLocationSummary(BrooklynRestResourceUtils b, CatalogItem<? extends Location,LocationSpec<?>> item, UriBuilder ub) { Set<LocationConfigSummary> config = ImmutableSet.of(); - return new CatalogLocationSummary(item.getSymbolicName(), item.getVersion(), item.getDisplayName(), + return new CatalogLocationSummary(item.getSymbolicName(), item.getVersion(), item.getContainingBundle(), item.getDisplayName(), item.getJavaType(), item.getCatalogItemType().toString(), item.getPlanYaml(), item.getDescription(), tidyIconLink(b, item, item.getIconUrl(), ub), config, item.tags().getTags(), item.isDeprecated(), makeLinks(item, ub)); http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/e387e423/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/CatalogResourceTest.java ---------------------------------------------------------------------- diff --git a/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/CatalogResourceTest.java b/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/CatalogResourceTest.java index abdd1ed..b59d1fd 100644 --- a/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/CatalogResourceTest.java +++ b/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/CatalogResourceTest.java @@ -188,7 +188,6 @@ public class CatalogResourceTest extends BrooklynRestResourceTest { } @Test - // osgi may fail in IDE, typically works on mvn CLI though public void testRegisterOsgiPolicyTopLevelSyntax() { TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH); @@ -222,6 +221,7 @@ public class CatalogResourceTest extends BrooklynRestResourceTest { public void testListAllEntities() { List<CatalogEntitySummary> entities = client().path("/catalog/entities") .get(new GenericType<List<CatalogEntitySummary>>() {}); + log.info("Entities: "+entities); assertTrue(entities.size() > 0); } @@ -237,10 +237,9 @@ public class CatalogResourceTest extends BrooklynRestResourceTest { public void testFilterListOfEntitiesByName() { List<CatalogEntitySummary> entities = client().path("/catalog/entities") .query("fragment", "vaNIllasOFTWAREpROCESS").get(new GenericType<List<CatalogEntitySummary>>() {}); + log.info("Matching entities: " + entities); assertEquals(entities.size(), 1); - log.info("MAtching entities are: " + entities); - List<CatalogEntitySummary> entities2 = client().path("/catalog/entities") .query("regex", "[Vv]an.[alS]+oftware\\w+").get(new GenericType<List<CatalogEntitySummary>>() {}); assertEquals(entities2.size(), 1); http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/e387e423/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/testing/BrooklynRestApiTest.java ---------------------------------------------------------------------- diff --git a/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/testing/BrooklynRestApiTest.java b/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/testing/BrooklynRestApiTest.java index 0d38eaa..b5136e6 100644 --- a/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/testing/BrooklynRestApiTest.java +++ b/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/testing/BrooklynRestApiTest.java @@ -148,11 +148,12 @@ public abstract class BrooklynRestApiTest { manager.getHighAvailabilityManager().disabled(); ((LocalManagementContext)manager).generateManagementPlaneId(); - BasicLocationRegistry.addNamedLocationLocalhost(manager); - new BrooklynCampPlatformLauncherNoServer() .useManagementContext(manager) .launch(); + + // must come after CAMP because this triggers a catalog population + BasicLocationRegistry.addNamedLocationLocalhost(manager); } return manager; }
