You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2018/01/11 14:54:16 UTC
[3/4] brooklyn-server git commit: allow iconUrl to come from item,
match behaviour for name and description
allow iconUrl to come from item, match behaviour for name and description
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/26b8f4f9
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/26b8f4f9
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/26b8f4f9
Branch: refs/heads/master
Commit: 26b8f4f95bdaf279d5ac387a22cc5030f4362229
Parents: 1b1e785
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Thu Jan 11 11:45:36 2018 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Thu Jan 11 11:45:36 2018 +0000
----------------------------------------------------------------------
.../brooklyn/catalog/CatalogYamlPolicyTest.java | 42 +++++++++++++++++++-
.../catalog/internal/BasicBrooklynCatalog.java | 14 ++++---
2 files changed, 50 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/26b8f4f9/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlPolicyTest.java
----------------------------------------------------------------------
diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlPolicyTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlPolicyTest.java
index e1cbbb7..0dffd28 100644
--- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlPolicyTest.java
+++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlPolicyTest.java
@@ -27,6 +27,7 @@ import org.apache.brooklyn.camp.brooklyn.AbstractYamlTest;
import org.apache.brooklyn.core.config.BasicConfigKey;
import org.apache.brooklyn.core.test.policy.TestPolicy;
import org.apache.brooklyn.entity.stock.BasicEntity;
+import org.testng.Assert;
import org.testng.annotations.Test;
import com.google.common.collect.Iterables;
@@ -43,6 +44,28 @@ public class CatalogYamlPolicyTest extends AbstractYamlTest {
RegisteredType item = mgmt().getTypeRegistry().get(symbolicName, TEST_VERSION);
assertEquals(item.getSymbolicName(), symbolicName);
+ Assert.assertNotNull(item.getDisplayName());
+ Assert.assertNotNull(item.getIconUrl());
+ Assert.assertNotNull(item.getDescription());
+ assertEquals(countCatalogPolicies(), 1);
+
+ deleteCatalogEntity(symbolicName);
+ }
+
+ @Test
+ public void testAddCatalogItemDetailsFromItemNotMetadata() throws Exception {
+ assertEquals(countCatalogPolicies(), 0);
+
+ String symbolicName = "my.catalog.policy.id.load";
+ addCatalogPolicyDetailsFromItemNotMetadata(symbolicName, POLICY_TYPE);
+
+ RegisteredType item = mgmt().getTypeRegistry().get(symbolicName, TEST_VERSION);
+ assertEquals(item.getSymbolicName(), symbolicName);
+ Assert.assertNotNull(item.getDisplayName());
+ Assert.assertNotNull(item.getDescription());
+ // prior to 2018-01 the above could come from either but icon for policy could only come from metadata;
+ // fixed by the other change made in the same commit as this test and comment
+ Assert.assertNotNull(item.getIconUrl());
assertEquals(countCatalogPolicies(), 1);
deleteCatalogEntity(symbolicName);
@@ -146,8 +169,25 @@ public class CatalogYamlPolicyTest extends AbstractYamlTest {
" itemType: policy",
" name: My Catalog Policy",
" description: My description",
- " icon_url: classpath://path/to/myicon.jpg",
+ " iconUrl: classpath://path/to/myicon.jpg",
+ " item:",
+ " type: " + policyType,
+ " brooklyn.config:",
+ " config1: config1",
+ " config2: config2");
+ }
+
+ private void addCatalogPolicyDetailsFromItemNotMetadata(String symbolicName, String policyType) {
+ // name, description, and icon can be set in the item _or_ in metadata
+ addCatalogItems(
+ "brooklyn.catalog:",
+ " id: " + symbolicName,
+ " version: " + TEST_VERSION,
+ " itemType: policy",
" item:",
+ " name: My Catalog Policy",
+ " description: My description",
+ " iconUrl: classpath://path/to/myicon.jpg",
" type: " + policyType,
" brooklyn.config:",
" config1: config1",
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/26b8f4f9/core/src/main/java/org/apache/brooklyn/core/catalog/internal/BasicBrooklynCatalog.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/BasicBrooklynCatalog.java b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/BasicBrooklynCatalog.java
index 2b6d169..6ab68c2 100644
--- a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/BasicBrooklynCatalog.java
+++ b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/BasicBrooklynCatalog.java
@@ -907,7 +907,8 @@ public class BasicBrooklynCatalog implements BrooklynCatalog {
description = setFromItemIfUnset(description, itemAsMap, "description");
// icon.url is discouraged (using '.'), but kept for legacy compatibility; should deprecate this
- final String catalogIconUrl = getFirstAs(catalogMetadata, String.class, "iconUrl", "icon_url", "icon.url").orNull();
+ String catalogIconUrl = getFirstAs(catalogMetadata, String.class, "iconUrl", "icon_url", "icon.url").orNull();
+ catalogIconUrl = setFromItemIfUnset(catalogIconUrl, itemAsMap, "iconUrl", "icon_url", "icon.url");
final String deprecated = getFirstAs(catalogMetadata, String.class, "deprecated").orNull();
final Boolean catalogDeprecated = Boolean.valueOf(deprecated);
@@ -1088,12 +1089,15 @@ public class BasicBrooklynCatalog implements BrooklynCatalog {
throw new UserFacingException("Expected "+JavaClassNames.superSimpleClassName(type)+" for "+description+", not "+JavaClassNames.superSimpleClassName(x));
}
- private String setFromItemIfUnset(String oldValue, Map<?,?> item, String fieldAttr) {
+ private String setFromItemIfUnset(String oldValue, Map<?,?> item, String ...fieldAttrs) {
if (Strings.isNonBlank(oldValue)) return oldValue;
if (item!=null) {
- Object newValue = item.get(fieldAttr);
- if (newValue instanceof String && Strings.isNonBlank((String)newValue))
- return (String)newValue;
+ for (String fieldAttr: fieldAttrs) {
+ Object newValue = item.get(fieldAttr);
+ if (newValue instanceof String && Strings.isNonBlank((String)newValue)) {
+ return (String)newValue;
+ }
+ }
}
return oldValue;
}