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 51b28628bc9b0bf64751d87c1bcc7849b655cf9f Author: Alex Heneveld <[email protected]> AuthorDate: Fri Nov 11 11:00:51 2022 +0000 allow name to be supplied for policies, enrichers, etc --- .../brooklyn/spi/creation/BrooklynYamlTypeInstantiator.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynYamlTypeInstantiator.java b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynYamlTypeInstantiator.java index f1023bf0fa..57106d6987 100644 --- a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynYamlTypeInstantiator.java +++ b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynYamlTypeInstantiator.java @@ -26,6 +26,7 @@ import javax.annotation.Nullable; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Function; +import org.apache.brooklyn.api.internal.AbstractBrooklynObjectSpec; import org.apache.brooklyn.api.mgmt.classloading.BrooklynClassLoadingContext; import org.apache.brooklyn.api.objs.Configurable; import org.apache.brooklyn.camp.brooklyn.BrooklynCampReservedKeys; @@ -36,6 +37,7 @@ import org.apache.brooklyn.util.core.config.ConfigBag; import org.apache.brooklyn.util.exceptions.Exceptions; import org.apache.brooklyn.util.guava.Maybe; import org.apache.brooklyn.util.javalang.Reflections; +import org.apache.brooklyn.util.text.Strings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -135,6 +137,17 @@ public abstract class BrooklynYamlTypeInstantiator { * <li> a no-arg constructor, only if the inferred map is empty **/ public <T> T newInstance(@Nullable Class<T> supertype) { + T result = newInstanceWithConfig(supertype); + if (result instanceof AbstractBrooklynObjectSpec) { + Object name = data.getStringKey("name"); + if (name!=null && Strings.isNonBlank(name.toString())) { + ((AbstractBrooklynObjectSpec) result).displayName(name.toString()); + } + } + return result; + } + + protected <T> T newInstanceWithConfig(@Nullable Class<T> supertype) { Class<? extends T> type = getType(supertype); Map<String, ?> cfg = getConfigMap(); Maybe<? extends T> result = Reflections.invokeConstructorFromArgs(type, cfg);
