You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2014/07/04 11:50:52 UTC
[10/45] git commit: Adds version to catalogue items and tests
deserialisation
Adds version to catalogue items and tests deserialisation
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/45e1494f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/45e1494f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/45e1494f
Branch: refs/heads/master
Commit: 45e1494f74ffe1829b0ded954a450846c3cef2a3
Parents: 494291d
Author: Sam Corbett <sa...@cloudsoftcorp.com>
Authored: Mon Jun 30 15:23:35 2014 +0100
Committer: Sam Corbett <sa...@cloudsoftcorp.com>
Committed: Tue Jul 1 13:37:37 2014 +0100
----------------------------------------------------------------------
.../main/java/brooklyn/catalog/CatalogItem.java | 4 ++
.../catalog/internal/CatalogItemDo.java | 8 ++++
.../internal/CatalogItemDtoAbstract.java | 5 +++
.../catalog/internal/CatalogXmlSerializer.java | 1 +
.../catalog/internal/CatalogLoadTest.java | 46 ++++++++++++++++++++
.../brooklyn/catalog/internal/osgi-catalog.xml | 11 +++++
6 files changed, 75 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/45e1494f/api/src/main/java/brooklyn/catalog/CatalogItem.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/catalog/CatalogItem.java b/api/src/main/java/brooklyn/catalog/CatalogItem.java
index ab01496..b9ae3c0 100644
--- a/api/src/main/java/brooklyn/catalog/CatalogItem.java
+++ b/api/src/main/java/brooklyn/catalog/CatalogItem.java
@@ -1,6 +1,7 @@
package brooklyn.catalog;
import java.util.List;
+import javax.annotation.Nonnull;
public interface CatalogItem<T> {
@@ -20,6 +21,9 @@ public interface CatalogItem<T> {
public String getName();
public String getDescription();
public String getIconUrl();
+ public String getVersion();
+
+ @Nonnull
public CatalogItemContext getContext();
public String toXmlString();
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/45e1494f/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
index d576c0a..91ed93a 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDo.java
@@ -1,5 +1,7 @@
package brooklyn.catalog.internal;
+import javax.annotation.Nonnull;
+
import com.google.common.base.Preconditions;
import brooklyn.catalog.CatalogItem;
@@ -57,6 +59,12 @@ public class CatalogItemDo<T> implements CatalogItem<T> {
}
@Override
+ public String getVersion() {
+ return itemDto.getVersion();
+ }
+
+ @Nonnull
+ @Override
public CatalogItemContext getContext() {
return itemDto.getContext();
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/45e1494f/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java
index 043758b..a774930 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogItemDtoAbstract.java
@@ -21,6 +21,7 @@ public abstract class CatalogItemDtoAbstract<T> implements CatalogItem<T> {
String name;
String description;
String iconUrl;
+ String version;
CatalogItemContext context;
public String getId() {
@@ -44,6 +45,10 @@ public abstract class CatalogItemDtoAbstract<T> implements CatalogItem<T> {
return iconUrl;
}
+ public String getVersion() {
+ return version;
+ }
+
@Nonnull
@Override
public CatalogItemContext getContext() {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/45e1494f/core/src/main/java/brooklyn/catalog/internal/CatalogXmlSerializer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogXmlSerializer.java b/core/src/main/java/brooklyn/catalog/internal/CatalogXmlSerializer.java
index 9cdbffe..63c2382 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogXmlSerializer.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogXmlSerializer.java
@@ -28,6 +28,7 @@ public class CatalogXmlSerializer extends XmlSerializer<Object> {
xstream.useAttributeFor(CatalogItemDtoAbstract.class, "type");
xstream.useAttributeFor(CatalogItemDtoAbstract.class, "name");
+ xstream.useAttributeFor(CatalogItemDtoAbstract.class, "version");
xstream.useAttributeFor(CatalogClasspathDto.class, "scan");
xstream.addImplicitCollection(CatalogClasspathDto.class, "entries", "entry", String.class);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/45e1494f/core/src/test/java/brooklyn/catalog/internal/CatalogLoadTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/catalog/internal/CatalogLoadTest.java b/core/src/test/java/brooklyn/catalog/internal/CatalogLoadTest.java
new file mode 100644
index 0000000..46394c7
--- /dev/null
+++ b/core/src/test/java/brooklyn/catalog/internal/CatalogLoadTest.java
@@ -0,0 +1,46 @@
+package brooklyn.catalog.internal;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import com.google.common.base.Joiner;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Sets;
+
+import brooklyn.util.ResourceUtils;
+
+public class CatalogLoadTest {
+
+ CatalogXmlSerializer serializer;
+
+ @BeforeMethod
+ public void setUp() {
+ serializer = new CatalogXmlSerializer();
+ }
+
+ private String loadFile(String file) {
+ return ResourceUtils.create(this).getResourceAsString(file);
+ }
+
+ @Test
+ public void testLoadCatalog() {
+ CatalogDto catalog = (CatalogDto) serializer.fromString(
+ loadFile("classpath://brooklyn/catalog/internal/osgi-catalog.xml"));
+ assertNotNull(catalog);
+ assertEquals(catalog.name, "OSGi catalogue");
+ assertEquals(catalog.entries.size(), 1, "Catalog entries = " + Joiner.on(", ").join(catalog.entries));
+
+ CatalogItemDtoAbstract<?> template = Iterables.getOnlyElement(catalog.entries);
+ assertEquals(template.getName(), "Entity name");
+ assertEquals(template.getVersion(), "9.1.3");
+ assertEquals(template.getJavaType(), "com.example.ExampleApp");
+ assertEquals(template.getContext().getBundles().size(), 2,
+ "Template bundles=" + Joiner.on(", ").join(template.getContext().getBundles()));
+ assertEquals(Sets.newHashSet(template.getContext().getBundles()),
+ Sets.newHashSet("file://path/to/bundle.jar", "http://www.url.com/for/bundle.jar"));
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/45e1494f/core/src/test/resources/brooklyn/catalog/internal/osgi-catalog.xml
----------------------------------------------------------------------
diff --git a/core/src/test/resources/brooklyn/catalog/internal/osgi-catalog.xml b/core/src/test/resources/brooklyn/catalog/internal/osgi-catalog.xml
new file mode 100644
index 0000000..c8ea685
--- /dev/null
+++ b/core/src/test/resources/brooklyn/catalog/internal/osgi-catalog.xml
@@ -0,0 +1,11 @@
+<catalog>
+ <name>OSGi catalogue</name>
+
+ <template name="Entity name" version="9.1.3" type="com.example.ExampleApp">
+ <description>An example application</description>
+ <context class="context">
+ <bundle>file://path/to/bundle.jar</bundle>
+ <bundle>http://www.url.com/for/bundle.jar</bundle>
+ </context>
+ </template>
+</catalog>