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:57 UTC

[15/45] git commit: BROOKLYN-13: adds BrooklynCatalog.addItem(yaml)

BROOKLYN-13: adds BrooklynCatalog.addItem(yaml)

- not yet implemented in BasicBrooklynCatalog, as can’t yet parse yaml


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/19541095
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/19541095
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/19541095

Branch: refs/heads/master
Commit: 195410954dd0ece53bc941c93662591470e13272
Parents: 30093bb
Author: Aled Sage <al...@gmail.com>
Authored: Tue Jul 1 13:59:49 2014 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Tue Jul 1 14:17:19 2014 +0100

----------------------------------------------------------------------
 .../main/java/brooklyn/catalog/BrooklynCatalog.java  |  8 ++++++++
 .../catalog/internal/BasicBrooklynCatalog.java       | 15 +++++++++++++++
 2 files changed, 23 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/19541095/api/src/main/java/brooklyn/catalog/BrooklynCatalog.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/brooklyn/catalog/BrooklynCatalog.java b/api/src/main/java/brooklyn/catalog/BrooklynCatalog.java
index 29fd1c8..0bbd9d3 100644
--- a/api/src/main/java/brooklyn/catalog/BrooklynCatalog.java
+++ b/api/src/main/java/brooklyn/catalog/BrooklynCatalog.java
@@ -26,6 +26,14 @@ public interface BrooklynCatalog {
     <T> Class<? extends T> loadClass(CatalogItem<T> item);
     <T> Class<? extends T> loadClassByType(String typeName, Class<T> typeClass);
 
+    
+    /**
+     * Adds an item (represented in yaml) to the catalog.
+     * 
+     * @throws IllegalArgumentException if the yaml was invalid
+     */
+    CatalogItem<?> addItem(String yaml);
+    
     /**
      * adds an item to the 'manual' catalog;
      * this does not update the classpath or have a record to the java Class

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/19541095/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
index d6b5ff0..f3547dd 100644
--- a/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
+++ b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
@@ -116,6 +116,21 @@ public class BasicBrooklynCatalog implements BrooklynCatalog {
         throw new IllegalStateException("Cannot unwrap catalog item '"+item+"' (type "+item.getClass()+") to restore DTO");
     }
 
+    private <T> CatalogItemDtoAbstract<T> getAbstractCatalogItem(String yaml) {
+        // FIXME Need to parse yaml to extract CatalogItem info
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public CatalogItem<?> addItem(String yaml) {
+        log.debug("Adding manual catalog item to "+mgmt+": "+yaml);
+        Preconditions.checkNotNull(yaml, "yaml");
+        if (manualAdditionsCatalog==null) loadManualAdditionsCatalog();
+        CatalogItemDtoAbstract<Object> itemDto = getAbstractCatalogItem(yaml);
+        manualAdditionsCatalog.addEntry(itemDto);
+        return itemDto;
+    }
+
     @Override
     public void addItem(CatalogItem<?> item) {
         log.debug("Adding manual catalog item to "+mgmt+": "+item);