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 489c2a2180fb46587655f77101b048840788ba5b Author: Alex Heneveld <[email protected]> AuthorDate: Wed Oct 14 01:54:01 2020 +0100 make autodetect format more forgiving (allow blank), and better error messages --- .../apache/brooklyn/core/typereg/AbstractCatalogBundleResolver.java | 4 +--- .../apache/brooklyn/core/typereg/AbstractTypePlanTransformer.java | 3 ++- .../apache/brooklyn/core/typereg/BrooklynCatalogBundleResolvers.java | 5 +++-- .../java/org/apache/brooklyn/core/typereg/TypePlanTransformers.java | 5 +++-- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/core/src/main/java/org/apache/brooklyn/core/typereg/AbstractCatalogBundleResolver.java b/core/src/main/java/org/apache/brooklyn/core/typereg/AbstractCatalogBundleResolver.java index 73ac173..bebffba 100644 --- a/core/src/main/java/org/apache/brooklyn/core/typereg/AbstractCatalogBundleResolver.java +++ b/core/src/main/java/org/apache/brooklyn/core/typereg/AbstractCatalogBundleResolver.java @@ -18,14 +18,12 @@ */ package org.apache.brooklyn.core.typereg; -import com.google.common.collect.Lists; import java.io.IOException; import java.io.InputStream; import java.util.Arrays; import java.util.List; import java.util.function.Supplier; import org.apache.brooklyn.api.mgmt.ManagementContext; -import org.apache.brooklyn.util.collections.MutableList; import org.apache.brooklyn.util.exceptions.Exceptions; import org.apache.brooklyn.util.guava.Maybe; import org.apache.brooklyn.util.javalang.JavaClassNames; @@ -91,7 +89,7 @@ public abstract class AbstractCatalogBundleResolver implements BrooklynCatalogBu @Override public double scoreForBundle(String format, Supplier<InputStream> f) { if (getFormatCode().equals(format)) return 1; - if (format==null) + if (Strings.isBlank(format)) return scoreForNullFormat(f); else return scoreForNonmatchingNonnullFormat(format, f); diff --git a/core/src/main/java/org/apache/brooklyn/core/typereg/AbstractTypePlanTransformer.java b/core/src/main/java/org/apache/brooklyn/core/typereg/AbstractTypePlanTransformer.java index 52ee199..5ebe585 100644 --- a/core/src/main/java/org/apache/brooklyn/core/typereg/AbstractTypePlanTransformer.java +++ b/core/src/main/java/org/apache/brooklyn/core/typereg/AbstractTypePlanTransformer.java @@ -25,6 +25,7 @@ import org.apache.brooklyn.api.typereg.RegisteredTypeLoadingContext; import org.apache.brooklyn.util.exceptions.Exceptions; import org.apache.brooklyn.util.guava.Maybe; import org.apache.brooklyn.util.javalang.JavaClassNames; +import org.apache.brooklyn.util.text.Strings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -81,7 +82,7 @@ public abstract class AbstractTypePlanTransformer implements BrooklynTypePlanTra @Override public double scoreForType(RegisteredType type, RegisteredTypeLoadingContext context) { if (getFormatCode().equals(type.getPlan().getPlanFormat())) return 1; - if (type.getPlan().getPlanFormat()==null) + if (Strings.isBlank(type.getPlan().getPlanFormat())) return scoreForNullFormat(type.getPlan().getPlanData(), type, context); else return scoreForNonmatchingNonnullFormat(type.getPlan().getPlanFormat(), type.getPlan().getPlanData(), type, context); diff --git a/core/src/main/java/org/apache/brooklyn/core/typereg/BrooklynCatalogBundleResolvers.java b/core/src/main/java/org/apache/brooklyn/core/typereg/BrooklynCatalogBundleResolvers.java index c5ee6f8..c58a21f 100644 --- a/core/src/main/java/org/apache/brooklyn/core/typereg/BrooklynCatalogBundleResolvers.java +++ b/core/src/main/java/org/apache/brooklyn/core/typereg/BrooklynCatalogBundleResolvers.java @@ -171,10 +171,11 @@ public class BrooklynCatalogBundleResolvers { exception = failuresFromResolvers.size() == 1 ? Exceptions.create(null, failuresFromResolvers) : Exceptions.create("All applicable bundle resolvers failed", failuresFromResolvers); } else { + String prefix = Strings.isBlank(options.format) ? "Invalid bundle" : "Invalid '"+options.format+"' bundle"; if (resolvers.isEmpty()) { - exception = new UnsupportedTypePlanException("Invalid bundle; format could not be recognized, none of the available resolvers " + all(mgmt) + " support it"); + exception = new UnsupportedTypePlanException(prefix + "; format could not be recognized, none of the available resolvers " + all(mgmt) + " support it"); } else { - exception = new UnsupportedTypePlanException("Invalid bundle; potentially applicable resolvers " + resolvers + " do not support it, and other available resolvers " + + exception = new UnsupportedTypePlanException(prefix + "; potentially applicable resolvers " + resolvers + " do not support it, and other available resolvers " + // // the removeAll call below won't work until "all" caches it // MutableList.builder().addAll(all(mgmt)).removeAll(transformers).build()+" "+ "do not accept it"); diff --git a/core/src/main/java/org/apache/brooklyn/core/typereg/TypePlanTransformers.java b/core/src/main/java/org/apache/brooklyn/core/typereg/TypePlanTransformers.java index 6990646..fe0ee36 100644 --- a/core/src/main/java/org/apache/brooklyn/core/typereg/TypePlanTransformers.java +++ b/core/src/main/java/org/apache/brooklyn/core/typereg/TypePlanTransformers.java @@ -142,11 +142,12 @@ public class TypePlanTransformers { result = failuresFromTransformers.size()==1 ? Exceptions.create(null, failuresFromTransformers) : Exceptions.create("All applicable plan transformers failed", failuresFromTransformers); } else { + String prefix = Strings.isBlank(type.getPlan().getPlanFormat()) ? "Invalid plan" : "Invalid '"+type.getPlan().getPlanFormat()+"' plan]"; if (transformers.isEmpty()) { - result = new UnsupportedTypePlanException("Invalid plan; format could not be recognized, none of the available transformers "+all(mgmt)+" support "+ + result = new UnsupportedTypePlanException(prefix + "; format could not be recognized, none of the available transformers "+all(mgmt)+" support "+ (type.getId()!=null ? type.getId() : "plan:\n"+type.getPlan().getPlanData())); } else { - result = new UnsupportedTypePlanException("Invalid plan; potentially applicable transformers "+transformers+" do not support it, and other available transformers "+ + result = new UnsupportedTypePlanException(prefix + "; potentially applicable transformers "+transformers+" do not support it, and other available transformers "+ // // the removeAll call below won't work until "all" caches it // MutableList.builder().addAll(all(mgmt)).removeAll(transformers).build()+" "+ "do not accept it");
