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 2021/04/15 10:13:15 UTC

[brooklyn-server] branch master updated (7118a83 -> 09533d8)

This is an automated email from the ASF dual-hosted git repository.

heneveld pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git.


    from 7118a83  Merge pull request #1160 from ahgittin/icons
     new 5d06cf0  test for description containing multi-line
     new 956ad15  add convenience for ResourceUtils using a registered type, and add api, and make sure it's used for api
     new 09533d8  Merge branch 'icons'

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../CatalogYamlEntityOsgiTypeRegistryTest.java     | 27 +++++++++++++++++++++-
 .../mgmt/internal/AbstractManagementContext.java   | 10 +++++---
 .../apache/brooklyn/util/core/ResourceUtils.java   |  6 +++++
 .../brooklyn/rest/resources/TypeResource.java      |  2 +-
 .../rest/resources/BundleAndTypeResourcesTest.java | 10 +++++++-
 5 files changed, 49 insertions(+), 6 deletions(-)

[brooklyn-server] 02/03: add convenience for ResourceUtils using a registered type, and add api, and make sure it's used for api

Posted by he...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

heneveld pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git

commit 956ad1552407295cbf4985327567b844fe4d5fe0
Author: Alex Heneveld <al...@cloudsoftcorp.com>
AuthorDate: Thu Apr 15 11:02:05 2021 +0100

    add convenience for ResourceUtils using a registered type, and add api, and make sure it's used for api
---
 .../brooklyn/core/mgmt/internal/AbstractManagementContext.java | 10 +++++++---
 .../main/java/org/apache/brooklyn/util/core/ResourceUtils.java |  6 ++++++
 .../java/org/apache/brooklyn/rest/resources/TypeResource.java  |  2 +-
 .../brooklyn/rest/resources/BundleAndTypeResourcesTest.java    | 10 +++++++++-
 4 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/AbstractManagementContext.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/AbstractManagementContext.java
index 8de2dce..be1f97c 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/AbstractManagementContext.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/AbstractManagementContext.java
@@ -19,6 +19,7 @@
 package org.apache.brooklyn.core.mgmt.internal;
 
 import static com.google.common.base.Preconditions.checkNotNull;
+import org.apache.brooklyn.api.typereg.OsgiBundleWithUrl;
 import static org.apache.brooklyn.core.catalog.internal.CatalogUtils.newClassLoadingContextForCatalogItems;
 
 import java.lang.reflect.InvocationTargetException;
@@ -126,10 +127,13 @@ public abstract class AbstractManagementContext implements ManagementContextInte
                     return apply(internal.getManagementSupport());
                 }
                 
-                if (input instanceof EntityManagementSupport)
-                    return apply(((EntityManagementSupport)input).getManagementContext());
-                if (input instanceof ManagementContext)
+                if (input instanceof EntityManagementSupport) {
+                    return apply(((EntityManagementSupport) input).getManagementContext());
+                }
+
+                if (input instanceof ManagementContext) {
                     return JavaBrooklynClassLoadingContext.create((ManagementContext) input);
+                }
                 return null;
             }
         });
diff --git a/core/src/main/java/org/apache/brooklyn/util/core/ResourceUtils.java b/core/src/main/java/org/apache/brooklyn/util/core/ResourceUtils.java
index 4d76cc4..cea3ba8 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/ResourceUtils.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/ResourceUtils.java
@@ -38,10 +38,12 @@ import javax.annotation.Nullable;
 
 import org.apache.brooklyn.api.mgmt.ManagementContext;
 import org.apache.brooklyn.api.mgmt.classloading.BrooklynClassLoadingContext;
+import org.apache.brooklyn.api.typereg.RegisteredType;
 import org.apache.brooklyn.core.catalog.internal.BasicBrooklynCatalog.BrooklynLoaderTracker;
 import org.apache.brooklyn.core.catalog.internal.CatalogUtils;
 import org.apache.brooklyn.core.internal.BrooklynInitialization;
 import org.apache.brooklyn.core.mgmt.classloading.JavaBrooklynClassLoadingContext;
+import org.apache.brooklyn.core.mgmt.classloading.OsgiBrooklynClassLoadingContext;
 import org.apache.brooklyn.location.ssh.SshMachineLocation;
 import org.apache.brooklyn.util.collections.MutableMap;
 import org.apache.brooklyn.util.core.text.DataUriSchemeParser;
@@ -135,6 +137,10 @@ public class ResourceUtils {
         return new ResourceUtils(contextObject);
     }
 
+    public static final ResourceUtils create(RegisteredType type, ManagementContext mgmt) {
+        return create(new OsgiBrooklynClassLoadingContext(mgmt, type.getId(), type.getLibraries()));
+    }
+
     /**
      * Creates a {@link ResourceUtils} object with itself as the context.
      *
diff --git a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/TypeResource.java b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/TypeResource.java
index 5a3ce2f..fbd717b 100644
--- a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/TypeResource.java
+++ b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/TypeResource.java
@@ -181,7 +181,7 @@ public class TypeResource extends AbstractBrooklynRestResource implements TypeAp
             
             MediaType mime = WebResourceUtils.getImageMediaTypeFromExtension(Files.getFileExtension(url));
             try {
-                Object content = ResourceUtils.create(CatalogUtils.newClassLoadingContext(mgmt, result)).getResourceFromUrl(url);
+                Object content = ResourceUtils.create(result, mgmt).getResourceFromUrl(url);
                 return Response.ok(content, mime).build();
             } catch (Exception e) {
                 Exceptions.propagateIfFatal(e);
diff --git a/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/BundleAndTypeResourcesTest.java b/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/BundleAndTypeResourcesTest.java
index de93001..c093579 100644
--- a/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/BundleAndTypeResourcesTest.java
+++ b/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/BundleAndTypeResourcesTest.java
@@ -19,6 +19,8 @@
 package org.apache.brooklyn.rest.resources;
 
 import static com.google.common.base.Preconditions.checkNotNull;
+import static groovy.ui.Console.ICON_PATH;
+import static org.apache.brooklyn.util.osgi.OsgiTestResources.BROOKLYN_TEST_OSGI_ENTITIES_COM_EXAMPLE_ICON_PATH;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertTrue;
 
@@ -762,7 +764,7 @@ public class BundleAndTypeResourcesTest extends BrooklynRestResourceTest {
         final String version = OsgiTestResources.BROOKLYN_TEST_OSGI_ENTITIES_COM_EXAMPLE_VERSION;
         final String bundleUrl = OsgiTestResources.BROOKLYN_TEST_OSGI_ENTITIES_COM_EXAMPLE_URL;
         final String entityType = OsgiTestResources.BROOKLYN_TEST_OSGI_ENTITIES_COM_EXAMPLE_ENTITY;
-        final String iconPath = OsgiTestResources.BROOKLYN_TEST_OSGI_ENTITIES_COM_EXAMPLE_ICON_PATH;
+        final String iconPath = BROOKLYN_TEST_OSGI_ENTITIES_COM_EXAMPLE_ICON_PATH;
         BundleMaker bm = new BundleMaker(manager);
         File f = Os.newTempFile("osgi", "jar");
         Files.copyFile(ResourceUtils.create(this).getResourceFromUrl(bundleUrl), f);
@@ -805,6 +807,9 @@ public class BundleAndTypeResourcesTest extends BrooklynRestResourceTest {
         OsgiBundleWithUrl lib = Iterables.getOnlyElement(libs);
         Assert.assertNull(lib.getUrl());
 
+        // check we can find it with ResourceUtils
+        ResourceUtils.create(item, getManagementContext()).checkUrlExists("classpath://"+BROOKLYN_TEST_OSGI_ENTITIES_COM_EXAMPLE_ICON_PATH);
+
         assertEquals(lib.getSymbolicName(), symbolicName);
         assertEquals(lib.getSuppliedVersionString(), version);
 
@@ -826,6 +831,9 @@ public class BundleAndTypeResourcesTest extends BrooklynRestResourceTest {
         byte[] iconData = client().path("/catalog/types/" + symbolicName + "/" + version + "/icon").get(byte[].class);
         assertEquals(iconData.length, 43);
 
+        iconData = client().path("/catalog/bundles/"+symbolicName+"/"+version + "/types/"+symbolicName+"/"+version + "/icon").get(byte[].class);
+        assertEquals(iconData.length, 43);
+
         // Check that the catalog item is useable (i.e. can deploy the entity)
         String appYaml = Joiner.on("\n").join(
                 "services:",

[brooklyn-server] 03/03: Merge branch 'icons'

Posted by he...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

heneveld pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git

commit 09533d81f2346aab864956fce45cd8e0ad2cdff5
Merge: 7118a83 956ad15
Author: Alex Heneveld <al...@cloudsoftcorp.com>
AuthorDate: Thu Apr 15 11:13:07 2021 +0100

    Merge branch 'icons'

 .../CatalogYamlEntityOsgiTypeRegistryTest.java     | 27 +++++++++++++++++++++-
 .../mgmt/internal/AbstractManagementContext.java   | 10 +++++---
 .../apache/brooklyn/util/core/ResourceUtils.java   |  6 +++++
 .../brooklyn/rest/resources/TypeResource.java      |  2 +-
 .../rest/resources/BundleAndTypeResourcesTest.java | 10 +++++++-
 5 files changed, 49 insertions(+), 6 deletions(-)

[brooklyn-server] 01/03: test for description containing multi-line

Posted by he...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

heneveld pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git

commit 5d06cf02235f12d1349551ff2eb5553c39000f94
Author: Alex Heneveld <al...@cloudsoftcorp.com>
AuthorDate: Mon Apr 12 18:58:21 2021 +0100

    test for description containing multi-line
---
 .../CatalogYamlEntityOsgiTypeRegistryTest.java     | 27 +++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityOsgiTypeRegistryTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityOsgiTypeRegistryTest.java
index 679c18a..7aa4a6a 100644
--- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityOsgiTypeRegistryTest.java
+++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityOsgiTypeRegistryTest.java
@@ -27,6 +27,7 @@ import org.apache.brooklyn.entity.stock.BasicEntity;
 import org.apache.brooklyn.test.Asserts;
 import org.apache.brooklyn.util.collections.CollectionFunctionals;
 import org.apache.brooklyn.util.osgi.VersionedName;
+import org.apache.brooklyn.util.text.StringEscapes.JavaStringEscapes;
 import org.apache.brooklyn.util.yaml.Yamls;
 import org.testng.annotations.Test;
 
@@ -185,7 +186,31 @@ public class CatalogYamlEntityOsgiTypeRegistryTest extends CatalogYamlEntityTest
 
         deleteCatalogRegisteredType(symbolicName);
     }
-    
+
+    @Test
+    public void testAddCatalogItemWithNewLinesInTagAndDescription() throws Exception {
+        String symbolicName = "my.catalog.app.id.load";
+        addCatalogItems(
+                "brooklyn.catalog:",
+                "  id: " + symbolicName,
+                "  version: " + TEST_VERSION,
+                "  description: \"new-\\nline\"",
+                "  tags:",
+                "  - description.md: |",
+                "       Line 1",
+                "       Line **2**",
+                "  itemType: entity",
+                "  item: " + BasicEntity.class.getName());
+
+        RegisteredType item = mgmt().getTypeRegistry().get(symbolicName, TEST_VERSION);
+        Asserts.assertEquals(item.getDescription(), "new-\nline");
+        Object docTag = item.getTags().stream().filter(x -> x instanceof Map && ((Map) x).containsKey("description.md")).findFirst().orElse(null);
+        Asserts.assertEquals(((Map) docTag).get("description.md"), "Line 1\nLine **2**\n");
+
+        deleteCatalogRegisteredType(symbolicName);
+    }
+
+
     // also runs many other tests from super, here using the osgi/type-registry appraoch
 
     @Test