XPathHelper.getStringList fix and formatting, hashcode/equals fixes.
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/b4e56a59 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/b4e56a59 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/b4e56a59 Branch: refs/heads/master Commit: b4e56a59c2c9811b8358ea8c4de4dc0a98567c1e Parents: 51b0b75 Author: Geoff Macartney <[email protected]> Authored: Sat Mar 18 20:46:34 2017 +0000 Committer: Geoff Macartney <[email protected]> Committed: Thu Apr 20 11:20:36 2017 +0100 ---------------------------------------------------------------------- .../internal/AbstractBrooklynObjectSpec.java | 14 +- .../catalog/CatalogOsgiYamlEntityTest.java | 145 +++++++++---------- .../brooklyn/catalog/CatalogYamlEntityTest.java | 6 +- .../brooklyn/catalog/CatalogYamlRebindTest.java | 17 --- .../internal/CatalogItemDtoAbstract.java | 4 +- .../BrooklynMementoPersisterToObjectStore.java | 2 +- 6 files changed, 85 insertions(+), 103 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/b4e56a59/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java ---------------------------------------------------------------------- diff --git a/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java b/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java index 10acfe4..12a8e73 100644 --- a/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java +++ b/api/src/main/java/org/apache/brooklyn/api/internal/AbstractBrooklynObjectSpec.java @@ -90,9 +90,9 @@ public abstract class AbstractBrooklynObjectSpec<T, SpecT extends AbstractBrookl @Override public String toString() { return MoreObjects.toStringHelper(this).omitNullValues() - .add("type", type) - .add("displayName", displayName) - .toString(); + .add("type", type) + .add("displayName", displayName) + .toString(); } protected abstract void checkValidType(Class<? extends T> type); @@ -223,9 +223,9 @@ public abstract class AbstractBrooklynObjectSpec<T, SpecT extends AbstractBrookl current.removeAll(params); return parametersReplace(ImmutableList.<SpecParameter<?>>builder() - .addAll(params) - .addAll(current) - .build()); + .addAll(params) + .addAll(current) + .build()); } /** @@ -328,7 +328,7 @@ public abstract class AbstractBrooklynObjectSpec<T, SpecT extends AbstractBrookl public boolean equals(Object obj) { if (obj == null) return false; if (!obj.getClass().equals(getClass())) return false; - AbstractBrooklynObjectSpec<?, ?> other = (AbstractBrooklynObjectSpec<?, ?>) obj; + AbstractBrooklynObjectSpec<?,?> other = (AbstractBrooklynObjectSpec<?,?>) obj; if (!Objects.equal(getDisplayName(), other.getDisplayName())) return false; if (!Objects.equal(getCatalogItemId(), other.getCatalogItemId())) return false; if (!Objects.equal(getCatalogItemIdSearchPath(), other.getCatalogItemIdSearchPath())) return false; http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/b4e56a59/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogOsgiYamlEntityTest.java ---------------------------------------------------------------------- diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogOsgiYamlEntityTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogOsgiYamlEntityTest.java index b0bf747..7b726bc 100644 --- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogOsgiYamlEntityTest.java +++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogOsgiYamlEntityTest.java @@ -46,6 +46,7 @@ import org.testng.Assert; import org.testng.annotations.Test; import com.google.common.base.Joiner; +import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; public class CatalogOsgiYamlEntityTest extends AbstractYamlTest { @@ -745,81 +746,77 @@ public class CatalogOsgiYamlEntityTest extends AbstractYamlTest { deleteCatalogEntity(symbolicNameOuter); } + @Test + public void testCatalogItemIdInReferencedItems() throws Exception { + TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH); + + String symbolicNameInner = "my.catalog.app.id.inner"; + String symbolicNameOuter = "my.catalog.app.id.outer"; + addCatalogItems( + "brooklyn.catalog:", + " version: " + TEST_VERSION, + " items:", + " - id: " + symbolicNameInner, + " name: My Catalog App", + " description: My description", + " icon_url: classpath://path/to/myicon.jpg", + " brooklyn.libraries:", + " - url: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL, + " item: " + SIMPLE_ENTITY_TYPE, + " - id: " + symbolicNameOuter, + " item: " + symbolicNameInner); + + String yaml = "name: " + symbolicNameOuter + "\n" + + "services: \n" + + " - serviceType: " + ver(symbolicNameOuter); + + Entity app = createAndStartApplication(yaml); + Entity entity = app.getChildren().iterator().next(); + assertEquals(entity.getCatalogItemId(), ver(symbolicNameOuter)); + assertEquals(entity.getCatalogItemIdSearchPath(), ImmutableList.of(ver(symbolicNameInner)), + "should have just " + symbolicNameInner + " in search path"); + + deleteCatalogEntity(symbolicNameInner); + deleteCatalogEntity(symbolicNameOuter); + } + @Test + public void testDeepCatalogItemCanLoadResources() throws Exception { + TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH); + TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_MORE_ENTITIES_0_1_0_PATH); + + String symbolicNameInner = "my.catalog.app.id.inner"; + String symbolicNameFiller = "my.catalog.app.id.filler"; + String symbolicNameOuter = "my.catalog.app.id.outer"; + addCatalogItems( + "brooklyn.catalog:", + " version: " + TEST_VERSION, + " items:", + " - id: " + symbolicNameInner, + " name: My Catalog App", + " brooklyn.libraries:", + " - url: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL, + " item: " + SIMPLE_ENTITY_TYPE, + " - id: " + symbolicNameFiller, + " name: Filler App", + " brooklyn.libraries:", + " - url: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_MORE_ENTITIES_0_1_0_URL, + " item: " + symbolicNameInner, + " - id: " + symbolicNameOuter, + " item: " + symbolicNameFiller); + + String yaml = "name: " + symbolicNameOuter + "\n" + + "services: \n" + + " - serviceType: "+ver(symbolicNameOuter); + Entity app = createAndStartApplication(yaml); + Entity entity = app.getChildren().iterator().next(); + + final String catalogBom = ResourceUtils.create(entity).getResourceAsString("classpath://" + MORE_ENTITIES_POM_PROPERTIES_PATH); + assertTrue(catalogBom.contains("artifactId=brooklyn-test-osgi-more-entities")); - @Test - public void testDeepCatalogItemCanLoadResources() throws Exception { - TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH); - TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_MORE_ENTITIES_0_1_0_PATH); - - String symbolicNameInner = "my.catalog.app.id.inner"; - String symbolicNameFiller = "my.catalog.app.id.filler"; - String symbolicNameOuter = "my.catalog.app.id.outer"; - addCatalogItems( - "brooklyn.catalog:", - " version: " + TEST_VERSION, - " items:", - " - id: " + symbolicNameInner, - " name: My Catalog App", - " brooklyn.libraries:", - " - url: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL, - " item: " + SIMPLE_ENTITY_TYPE, - " - id: " + symbolicNameFiller, - " name: Filler App", - " brooklyn.libraries:", - " - url: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_MORE_ENTITIES_0_1_0_URL, - " item: " + symbolicNameInner, - " - id: " + symbolicNameOuter, - " item: " + symbolicNameFiller); - - String yaml = "name: " + symbolicNameOuter + "\n" + - "services: \n" + - " - serviceType: "+ver(symbolicNameOuter); - Entity app = createAndStartApplication(yaml); - Entity entity = app.getChildren().iterator().next(); - - final String catalogBom = ResourceUtils.create(entity).getResourceAsString("classpath://" + MORE_ENTITIES_POM_PROPERTIES_PATH); - assertTrue(catalogBom.contains("artifactId=brooklyn-test-osgi-more-entities")); - - deleteCatalogEntity(symbolicNameOuter); - deleteCatalogEntity(symbolicNameFiller); - deleteCatalogEntity(symbolicNameInner); - } - - @Test - public void testCatalogItemIdInReferencedItems() throws Exception { - TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH); - - String symbolicNameInner = "my.catalog.app.id.inner"; - String symbolicNameOuter = "my.catalog.app.id.outer"; - addCatalogItems( - "brooklyn.catalog:", - " version: " + TEST_VERSION, - " items:", - " - id: " + symbolicNameInner, - " name: My Catalog App", - " description: My description", - " icon_url: classpath://path/to/myicon.jpg", - " brooklyn.libraries:", - " - url: " + OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL, - " item: " + SIMPLE_ENTITY_TYPE, - " - id: " + symbolicNameOuter, - " item: " + symbolicNameInner); - - String yaml = "name: " + symbolicNameOuter + "\n" + - "services: \n" + - " - serviceType: "+ver(symbolicNameOuter); - - Entity app = createAndStartApplication(yaml); - - Entity entity = app.getChildren().iterator().next(); - assertEquals(entity.getCatalogItemId(), ver(symbolicNameOuter)); - assertEquals(entity.getCatalogItemIdSearchPath().size(), 1, "should have exactly one item in search path"); - assertEquals(entity.getCatalogItemIdSearchPath().get(0), ver(symbolicNameInner), - "should have " + symbolicNameInner + " in search path"); - - deleteCatalogEntity(symbolicNameInner); - deleteCatalogEntity(symbolicNameOuter); - } + deleteCatalogEntity(symbolicNameOuter); + deleteCatalogEntity(symbolicNameFiller); + deleteCatalogEntity(symbolicNameInner); + } private void registerAndLaunchAndAssertSimpleEntity(String symbolicName, String serviceType) throws Exception { addCatalogOSGiEntity(symbolicName, serviceType); http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/b4e56a59/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java ---------------------------------------------------------------------- diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java index b3264f7..847e461 100644 --- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java +++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java @@ -45,6 +45,7 @@ import org.testng.Assert; import org.testng.annotations.Test; import com.google.common.base.Joiner; +import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; @@ -643,9 +644,8 @@ public class CatalogYamlEntityTest extends AbstractYamlTest { Entity entity = app.getChildren().iterator().next(); assertEquals(entity.getCatalogItemId(), ver(symbolicNameOuter)); - assertEquals(entity.getCatalogItemIdSearchPath().size(), 1, "should have exactly one item in search path"); - assertEquals(entity.getCatalogItemIdSearchPath().get(0), ver(symbolicNameInner), - "should have " + symbolicNameInner + " in search path"); + assertEquals(entity.getCatalogItemIdSearchPath(), ImmutableList.of(ver(symbolicNameInner)), + "should have just " + symbolicNameInner + " in search path"); deleteCatalogEntity(symbolicNameInner); deleteCatalogEntity(symbolicNameOuter); http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/b4e56a59/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlRebindTest.java ---------------------------------------------------------------------- diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlRebindTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlRebindTest.java index 8daf21c..c4af503 100644 --- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlRebindTest.java +++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlRebindTest.java @@ -25,24 +25,13 @@ import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertNull; import static org.testng.Assert.assertTrue; -import java.io.StringReader; -import java.io.StringWriter; import java.util.List; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.transform.OutputKeys; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; - import org.apache.brooklyn.api.catalog.CatalogItem; import org.apache.brooklyn.api.entity.Entity; import org.apache.brooklyn.api.mgmt.rebind.mementos.BrooklynMementoPersister; import org.apache.brooklyn.api.mgmt.rebind.mementos.BrooklynMementoRawData; import org.apache.brooklyn.api.objs.BrooklynObjectType; -import org.apache.brooklyn.api.policy.Policy; -import org.apache.brooklyn.api.sensor.Enricher; import org.apache.brooklyn.api.typereg.RegisteredType; import org.apache.brooklyn.camp.brooklyn.AbstractYamlRebindTest; import org.apache.brooklyn.core.BrooklynFeatureEnablement; @@ -68,16 +57,10 @@ import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.xml.sax.InputSource; import com.google.common.base.Function; import com.google.common.base.Joiner; import com.google.common.base.Predicates; -import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; public class CatalogYamlRebindTest extends AbstractYamlRebindTest { http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/b4e56a59/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemDtoAbstract.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemDtoAbstract.java b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemDtoAbstract.java index 0bae32d..5aec768 100644 --- a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemDtoAbstract.java +++ b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemDtoAbstract.java @@ -191,7 +191,8 @@ public abstract class CatalogItemDtoAbstract<T, SpecT> extends AbstractBrooklynO @Override public int hashCode() { - return Objects.hashCode(symbolicName, planYaml, javaType, nullIfEmpty(libraries), version, getCatalogItemId()); + return Objects.hashCode(symbolicName, planYaml, javaType, nullIfEmpty(libraries), version, getCatalogItemId(), + getCatalogItemIdSearchPath()); } @Override @@ -205,6 +206,7 @@ public abstract class CatalogItemDtoAbstract<T, SpecT> extends AbstractBrooklynO if (!Objects.equal(javaType, other.javaType)) return false; if (!Objects.equal(nullIfEmpty(libraries), nullIfEmpty(other.libraries))) return false; if (!Objects.equal(getCatalogItemId(), other.getCatalogItemId())) return false; + if (!Objects.equal(getCatalogItemIdSearchPath(), other.getCatalogItemIdSearchPath())) return false; if (!Objects.equal(version, other.version)) return false; if (!Objects.equal(deprecated, other.deprecated)) return false; if (!Objects.equal(description, other.description)) return false; http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/b4e56a59/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/BrooklynMementoPersisterToObjectStore.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/BrooklynMementoPersisterToObjectStore.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/BrooklynMementoPersisterToObjectStore.java index 5aace6d..2e0b8bf 100644 --- a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/BrooklynMementoPersisterToObjectStore.java +++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/BrooklynMementoPersisterToObjectStore.java @@ -350,7 +350,7 @@ public class BrooklynMementoPersisterToObjectStore implements BrooklynMementoPer private List<String> getStringList(String innerPath) { List<String> result = MutableList.of(); final NodeList nodeList = - (NodeList) XmlUtil.xpathHandlingIllegalChars(contents, prefix + innerPath + "/string", XPathConstants.NODESET); + (NodeList) XmlUtil.xpathHandlingIllegalChars(contents, prefix + innerPath + "//string", XPathConstants.NODESET); for(int c = 0 ; c < nodeList.getLength() ; c++) { result.add(nodeList.item(c).getFirstChild().getNodeValue()); }
