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 2016/01/15 23:37:46 UTC
[2/5] incubator-brooklyn git commit: ExternalConfig in catalog:
improve tests
ExternalConfig in catalog: improve tests
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/786db04f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/786db04f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/786db04f
Branch: refs/heads/master
Commit: 786db04fde914a2544ec09e7c6a12af171cfdbff
Parents: 18cce24
Author: Aled Sage <al...@gmail.com>
Authored: Mon Jan 11 13:27:59 2016 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Mon Jan 11 13:27:59 2016 +0000
----------------------------------------------------------------------
.../camp/brooklyn/ExternalConfigYamlTest.java | 100 ++++++++++++++-----
1 file changed, 76 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/786db04f/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ExternalConfigYamlTest.java
----------------------------------------------------------------------
diff --git a/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ExternalConfigYamlTest.java b/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ExternalConfigYamlTest.java
index b5ce9c9..66d3cfe 100644
--- a/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ExternalConfigYamlTest.java
+++ b/brooklyn-server/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/ExternalConfigYamlTest.java
@@ -24,8 +24,9 @@ import static org.testng.Assert.fail;
import java.io.StringReader;
import java.util.Map;
-import com.google.common.collect.Iterables;
import org.apache.brooklyn.api.catalog.CatalogItem;
+import org.apache.brooklyn.api.catalog.CatalogItem.CatalogBundle;
+import org.apache.brooklyn.api.catalog.CatalogItem.CatalogItemType;
import org.apache.brooklyn.api.entity.Entity;
import org.apache.brooklyn.api.mgmt.ExecutionContext;
import org.apache.brooklyn.api.mgmt.ManagementContext;
@@ -48,21 +49,35 @@ import org.slf4j.LoggerFactory;
import org.testng.annotations.Test;
import com.google.common.base.Joiner;
+import com.google.common.collect.Iterables;
@Test
public class ExternalConfigYamlTest extends AbstractYamlTest {
private static final Logger log = LoggerFactory.getLogger(ExternalConfigYamlTest.class);
-
- private static final String OSGI_URL = "https://repository.apache.org/content/groups/snapshots/org/apache/brooklyn/brooklyn-core/0.9.0-SNAPSHOT/brooklyn-core-0.9.0-20160108.142251-126.jar";
+
+ // Choose a small jar; it is downloaded in some tests.
+ // Pick an OSGi bundle that is not part of core brooklyn.
+ private static final String LIBRARY_URL = "https://repository.apache.org/content/groups/public/org/apache/logging/log4j/log4j-api/2.5/log4j-api-2.5.jar";
+ private static final String LIBRARY_SYMBOLIC_NAME = "org.apache.logging.log4j.api";
+ private static final String LIBRARY_VERSION = "2.5.0";
@Override
protected LocalManagementContext newTestManagementContext() {
BrooklynProperties props = BrooklynProperties.Factory.newEmpty();
props.put("brooklyn.external.myprovider", MyExternalConfigSupplier.class.getName());
props.put("brooklyn.external.myprovider.mykey", "myval");
- props.put("brooklyn.external.myprovider.osgikey", OSGI_URL);
props.put("brooklyn.external.myproviderWithoutMapArg", MyExternalConfigSupplierWithoutMapArg.class.getName());
+ props.put("brooklyn.external.myprovider.myCatalogId", "myId");
+ props.put("brooklyn.external.myprovider.myCatalogItemType", "template");
+ props.put("brooklyn.external.myprovider.myCatalogVersion", "1.2");
+ props.put("brooklyn.external.myprovider.myCatalogDescription", "myDescription");
+ props.put("brooklyn.external.myprovider.myCatalogDisplayName", "myDisplayName");
+ props.put("brooklyn.external.myprovider.myCatalogIconUrl", "classpath:///myIconUrl.png");
+ props.put("brooklyn.external.myprovider.myCatalogLibraryUrl", LIBRARY_URL);
+ props.put("brooklyn.external.myprovider.myCatalogLibraryName", LIBRARY_SYMBOLIC_NAME);
+ props.put("brooklyn.external.myprovider.myCatalogLibraryVersion", LIBRARY_VERSION);
+
return LocalManagementContextForTests.builder(true)
.useProperties(props)
.disableOsgi(false)
@@ -112,19 +127,52 @@ public class ExternalConfigYamlTest extends AbstractYamlTest {
assertEquals(Iterables.getOnlyElement( app.getLocations() ).config().get(MY_CONFIG_KEY), "myval");
}
- @Test
+ // Will download the given catalog library jar
+ @Test(groups="Integration")
public void testExternalisedCatalogConfigReferencedFromYaml() throws Exception {
+ String yaml = Joiner.on("\n").join(
+ "brooklyn.catalog:",
+ " id: $brooklyn:external(\"myprovider\", \"myCatalogId\")",
+ " itemType: $brooklyn:external(\"myprovider\", \"myCatalogItemType\")",
+ " version: $brooklyn:external(\"myprovider\", \"myCatalogVersion\")",
+ " description: $brooklyn:external(\"myprovider\", \"myCatalogDescription\")",
+ " displayName: $brooklyn:external(\"myprovider\", \"myCatalogDisplayName\")",
+ " iconUrl: $brooklyn:external(\"myprovider\", \"myCatalogIconUrl\")",
+ " brooklyn.libraries:",
+ " - $brooklyn:external(\"myprovider\", \"myCatalogLibraryUrl\")",
+ "",
+ " item:",
+ " services:",
+ " - type: brooklyn.entity.database.mysql.MySqlNode");
+ catalog.addItems(yaml);
+
+ CatalogItem<Object, Object> item = Iterables.getOnlyElement(catalog.getCatalogItems());
+ CatalogBundle bundle = Iterables.getOnlyElement(item.getLibraries());
+ assertEquals(item.getId(), "myId:1.2");
+ assertEquals(item.getCatalogItemType(), CatalogItemType.TEMPLATE);
+ assertEquals(item.getVersion(), "1.2");
+ assertEquals(item.getDescription(), "myDescription");
+ assertEquals(item.getDisplayName(), "myDisplayName");
+ assertEquals(item.getIconUrl(), "classpath:///myIconUrl.png");
+ assertEquals(bundle.getUrl(), LIBRARY_URL);
+ }
+
+ // Will download the given catalog library jar
+ @Test(groups="Integration")
+ public void testExternalisedCatalogConfigReferencedFromYamlWithLibraryMap() throws Exception {
String yaml = Joiner.on("\n").join(
"brooklyn.catalog:",
- " id: osgi.test",
+ " id: myid",
" itemType: template",
- " version: 1.3",
- " description: CentOS 6.6 With GUI - 1.3",
- " displayName: CentOS 6.6",
- " iconUrl: classpath:///centos.png",
+ " version: 1.2",
+ " description: myDescription",
+ " displayName: myDisplayName",
+ " iconUrl: classpath:///myIconUrl.png",
" brooklyn.libraries:",
- " - $brooklyn:external(\"myprovider\", \"osgikey\")",
+ " - name: $brooklyn:external(\"myprovider\", \"myCatalogLibraryName\")",
+ " version: $brooklyn:external(\"myprovider\", \"myCatalogLibraryVersion\")",
+ " url: $brooklyn:external(\"myprovider\", \"myCatalogLibraryUrl\")",
"",
" item:",
" services:",
@@ -132,16 +180,17 @@ public class ExternalConfigYamlTest extends AbstractYamlTest {
catalog.addItems(yaml);
- for (CatalogItem<Object, Object> item: catalog.getCatalogItems()) {
- for (CatalogItem.CatalogBundle library: item.getLibraries()) {
- assertEquals(library.getUrl(), OSGI_URL);
- }
- }
+ CatalogItem<Object, Object> item = Iterables.getOnlyElement(catalog.getCatalogItems());
+ CatalogBundle bundle = Iterables.getOnlyElement(item.getLibraries());
+ assertEquals(bundle.getUrl(), LIBRARY_URL);
+ assertEquals(bundle.getSymbolicName(), LIBRARY_SYMBOLIC_NAME);
+ assertEquals(bundle.getVersion(), LIBRARY_VERSION);
}
- @Test
+ // Will download the given catalog library jar
+ // Confirms "normal" behaviour, when all values in the catalog are hard-coded rather than using external config.
+ @Test(groups="Integration")
public void testNonExternalisedCatalogConfigReferencedFromYaml() throws Exception {
-
String yaml = Joiner.on("\n").join(
"brooklyn.catalog:",
" id: osgi.test",
@@ -151,7 +200,7 @@ public class ExternalConfigYamlTest extends AbstractYamlTest {
" displayName: CentOS 6.6",
" iconUrl: classpath:///centos.png",
" brooklyn.libraries:",
- " - " + OSGI_URL,
+ " - " + LIBRARY_URL,
"",
" item:",
" services:",
@@ -159,11 +208,14 @@ public class ExternalConfigYamlTest extends AbstractYamlTest {
catalog.addItems(yaml);
- for (CatalogItem<Object, Object> item: catalog.getCatalogItems()) {
- for (CatalogItem.CatalogBundle library: item.getLibraries()) {
- assertEquals(library.getUrl(), OSGI_URL);
- }
- }
+ CatalogItem<Object, Object> item = Iterables.getOnlyElement(catalog.getCatalogItems());
+ assertEquals(item.getId(), "osgi.test:1.3");
+ assertEquals(item.getCatalogItemType(), CatalogItemType.TEMPLATE);
+ assertEquals(item.getVersion(), "1.3");
+ assertEquals(item.getDescription(), "CentOS 6.6 With GUI - 1.3");
+ assertEquals(item.getDisplayName(), "CentOS 6.6");
+ assertEquals(item.getIconUrl(), "classpath:///centos.png");
+ assertEquals(Iterables.getOnlyElement(item.getLibraries()).getUrl(), LIBRARY_URL);
}
@Test(groups="Integration")