You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by dr...@apache.org on 2017/05/03 10:01:12 UTC
[1/5] brooklyn-server git commit: change handling of icon url storage
Repository: brooklyn-server
Updated Branches:
refs/heads/master f07b6f06a -> e247841dd
change handling of icon url storage
previously we'd set iconUrl from a flag in AbstractEntity, but that field was never persisted.
now:
* that field is removed (since it wasn't persisted this shouldn't affect rebind)
* iconUrl is done by looking up the catalog item if nothing special is found on the object (usual path)
* if a special iconUrl is wanted on an instance, it should be set as a tag; this means it's persisted, and it can be done for any brooklyn object
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/40fdfaf2
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/40fdfaf2
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/40fdfaf2
Branch: refs/heads/master
Commit: 40fdfaf200885fcad119dbcca55e9aa27c82a993
Parents: 00d8789
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Fri Apr 28 15:57:45 2017 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Tue May 2 11:43:47 2017 +0100
----------------------------------------------------------------------
.../org/apache/brooklyn/api/entity/Entity.java | 5 ++++
.../internal/AbstractBrooklynObjectSpec.java | 6 ++--
.../BrooklynEntityDecorationResolver.java | 31 ++++++++++----------
.../spi/creation/BrooklynEntityMatcher.java | 4 +++
.../brooklyn/spi/creation/CampResolver.java | 3 --
.../core/catalog/internal/CatalogItemDo.java | 5 ++++
.../brooklyn/core/entity/AbstractEntity.java | 15 ++++------
.../core/entity/BrooklynConfigKeys.java | 2 ++
.../apache/brooklyn/core/mgmt/BrooklynTags.java | 5 ++++
.../core/objs/AbstractBrooklynObject.java | 1 +
.../core/objs/BrooklynObjectInternal.java | 3 ++
.../brooklyn/core/typereg/RegisteredTypes.java | 17 +++++++++++
.../rest/resources/ApplicationResource.java | 2 +-
.../brooklyn/rest/resources/EntityResource.java | 2 +-
.../rest/util/BrooklynRestResourceUtils.java | 4 +--
15 files changed, 71 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/40fdfaf2/api/src/main/java/org/apache/brooklyn/api/entity/Entity.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/brooklyn/api/entity/Entity.java b/api/src/main/java/org/apache/brooklyn/api/entity/Entity.java
index b8e13b7..da9169e 100644
--- a/api/src/main/java/org/apache/brooklyn/api/entity/Entity.java
+++ b/api/src/main/java/org/apache/brooklyn/api/entity/Entity.java
@@ -38,6 +38,7 @@ import org.apache.brooklyn.api.sensor.EnricherSpec;
import org.apache.brooklyn.api.sensor.Feed;
import org.apache.brooklyn.api.sensor.Sensor;
import org.apache.brooklyn.api.sensor.SensorEvent;
+import org.apache.brooklyn.api.typereg.RegisteredType;
import org.apache.brooklyn.config.ConfigKey;
import org.apache.brooklyn.config.ConfigKey.HasConfigKey;
import org.apache.brooklyn.util.guava.Maybe;
@@ -78,7 +79,11 @@ public interface Entity extends BrooklynObject {
/**
* A URL pointing to an image which can be used to represent this entity.
+ * @deprecated since 0.12.0 look up the {@link RegisteredType} and use its
+ * {@link RegisteredType#getIconUrl()} or use conveniences such as
+ * <code>RegisteredTypes.getIconUrl()</code>.
*/
+ @Deprecated
@Nullable String getIconUrl();
/**
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/40fdfaf2/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 adbb48b..b53722d 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
@@ -195,14 +195,14 @@ public abstract class AbstractBrooklynObjectSpec<T, SpecT extends AbstractBrookl
/**
* adds the given tags
*/
- public SpecT tags(Iterable<Object> tagsToAdd) {
+ public SpecT tags(Iterable<? extends Object> tagsToAdd) {
return tagsAdd(tagsToAdd);
}
/**
* adds the given tags
*/
- public SpecT tagsAdd(Iterable<Object> tagsToAdd) {
+ public SpecT tagsAdd(Iterable<? extends Object> tagsToAdd) {
Iterables.addAll(this.tags, tagsToAdd);
return self();
}
@@ -210,7 +210,7 @@ public abstract class AbstractBrooklynObjectSpec<T, SpecT extends AbstractBrookl
/**
* replaces tags with the given
*/
- public SpecT tagsReplace(Iterable<Object> tagsToReplace) {
+ public SpecT tagsReplace(Iterable<? extends Object> tagsToReplace) {
this.tags.clear();
Iterables.addAll(this.tags, tagsToReplace);
return self();
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/40fdfaf2/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynEntityDecorationResolver.java
----------------------------------------------------------------------
diff --git a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynEntityDecorationResolver.java b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynEntityDecorationResolver.java
index ca47f7e..181fa67 100644
--- a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynEntityDecorationResolver.java
+++ b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynEntityDecorationResolver.java
@@ -18,18 +18,12 @@
*/
package org.apache.brooklyn.camp.brooklyn.spi.creation;
-import java.io.Serializable;
+import static com.google.common.base.Preconditions.checkArgument;
+
import java.util.List;
import java.util.Map;
import java.util.Set;
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-
-import com.google.common.collect.Iterables;
-import com.sun.org.apache.xpath.internal.operations.Bool;
import org.apache.brooklyn.api.entity.EntityInitializer;
import org.apache.brooklyn.api.entity.EntitySpec;
import org.apache.brooklyn.api.mgmt.ManagementContext;
@@ -41,8 +35,7 @@ import org.apache.brooklyn.api.sensor.EnricherSpec;
import org.apache.brooklyn.api.typereg.RegisteredType;
import org.apache.brooklyn.camp.brooklyn.BrooklynCampReservedKeys;
import org.apache.brooklyn.camp.brooklyn.spi.creation.BrooklynYamlTypeInstantiator.InstantiatorFromKey;
-import org.apache.brooklyn.camp.brooklyn.spi.dsl.DslAccessible;
-import org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.BrooklynDslCommon;
+import org.apache.brooklyn.core.entity.BrooklynConfigKeys;
import org.apache.brooklyn.core.mgmt.BrooklynTags;
import org.apache.brooklyn.core.objs.BasicSpecParameter;
import org.apache.brooklyn.core.typereg.RegisteredTypeLoadingContexts;
@@ -52,9 +45,11 @@ import org.apache.brooklyn.util.core.config.ConfigBag;
import org.apache.brooklyn.util.core.task.DeferredSupplier;
import org.apache.brooklyn.util.guava.Maybe;
-import javax.annotation.Nullable;
-
-import static com.google.common.base.Preconditions.checkArgument;
+import com.google.common.base.Function;
+import com.google.common.base.Predicate;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
/**
* Pattern for resolving "decorations" on service specs / entity specs, such as policies, enrichers, etc.
@@ -254,6 +249,10 @@ public abstract class BrooklynEntityDecorationResolver<DT> {
if (decorationAttributeJsonValue != null) {
entitySpec.tagsAdd(decorationAttributeJsonValue);
}
+ String iconUrl = attrs.get(BrooklynConfigKeys.ICON_URL);
+ if (iconUrl!=null) {
+ entitySpec.tagsAdd(MutableList.of(BrooklynTags.newIconUrlTag(iconUrl)));
+ }
}
@Override
@@ -269,13 +268,15 @@ public abstract class BrooklynEntityDecorationResolver<DT> {
} else if (!(brooklynTags instanceof List)) {
throw new IllegalArgumentException(BrooklynCampReservedKeys.BROOKLYN_TAGS + " should be a List of String elements. You supplied " + brooklynTags);
} else {
- checkArgument(Iterables.all((List) brooklynTags, new Predicate() {
+ checkArgument(Iterables.all((List<?>) brooklynTags, new Predicate<Object>() {
@Override
public boolean apply(Object input) {
return !(input instanceof DeferredSupplier);
}
}), BrooklynCampReservedKeys.BROOKLYN_TAGS + " should not contain DeferredSupplier. A DeferredSupplier is made when using $brooklyn:attributeWhenReady. You supplied " + brooklynTags);
- return (List)brooklynTags;
+ @SuppressWarnings("unchecked")
+ List<Object> result = (List<Object>)brooklynTags;
+ return result;
}
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/40fdfaf2/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynEntityMatcher.java
----------------------------------------------------------------------
diff --git a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynEntityMatcher.java b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynEntityMatcher.java
index 091e760..3b6e04b 100644
--- a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynEntityMatcher.java
+++ b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynEntityMatcher.java
@@ -30,6 +30,7 @@ import org.apache.brooklyn.camp.spi.pdp.AssemblyTemplateConstructor;
import org.apache.brooklyn.camp.spi.pdp.Service;
import org.apache.brooklyn.camp.spi.resolve.PdpMatcher;
import org.apache.brooklyn.core.catalog.internal.BasicBrooklynCatalog;
+import org.apache.brooklyn.core.entity.BrooklynConfigKeys;
import org.apache.brooklyn.core.mgmt.classloading.JavaBrooklynClassLoadingContext;
import org.apache.brooklyn.util.collections.MutableMap;
import org.apache.brooklyn.util.exceptions.UserFacingException;
@@ -113,6 +114,9 @@ public class BrooklynEntityMatcher implements PdpMatcher {
Object locations = attrs.remove("locations");
if (locations!=null)
builder.customAttribute("locations", locations);
+ Object iconUrl = attrs.remove(BrooklynConfigKeys.ICON_URL.getName());
+ if (iconUrl!=null)
+ builder.customAttribute(BrooklynConfigKeys.ICON_URL.getName(), iconUrl);
MutableMap<Object, Object> brooklynFlags = MutableMap.of();
Object origBrooklynFlags = attrs.remove(BrooklynCampReservedKeys.BROOKLYN_FLAGS);
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/40fdfaf2/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/CampResolver.java
----------------------------------------------------------------------
diff --git a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/CampResolver.java b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/CampResolver.java
index 9ec8fd8..f68ffad 100644
--- a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/CampResolver.java
+++ b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/CampResolver.java
@@ -116,9 +116,6 @@ class CampResolver {
}
spec.stackCatalogItemId(item.getId());
- if (!spec.getFlags().containsKey("iconUrl") && item.getIconUrl()!=null) {
- spec.configure("iconUrl", item.getIconUrl());
- }
if (spec instanceof EntitySpec) {
String name = spec.getDisplayName();
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/40fdfaf2/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemDo.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemDo.java b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemDo.java
index c263e59..90697fe 100644
--- a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemDo.java
+++ b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/CatalogItemDo.java
@@ -50,6 +50,11 @@ public class CatalogItemDo<T,SpecT> implements CatalogItem<T,SpecT>, BrooklynObj
return itemDto;
}
+ @Override
+ public ManagementContext getManagementContext() {
+ return catalog==null ? null : catalog.mgmt;
+ }
+
/**
* @throws UnsupportedOperationException; Config not supported for catalog item. See {@link #getPlanYaml()}.
*/
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/40fdfaf2/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java b/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java
index bbc57ec..6c15afc 100644
--- a/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java
+++ b/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java
@@ -30,7 +30,6 @@ import java.util.Set;
import org.apache.brooklyn.api.effector.Effector;
import org.apache.brooklyn.api.entity.Application;
import org.apache.brooklyn.api.entity.Entity;
-import org.apache.brooklyn.api.entity.EntityLocal;
import org.apache.brooklyn.api.entity.EntitySpec;
import org.apache.brooklyn.api.entity.EntityType;
import org.apache.brooklyn.api.entity.Group;
@@ -92,6 +91,7 @@ import org.apache.brooklyn.core.sensor.AttributeMap;
import org.apache.brooklyn.core.sensor.AttributeSensorAndConfigKey;
import org.apache.brooklyn.core.sensor.BasicNotificationSensor;
import org.apache.brooklyn.core.sensor.Sensors;
+import org.apache.brooklyn.core.typereg.RegisteredTypes;
import org.apache.brooklyn.util.collections.MutableList;
import org.apache.brooklyn.util.collections.MutableMap;
import org.apache.brooklyn.util.collections.MutableSet;
@@ -222,7 +222,6 @@ public abstract class AbstractEntity extends AbstractBrooklynObject implements E
private Reference<List<Location>> locations = new BasicReference<List<Location>>(ImmutableList.<Location>of()); // dups removed in addLocations
private Reference<Long> creationTimeUtc = new BasicReference<Long>(System.currentTimeMillis());
private Reference<String> displayName = new BasicReference<String>();
- private Reference<String> iconUrl = new BasicReference<String>();
private Collection<AbstractPolicy> policiesInternal = Lists.newCopyOnWriteArrayList();
private Collection<AbstractEnricher> enrichersInternal = Lists.newCopyOnWriteArrayList();
@@ -384,8 +383,9 @@ public abstract class AbstractEntity extends AbstractBrooklynObject implements E
displayNameAutoGenerated = true;
}
- if (flags.get("iconUrl") != null) {
- iconUrl.set((String) flags.remove("iconUrl"));
+ if (flags.get(BrooklynConfigKeys.ICON_URL.getName()) != null) {
+ // shouldn't be used; CAMP parser leaves it as a top-level attribute which is converted to a tag
+ tags().addTag(BrooklynTags.newIconUrlTag((String) flags.remove(BrooklynConfigKeys.ICON_URL.getName())));
}
// allow config keys, and fields, to be set from these flags if they have a SetFromFlag annotation
@@ -514,7 +514,6 @@ public abstract class AbstractEntity extends AbstractBrooklynObject implements E
AttributeMap oldAttribs = attributesInternal;
long oldCreationTimeUtc = creationTimeUtc.get();
String oldDisplayName = displayName.get();
- String oldIconUrl = iconUrl.get();
parent = managementContext.getStorage().getReference(getId()+"-parent");
groupsInternal = SetFromLiveMap.create(managementContext.getStorage().<Group,Boolean>getMap(getId()+"-groups"));
@@ -522,7 +521,6 @@ public abstract class AbstractEntity extends AbstractBrooklynObject implements E
locations = managementContext.getStorage().getNonConcurrentList(getId()+"-locations");
creationTimeUtc = managementContext.getStorage().getReference(getId()+"-creationTime");
displayName = managementContext.getStorage().getReference(getId()+"-displayName");
- iconUrl = managementContext.getStorage().getReference(getId()+"-iconUrl");
// Only override stored defaults if we have actual values. We might be in setManagementContext
// because we are reconstituting an existing entity in a new brooklyn management-node (in which
@@ -540,7 +538,6 @@ public abstract class AbstractEntity extends AbstractBrooklynObject implements E
} else {
displayNameAutoGenerated = false;
}
- if (iconUrl.isNull()) iconUrl.set(oldIconUrl);
configsInternal = new EntityConfigMap(this, managementContext.getStorage().<ConfigKey<?>, Object>getMap(getId()+"-config"));
if (!oldConfig.isEmpty()) {
@@ -572,9 +569,9 @@ public abstract class AbstractEntity extends AbstractBrooklynObject implements E
return displayName.get();
}
- @Override
+ @Override @Deprecated
public String getIconUrl() {
- return iconUrl.get();
+ return RegisteredTypes.getIconUrl(this);
}
@Override
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/40fdfaf2/core/src/main/java/org/apache/brooklyn/core/entity/BrooklynConfigKeys.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/entity/BrooklynConfigKeys.java b/core/src/main/java/org/apache/brooklyn/core/entity/BrooklynConfigKeys.java
index 40baf65..0ae50d2 100644
--- a/core/src/main/java/org/apache/brooklyn/core/entity/BrooklynConfigKeys.java
+++ b/core/src/main/java/org/apache/brooklyn/core/entity/BrooklynConfigKeys.java
@@ -246,6 +246,8 @@ public class BrooklynConfigKeys {
.runtimeInheritance(BasicConfigInheritance.NOT_REINHERITED_ELSE_DEEP_MERGE)
.build();
+ public static final ConfigKey<String> ICON_URL = newStringConfigKey("iconUrl");
+
private BrooklynConfigKeys() {}
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/40fdfaf2/core/src/main/java/org/apache/brooklyn/core/mgmt/BrooklynTags.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/BrooklynTags.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/BrooklynTags.java
index 7f8b0c8..c8248f1 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/BrooklynTags.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/BrooklynTags.java
@@ -38,6 +38,7 @@ public class BrooklynTags {
public static final String YAML_SPEC_KIND = "yaml_spec";
public static final String NOTES_KIND = "notes";
public static final String OWNER_ENTITY_ID = "owner_entity_id";
+ public static final String ICON_URL = "icon_url";
public static class NamedStringTag implements Serializable {
private static final long serialVersionUID = 7932098757009051348L;
@@ -134,6 +135,10 @@ public class BrooklynTags {
return new NamedStringTag(OWNER_ENTITY_ID, ownerId);
}
+ public static NamedStringTag newIconUrlTag(String iconUrl) {
+ return new NamedStringTag(ICON_URL, iconUrl);
+ }
+
public static TraitsTag newTraitsTag(List<Class<?>> interfaces) {
return new TraitsTag(interfaces);
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/40fdfaf2/core/src/main/java/org/apache/brooklyn/core/objs/AbstractBrooklynObject.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/objs/AbstractBrooklynObject.java b/core/src/main/java/org/apache/brooklyn/core/objs/AbstractBrooklynObject.java
index 9ba5a61..3d7b552 100644
--- a/core/src/main/java/org/apache/brooklyn/core/objs/AbstractBrooklynObject.java
+++ b/core/src/main/java/org/apache/brooklyn/core/objs/AbstractBrooklynObject.java
@@ -170,6 +170,7 @@ public abstract class AbstractBrooklynObject implements BrooklynObjectInternal {
this.managementContext = managementContext;
}
+ @Override
public ManagementContext getManagementContext() {
return managementContext;
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/40fdfaf2/core/src/main/java/org/apache/brooklyn/core/objs/BrooklynObjectInternal.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/objs/BrooklynObjectInternal.java b/core/src/main/java/org/apache/brooklyn/core/objs/BrooklynObjectInternal.java
index 44ed3b8..6ad42f4 100644
--- a/core/src/main/java/org/apache/brooklyn/core/objs/BrooklynObjectInternal.java
+++ b/core/src/main/java/org/apache/brooklyn/core/objs/BrooklynObjectInternal.java
@@ -21,6 +21,7 @@ package org.apache.brooklyn.core.objs;
import java.util.List;
import java.util.Map;
+import org.apache.brooklyn.api.mgmt.ManagementContext;
import org.apache.brooklyn.api.mgmt.rebind.RebindSupport;
import org.apache.brooklyn.api.mgmt.rebind.Rebindable;
import org.apache.brooklyn.api.objs.BrooklynObject;
@@ -51,6 +52,8 @@ public interface BrooklynObjectInternal extends BrooklynObject, Rebindable {
@Override
RebindSupport<?> getRebindSupport();
+ ManagementContext getManagementContext();
+
@Override
ConfigurationSupportInternal config();
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/40fdfaf2/core/src/main/java/org/apache/brooklyn/core/typereg/RegisteredTypes.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/typereg/RegisteredTypes.java b/core/src/main/java/org/apache/brooklyn/core/typereg/RegisteredTypes.java
index cfc7ec4..b3886bd 100644
--- a/core/src/main/java/org/apache/brooklyn/core/typereg/RegisteredTypes.java
+++ b/core/src/main/java/org/apache/brooklyn/core/typereg/RegisteredTypes.java
@@ -31,6 +31,7 @@ import org.apache.brooklyn.api.catalog.CatalogItem;
import org.apache.brooklyn.api.internal.AbstractBrooklynObjectSpec;
import org.apache.brooklyn.api.mgmt.ManagementContext;
import org.apache.brooklyn.api.objs.BrooklynObject;
+import org.apache.brooklyn.api.typereg.BrooklynTypeRegistry;
import org.apache.brooklyn.api.typereg.BrooklynTypeRegistry.RegisteredTypeKind;
import org.apache.brooklyn.api.typereg.RegisteredType;
import org.apache.brooklyn.api.typereg.RegisteredType.TypeImplementationPlan;
@@ -38,6 +39,8 @@ import org.apache.brooklyn.api.typereg.RegisteredTypeLoadingContext;
import org.apache.brooklyn.config.ConfigKey;
import org.apache.brooklyn.core.catalog.internal.CatalogUtils;
import org.apache.brooklyn.core.config.ConfigKeys;
+import org.apache.brooklyn.core.mgmt.BrooklynTags;
+import org.apache.brooklyn.core.mgmt.BrooklynTags.NamedStringTag;
import org.apache.brooklyn.core.objs.BrooklynObjectInternal;
import org.apache.brooklyn.core.typereg.JavaClassNameTypePlanTransformer.JavaClassNameTypeImplementationPlan;
import org.apache.brooklyn.util.exceptions.Exceptions;
@@ -453,4 +456,18 @@ public class RegisteredTypes {
return Maybe.of(object);
}
+ public static String getIconUrl(BrooklynObject object) {
+ if (object==null) return null;
+
+ NamedStringTag fromTag = BrooklynTags.findFirst(BrooklynTags.ICON_URL, object.tags().getTags());
+ if (fromTag!=null) return fromTag.getContents();
+
+ ManagementContext mgmt = ((BrooklynObjectInternal)object).getManagementContext();
+ if (mgmt==null) return null;
+ BrooklynTypeRegistry registry = mgmt.getTypeRegistry();
+ if (registry==null) return null;
+ RegisteredType item = registry.get( object.getCatalogItemId() );
+ if (item==null) return null;
+ return item.getIconUrl();
+ }
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/40fdfaf2/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/ApplicationResource.java
----------------------------------------------------------------------
diff --git a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/ApplicationResource.java b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/ApplicationResource.java
index 4aec34b..5d8dfb6 100644
--- a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/ApplicationResource.java
+++ b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/ApplicationResource.java
@@ -107,7 +107,7 @@ public class ApplicationResource extends AbstractBrooklynRestResource implements
Lifecycle serviceState = entity.getAttribute(Attributes.SERVICE_STATE_ACTUAL);
- String iconUrl = entity.getIconUrl();
+ String iconUrl = RegisteredTypes.getIconUrl(entity);
if (iconUrl!=null) {
if (brooklyn().isUrlServerSideAndSafe(iconUrl))
// route to server if it is a server-side url
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/40fdfaf2/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/EntityResource.java
----------------------------------------------------------------------
diff --git a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/EntityResource.java b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/EntityResource.java
index efc8838..e914d1e 100644
--- a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/EntityResource.java
+++ b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/EntityResource.java
@@ -155,7 +155,7 @@ public class EntityResource extends AbstractBrooklynRestResource implements Enti
@Override
public Response getIcon(String applicationId, String entityId) {
Entity entity = brooklyn().getEntity(applicationId, entityId);
- String url = entity.getIconUrl();
+ String url = RegisteredTypes.getIconUrl(entity);
if (url == null)
return Response.status(Status.NO_CONTENT).build();
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/40fdfaf2/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtils.java
----------------------------------------------------------------------
diff --git a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtils.java b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtils.java
index 6645c5c..d9eb7ee 100644
--- a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtils.java
+++ b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtils.java
@@ -65,9 +65,9 @@ import org.apache.brooklyn.rest.domain.ApplicationSpec;
import org.apache.brooklyn.rest.domain.EntitySpec;
import org.apache.brooklyn.util.collections.MutableMap;
import org.apache.brooklyn.util.collections.MutableSet;
-import org.apache.brooklyn.util.core.flags.TypeCoercions;
import org.apache.brooklyn.util.exceptions.Exceptions;
import org.apache.brooklyn.util.javalang.Reflections;
+import org.apache.brooklyn.util.javalang.coerce.PrimitiveStringTypeCoercions;
import org.apache.brooklyn.util.net.Urls;
import org.apache.brooklyn.util.text.Strings;
import org.slf4j.Logger;
@@ -552,7 +552,7 @@ public class BrooklynRestResourceUtils {
}
}
- if (TypeCoercions.isPrimitiveOrBoxer(value.getClass())) return value;
+ if (PrimitiveStringTypeCoercions.isPrimitiveOrBoxer(value.getClass())) return value;
return value.toString();
}
[4/5] brooklyn-server git commit: fix getResources() so it dedupes
URLs, fixing test
Posted by dr...@apache.org.
fix getResources() so it dedupes URLs, fixing test
(exposed now that we load better things through osgi)
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/8a6fc6e2
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/8a6fc6e2
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/8a6fc6e2
Branch: refs/heads/master
Commit: 8a6fc6e21ff35331b10af7c626b7ce58b298f588
Parents: 400a32d
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Fri Apr 28 17:20:04 2017 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Tue May 2 11:43:47 2017 +0100
----------------------------------------------------------------------
.../BrooklynClassLoadingContextSequential.java | 8 ++---
.../util/core/ClassLoaderUtilsTest.java | 35 ++++++++++++++++----
2 files changed, 32 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/8a6fc6e2/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/BrooklynClassLoadingContextSequential.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/BrooklynClassLoadingContextSequential.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/BrooklynClassLoadingContextSequential.java
index ee55ae9..50a0509 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/BrooklynClassLoadingContextSequential.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/BrooklynClassLoadingContextSequential.java
@@ -104,14 +104,14 @@ public final class BrooklynClassLoadingContextSequential extends AbstractBrookly
@Override
public Iterable<URL> getResources(String name) {
- List<Iterable<URL>> resources = Lists.newArrayList();
+ MutableSet<URL> result = MutableSet.<URL>of();
for (BrooklynClassLoadingContext target : primaries) {
- resources.add(target.getResources(name));
+ result.addAll(target.getResources(name));
}
for (BrooklynClassLoadingContext target : secondaries) {
- resources.add(target.getResources(name));
+ result.addAll(target.getResources(name));
}
- return Iterables.concat(resources);
+ return result;
}
@Override
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/8a6fc6e2/core/src/test/java/org/apache/brooklyn/util/core/ClassLoaderUtilsTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/util/core/ClassLoaderUtilsTest.java b/core/src/test/java/org/apache/brooklyn/util/core/ClassLoaderUtilsTest.java
index dfe942b..a9ea938 100644
--- a/core/src/test/java/org/apache/brooklyn/util/core/ClassLoaderUtilsTest.java
+++ b/core/src/test/java/org/apache/brooklyn/util/core/ClassLoaderUtilsTest.java
@@ -26,8 +26,6 @@ import static org.testng.Assert.assertNull;
import static org.testng.Assert.assertTrue;
import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileOutputStream;
import java.net.URL;
import java.util.jar.Attributes;
import java.util.jar.JarOutputStream;
@@ -127,9 +125,32 @@ public class ClassLoaderUtilsTest {
assertLoadSucceeds(bundle.getSymbolicName() + ":" + bundle.getVersion()+":" + classname, clazz, cluMgmt, cluClass, cluEntity);
}
+ @Test
+ public void testLoadJustOneClassInOsgiWhiteList() throws Exception {
+ String bundlePath = OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH;
+ String bundleUrl = OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL;
+ String classname = OsgiTestResources.BROOKLYN_TEST_OSGI_ENTITIES_SIMPLE_ENTITY;
+
+ TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), bundlePath);
+
+ mgmt = LocalManagementContextForTests.builder(true).enableOsgiReusable().build();
+ Bundle bundle = installBundle(mgmt, bundleUrl);
+ Class<?> clazz = bundle.loadClass(classname);
+ Entity entity = createSimpleEntity(bundleUrl, clazz);
+
+ String whiteList = bundle.getSymbolicName()+":"+bundle.getVersion();
+ System.setProperty(ClassLoaderUtils.WHITE_LIST_KEY, whiteList);
+
+ ClassLoaderUtils cluEntity = new ClassLoaderUtils(getClass(), entity);
+
+ BundledName resource = new BundledName(classname).toResource();
+ BundledName bn = new BundledName(resource.bundle, resource.version, "/" + resource.name);
+ Asserts.assertSize(cluEntity.getResources(bn.toString()), 1);
+ }
+
@Test
- public void testLoadClassInOsgiWhiteList() throws Exception {
+ public void testVariousLoadersLoadClassInOsgiWhiteList() throws Exception {
String bundlePath = OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_PATH;
String bundleUrl = OsgiStandaloneTest.BROOKLYN_TEST_OSGI_ENTITIES_URL;
String classname = OsgiTestResources.BROOKLYN_TEST_OSGI_ENTITIES_SIMPLE_ENTITY;
@@ -141,8 +162,8 @@ public class ClassLoaderUtilsTest {
Class<?> clazz = bundle.loadClass(classname);
Entity entity = createSimpleEntity(bundleUrl, clazz);
- String whileList = bundle.getSymbolicName()+":"+bundle.getVersion();
- System.setProperty(ClassLoaderUtils.WHITE_LIST_KEY, whileList);
+ String whiteList = bundle.getSymbolicName()+":"+bundle.getVersion();
+ System.setProperty(ClassLoaderUtils.WHITE_LIST_KEY, whiteList);
ClassLoaderUtils cluMgmt = new ClassLoaderUtils(getClass(), mgmt);
ClassLoaderUtils cluClass = new ClassLoaderUtils(clazz);
@@ -160,7 +181,7 @@ public class ClassLoaderUtilsTest {
TestResourceUnavailableException.throwIfResourceUnavailable(getClass(), bundlePath);
- mgmt = LocalManagementContextForTests.builder(true).disableOsgi(false).build();
+ mgmt = LocalManagementContextForTests.builder(true).enableOsgiReusable().build();
Bundle bundle = installBundle(mgmt, bundleUrl);
Manifest manifest = new Manifest();
@@ -328,7 +349,7 @@ public class ClassLoaderUtilsTest {
String bundledResource = resource.toString();
URL resourceUrl = cl.getResource(resource.name);
assertEquals(clu.getResource(bundledResource), resourceUrl);
- assertEquals(clu.getResources(bundledResource), ImmutableList.of(resourceUrl));
+ assertEquals(clu.getResources(bundledResource), ImmutableList.of(resourceUrl), "Loading with "+clu);
BundledName rootResource = new BundledName(resource.bundle, resource.version, "/" + resource.name);
String rootBundledResource = rootResource.toString();
[3/5] brooklyn-server git commit: fix but where osgi classpaths
didn't load when using embedded framework
Posted by dr...@apache.org.
fix but where osgi classpaths didn't load when using embedded framework
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/400a32d9
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/400a32d9
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/400a32d9
Branch: refs/heads/master
Commit: 400a32d9886a0f19ece36d742a2d8d7cf044e790
Parents: 140631b
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Fri Apr 28 15:50:11 2017 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Tue May 2 11:43:47 2017 +0100
----------------------------------------------------------------------
.../mgmt/classloading/JavaBrooklynClassLoadingContext.java | 4 ++--
.../apache/brooklyn/core/mgmt/persist/OsgiClassPrefixer.java | 3 ---
.../brooklyn/core/mgmt/persist/XmlMementoSerializer.java | 6 +-----
.../java/org/apache/brooklyn/util/core/ClassLoaderUtils.java | 4 ++--
4 files changed, 5 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/400a32d9/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/JavaBrooklynClassLoadingContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/JavaBrooklynClassLoadingContext.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/JavaBrooklynClassLoadingContext.java
index bd7c7da..e4cb55a 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/JavaBrooklynClassLoadingContext.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/classloading/JavaBrooklynClassLoadingContext.java
@@ -130,11 +130,11 @@ public class JavaBrooklynClassLoadingContext extends AbstractBrooklynClassLoadin
@Override
public URL getResource(String name) {
- return new ClassLoaderUtils(loader).getResource(name);
+ return new ClassLoaderUtils(loader, mgmt).getResource(name);
}
@Override
public Iterable<URL> getResources(String name) {
- return new ClassLoaderUtils(loader).getResources(name);
+ return new ClassLoaderUtils(loader, mgmt).getResources(name);
}
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/400a32d9/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/OsgiClassPrefixer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/OsgiClassPrefixer.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/OsgiClassPrefixer.java
index 90b7ee6..ac1b63f 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/OsgiClassPrefixer.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/OsgiClassPrefixer.java
@@ -21,7 +21,6 @@ package org.apache.brooklyn.core.mgmt.persist;
import javax.annotation.Nullable;
import org.apache.brooklyn.core.mgmt.rebind.dto.MementosGenerators;
-import org.apache.brooklyn.util.core.ClassLoaderUtils;
import org.apache.brooklyn.util.core.osgi.Osgis;
import org.osgi.framework.Bundle;
@@ -43,7 +42,6 @@ public class OsgiClassPrefixer {
public static final String DELIMITER = ":";
- private final ClassLoaderUtils whiteListRetriever;
private final Function<Class<?>, Optional<Bundle>> bundleRetriever;
public OsgiClassPrefixer() {
@@ -52,7 +50,6 @@ public class OsgiClassPrefixer {
@VisibleForTesting
protected OsgiClassPrefixer(@Nullable Function<Class<?>, Optional<Bundle>> bundleRetriever) {
- this.whiteListRetriever = new ClassLoaderUtils(getClass());
this.bundleRetriever = bundleRetriever;
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/400a32d9/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializer.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializer.java
index 1bded8b..7f38611 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializer.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializer.java
@@ -584,11 +584,7 @@ public class XmlMementoSerializer<T> extends XmlSerializer<T> implements Memento
private void setCurrentClassLoader(ClassLoader classLoader) {
currentClassLoader = checkNotNull(classLoader);
- if (mgmt != null) {
- currentLoader.set(new ClassLoaderUtils(currentClassLoader, mgmt));
- } else {
- currentLoader.set(new ClassLoaderUtils(currentClassLoader));
- }
+ currentLoader.set(new ClassLoaderUtils(currentClassLoader, mgmt));
}
protected void acquireXstreamLock() {
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/400a32d9/core/src/main/java/org/apache/brooklyn/util/core/ClassLoaderUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/util/core/ClassLoaderUtils.java b/core/src/main/java/org/apache/brooklyn/util/core/ClassLoaderUtils.java
index e402e72..f607939 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/ClassLoaderUtils.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/ClassLoaderUtils.java
@@ -96,7 +96,7 @@ public class ClassLoaderUtils {
public ClassLoaderUtils(@Nullable ClassLoader cl, @Nullable ManagementContext mgmt) {
this.classLoader = getValidClassLoader(cl);
this.entity = null;
- this.mgmt = checkNotNull(mgmt, "mgmt");
+ this.mgmt = mgmt;
}
public ClassLoaderUtils(Class<?> callingClass, Entity entity) {
@@ -303,7 +303,7 @@ public class ClassLoaderUtils {
}
return dispatcher.tryLoadFrom(bundle.get(), name);
} else {
- log.warn("Request for bundle '"+symbolicName+"' "+(Strings.isNonBlank(version) ? "("+version+") " : "")+"will be ignored, loading '"+name+"' as no framework available");
+ log.warn("Request for bundle '"+symbolicName+"' "+(Strings.isNonBlank(version) ? "("+version+") " : "")+"will be ignored as no framework available; will look for '"+name+"' in plain old classpath");
return dispatcher.tryLoadFrom(classLoader, name);
}
}
[2/5] brooklyn-server git commit: fix bug where entity's search path
isn't used when retrieving icon url's
Posted by dr...@apache.org.
fix bug where entity's search path isn't used when retrieving icon url's
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/00d87890
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/00d87890
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/00d87890
Branch: refs/heads/master
Commit: 00d8789040bc4d67b2e787de81b3b8209e888c3a
Parents: 8a6fc6e
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Fri Apr 28 15:55:42 2017 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Tue May 2 11:43:47 2017 +0100
----------------------------------------------------------------------
.../org/apache/brooklyn/rest/resources/EntityResource.java | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/00d87890/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/EntityResource.java
----------------------------------------------------------------------
diff --git a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/EntityResource.java b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/EntityResource.java
index 1ebaad7..efc8838 100644
--- a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/EntityResource.java
+++ b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/resources/EntityResource.java
@@ -21,6 +21,7 @@ package org.apache.brooklyn.rest.resources;
import static javax.ws.rs.core.Response.created;
import static javax.ws.rs.core.Response.status;
import static javax.ws.rs.core.Response.Status.ACCEPTED;
+import static org.apache.brooklyn.rest.util.WebResourceUtils.serviceAbsoluteUriBuilder;
import java.net.URI;
import java.util.LinkedList;
@@ -45,6 +46,7 @@ import org.apache.brooklyn.core.mgmt.EntityManagementUtils;
import org.apache.brooklyn.core.mgmt.EntityManagementUtils.CreationResult;
import org.apache.brooklyn.core.mgmt.entitlement.EntitlementPredicates;
import org.apache.brooklyn.core.mgmt.entitlement.Entitlements;
+import org.apache.brooklyn.core.typereg.RegisteredTypes;
import org.apache.brooklyn.rest.api.EntityApi;
import org.apache.brooklyn.rest.domain.EntitySummary;
import org.apache.brooklyn.rest.domain.LocationSummary;
@@ -66,11 +68,11 @@ import com.google.common.collect.FluentIterable;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.io.Files;
-import static org.apache.brooklyn.rest.util.WebResourceUtils.serviceAbsoluteUriBuilder;
@HaHotStateRequired
public class EntityResource extends AbstractBrooklynRestResource implements EntityApi {
+ @SuppressWarnings("unused")
private static final Logger log = LoggerFactory.getLogger(EntityResource.class);
@Context
@@ -162,7 +164,7 @@ public class EntityResource extends AbstractBrooklynRestResource implements Enti
// paths (ie non-protocol) and
// NB, for security, file URL's are NOT served
MediaType mime = WebResourceUtils.getImageMediaTypeFromExtension(Files.getFileExtension(url));
- Object content = ResourceUtils.create(brooklyn().getCatalogClassLoader()).getResourceFromUrl(url);
+ Object content = ResourceUtils.create(entity).getResourceFromUrl(url);
return Response.ok(content, mime).build();
}
[5/5] brooklyn-server git commit: This closes #661
Posted by dr...@apache.org.
This closes #661
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/e247841d
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/e247841d
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/e247841d
Branch: refs/heads/master
Commit: e247841dd969d5cb150cd16f545d5f4a88d7de56
Parents: f07b6f0 40fdfaf
Author: Duncan Godwin <dr...@googlemail.com>
Authored: Wed May 3 11:00:43 2017 +0100
Committer: Duncan Godwin <dr...@googlemail.com>
Committed: Wed May 3 11:00:43 2017 +0100
----------------------------------------------------------------------
.../org/apache/brooklyn/api/entity/Entity.java | 5 +++
.../internal/AbstractBrooklynObjectSpec.java | 6 ++--
.../BrooklynEntityDecorationResolver.java | 31 ++++++++---------
.../spi/creation/BrooklynEntityMatcher.java | 4 +++
.../brooklyn/spi/creation/CampResolver.java | 3 --
.../core/catalog/internal/CatalogItemDo.java | 5 +++
.../brooklyn/core/entity/AbstractEntity.java | 15 ++++-----
.../core/entity/BrooklynConfigKeys.java | 2 ++
.../apache/brooklyn/core/mgmt/BrooklynTags.java | 5 +++
.../BrooklynClassLoadingContextSequential.java | 8 ++---
.../JavaBrooklynClassLoadingContext.java | 4 +--
.../core/mgmt/persist/OsgiClassPrefixer.java | 3 --
.../core/mgmt/persist/XmlMementoSerializer.java | 6 +---
.../core/objs/AbstractBrooklynObject.java | 1 +
.../core/objs/BrooklynObjectInternal.java | 3 ++
.../brooklyn/core/typereg/RegisteredTypes.java | 17 ++++++++++
.../brooklyn/util/core/ClassLoaderUtils.java | 4 +--
.../util/core/ClassLoaderUtilsTest.java | 35 ++++++++++++++++----
.../rest/resources/ApplicationResource.java | 2 +-
.../brooklyn/rest/resources/EntityResource.java | 8 +++--
.../rest/util/BrooklynRestResourceUtils.java | 4 +--
21 files changed, 112 insertions(+), 59 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/e247841d/core/src/main/java/org/apache/brooklyn/core/entity/BrooklynConfigKeys.java
----------------------------------------------------------------------