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 6379e9573e6156ed5d591fd0668b2e5f94d8075e
Author: Alex Heneveld <[email protected]>
AuthorDate: Mon Jun 27 17:09:36 2022 +0100

    remove redundant non-legacy attempt
    
    introduced a while ago in this branch, but meanwhile inserted earlier in 
the process
---
 .../catalog/internal/BasicBrooklynCatalog.java     | 138 +++++++--------------
 1 file changed, 45 insertions(+), 93 deletions(-)

diff --git 
a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/BasicBrooklynCatalog.java
 
b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/BasicBrooklynCatalog.java
index ade47e671d..acd86db3cf 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/catalog/internal/BasicBrooklynCatalog.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/catalog/internal/BasicBrooklynCatalog.java
@@ -125,7 +125,6 @@ public class BasicBrooklynCatalog implements 
BrooklynCatalog {
 
     private static final Logger log = 
LoggerFactory.getLogger(BasicBrooklynCatalog.class);
 
-    private static boolean ATTEMPT_INSTANTIATION_WITH_TYPE_PLAN_TRANSFORMERS = 
true;
     private static boolean 
ATTEMPT_INSTANTIATION_WITH_LEGACY_PLAN_TO_SPEC_CONVERTERS = true;
     
     public static class BrooklynLoaderTracker {
@@ -1325,7 +1324,7 @@ public class BasicBrooklynCatalog implements 
BrooklynCatalog {
             try {
                 currentlyResolvingType.set(Strings.isBlank(itemId) ? itemYaml 
: itemId);
 
-                Maybe<Object> transformedResult = attemptPlanTranformer();
+                Maybe<Object> transformedResult = attemptPlanTransformer();
                 boolean onlyNewStyleTransformer = format != null || 
catalogItemType == CatalogItemType.BEAN;
                 if (transformedResult.isPresent() || onlyNewStyleTransformer) {
                     planYaml = itemYaml;
@@ -1377,22 +1376,22 @@ public class BasicBrooklynCatalog implements 
BrooklynCatalog {
 
             List<Exception> oldEntityErrors = MutableList.copyOf(entityErrors);
             // try with services key
-            attemptLegacySpecTransformersForType(CatalogItemType.ENTITY, 
"services", false);
+            attemptLegacySpecTransformersForType(CatalogItemType.ENTITY, 
"services");
             entityErrors.removeAll(oldEntityErrors);
             entityErrors.addAll(oldEntityErrors);
             // errors when wrapped in services block are better currently
             // as we parse using CAMP and need that
             // so prefer those for now (may change with YOML)
 
-            attemptLegacySpecTransformersForType(CatalogItemType.POLICY, 
POLICIES_KEY, true);
-            attemptLegacySpecTransformersForType(CatalogItemType.ENRICHER, 
ENRICHERS_KEY, true);
-            attemptLegacySpecTransformersForType(CatalogItemType.LOCATION, 
LOCATIONS_KEY, true);
+            attemptLegacySpecTransformersForType(CatalogItemType.POLICY, 
POLICIES_KEY);
+            attemptLegacySpecTransformersForType(CatalogItemType.ENRICHER, 
ENRICHERS_KEY);
+            attemptLegacySpecTransformersForType(CatalogItemType.LOCATION, 
LOCATIONS_KEY);
         }
 
         boolean suspicionOfABean = false;
 
-        private Maybe<Object> attemptPlanTranformer() {
-            MutableSet<Throwable> exceptions = MutableSet.<Throwable>of();
+        private Maybe<Object> attemptPlanTransformer() {
+            MutableSet<Throwable> exceptions = MutableSet.of();
             try {
                 suspicionOfABean = false;
 
@@ -1402,7 +1401,7 @@ public class BasicBrooklynCatalog implements 
BrooklynCatalog {
                 if (catalogItemType == null) {
                     // attempt to detect whether it is a bean
                     Object type = item.get("type");
-                    if (type!=null && type instanceof String) {
+                    if (type instanceof String) {
                         TypeToken<?> clz = new 
BrooklynTypeNameResolver((String)type, loader, false, true)
                                 .findTypeToken((String) type).orNull();
                         if (clz!=null) {
@@ -1521,24 +1520,28 @@ public class BasicBrooklynCatalog implements 
BrooklynCatalog {
         }
 
         private boolean attemptLegacySpecTransformersForType(CatalogItemType 
candidateCiType) {
-            return attemptLegacySpecTransformersForType(candidateCiType, null, 
false);
+            return attemptLegacySpecTransformersForType(candidateCiType, null);
         }
-        private boolean attemptLegacySpecTransformersForType(CatalogItemType 
candidateCiType, String optionalKeyForModifyingYaml, boolean 
tryWithoutOptionalKey) {
+        private boolean attemptLegacySpecTransformersForType(CatalogItemType 
candidateCiType, String optionalKeyForModifyingYaml) {
             if (resolved) return false;
             if (catalogItemType!=null && catalogItemType!=candidateCiType) 
return false;
 
-            String candidateYamlWithKeyAdded = null;;
+            String candidateYamlWithKeyAdded = null;
+            boolean legacyModeForOriginalBlueprint;
             if (optionalKeyForModifyingYaml!=null) {
                 /* often when added to a catalog we simply say "type: xxx" for 
the definition;
                  * the services: parent key at root (or brooklyn.policies, 
etc) needed by the camp parser
                  * are implicit, and added here */
                 if (item.containsKey(optionalKeyForModifyingYaml)) {
                     optionalKeyForModifyingYaml = null;
-                    tryWithoutOptionalKey = true;
+                    legacyModeForOriginalBlueprint = true;
                 } else {
                     candidateYamlWithKeyAdded = optionalKeyForModifyingYaml + 
":\n" + makeAsIndentedList(itemYaml);
+                    legacyModeForOriginalBlueprint = false;
                 }
-            }
+            } else {
+                legacyModeForOriginalBlueprint = true;
+            };
 
             String type = (String) item.get("type");
             if (itemsDefinedSoFar!=null) {
@@ -1558,13 +1561,9 @@ public class BasicBrooklynCatalog implements 
BrooklynCatalog {
                 }
             }
             
-            if (tryWithoutOptionalKey || candidateYamlWithKeyAdded==null) {
-                if (attemptTypeInstantiation("normal", candidateCiType, 
itemYaml, false, null, type)) {
-                    return true;
-                }
-                
+            if (legacyModeForOriginalBlueprint) {
                 // also try legacy
-                if (attemptTypeInstantiation("legacy", candidateCiType, 
itemYaml, true, null, type)) {
+                if (attemptLegacyTypeInstantiation("legacy", candidateCiType, 
itemYaml, null, type)) {
                     return true;
                 }
             }
@@ -1578,12 +1577,7 @@ public class BasicBrooklynCatalog implements 
BrooklynCatalog {
                 MutableList<Exception> oldEntityErrors = 
MutableList.copyOf(entityErrors);
                 entityErrors.clear();
     
-                if (attemptTypeInstantiation("normal with key 
'"+optionalKeyForModifyingYaml+"'", candidateCiType, candidateYamlWithKeyAdded, 
false, optionalKeyForModifyingYaml, type)) {
-                    return true;
-                }
-                
-                // try legacy
-                if (attemptTypeInstantiation("legacy with key 
'"+optionalKeyForModifyingYaml+"'", candidateCiType, candidateYamlWithKeyAdded, 
true, optionalKeyForModifyingYaml, type)) {
+                if (attemptLegacyTypeInstantiation("legacy with key 
'"+optionalKeyForModifyingYaml+"'", candidateCiType, candidateYamlWithKeyAdded, 
optionalKeyForModifyingYaml, type)) {
                     return true;
                 }
                 
@@ -1593,7 +1587,7 @@ public class BasicBrooklynCatalog implements 
BrooklynCatalog {
             return false;
         }
         
-        private boolean attemptTypeInstantiation(String context, 
CatalogItemType candidateCiType, String candidateYaml, boolean tryAsLegacy, 
String optionalKeyForModifyingYaml, String typeIfOptionalKeySupplied) {
+        private boolean attemptLegacyTypeInstantiation(String context, 
CatalogItemType candidateCiType, String candidateYaml, String 
optionalKeyForModifyingYaml, String typeIfOptionalKeySupplied) {
             
             // then try parsing plan - this will use loader
             // first use transformer approach
@@ -1601,42 +1595,20 @@ public class BasicBrooklynCatalog implements 
BrooklynCatalog {
                 Object itemToAttemptO = null;
                 Object itemSpecInstantiated = null;
                 
-                if (tryAsLegacy) {
-                    if 
(ATTEMPT_INSTANTIATION_WITH_LEGACY_PLAN_TO_SPEC_CONVERTERS) {
-                        // deprecated old style
-                        @SuppressWarnings("rawtypes")
-                        CatalogItem itemToAttempt = 
createItemBuilder(candidateCiType, getIdWithRandomDefault(), DEFAULT_VERSION)
-                            .plan(candidateYaml)
-                            .libraries(libraryBundles)
-                            .build();
-                        itemToAttemptO = itemToAttempt;
-                        
-                        itemSpecInstantiated = internalCreateSpecLegacy(mgmt, 
itemToAttempt, MutableSet.<String>of(), true);
-
-                        if (ATTEMPT_INSTANTIATION_WITH_TYPE_PLAN_TRANSFORMERS) 
{
-                            log.warn("Instantiation of this blueprint was only 
possible with legacy plan-to-spec converter, will likely not be supported in 
future versions:\n"+candidateYaml);
-                        }
-                    }
-                    
-                } else {
-                    if (ATTEMPT_INSTANTIATION_WITH_TYPE_PLAN_TRANSFORMERS) {
-                        // preferred, new style
-                        BasicRegisteredType itemToAttempt = 
createYetUnsavedRegisteredTypeInstance(
-                            // RegisteredTypeKind
-                            RegisteredTypeKind.SPEC, getIdWithRandomDefault(), 
DEFAULT_VERSION,
-                            /* containing bundle */ null, libraryBundles, 
-                            // displayName, description, catalogIconUrl, 
deprecated, yaml
-                            null, null, null, false, candidateYaml, 
-                            // tags, aliases, catalogDisabled, superTypes, 
format 
-                            null, null, false, 
MutableList.of(BrooklynObjectType.of(candidateCiType).getInterfaceType()), null
-                            );
-                        itemToAttemptO = itemToAttempt;
-                        
-                        itemSpecInstantiated = 
mgmt.getTypeRegistry().create(itemToAttempt, null, null);
-                    }
-                    
+                if (ATTEMPT_INSTANTIATION_WITH_LEGACY_PLAN_TO_SPEC_CONVERTERS) 
{
+                    // deprecated old style
+                    @SuppressWarnings("rawtypes")
+                    CatalogItem itemToAttempt = 
createItemBuilder(candidateCiType, getIdWithRandomDefault(), DEFAULT_VERSION)
+                        .plan(candidateYaml)
+                        .libraries(libraryBundles)
+                        .build();
+                    itemToAttemptO = itemToAttempt;
+
+                    itemSpecInstantiated = internalCreateSpecLegacy(mgmt, 
itemToAttempt, MutableSet.<String>of(), true);
+
+                    log.warn("Instantiation of this blueprint was only 
possible with legacy plan-to-spec converter, will likely not be supported in 
future versions:\n"+candidateYaml);
                 }
-                
+
                 if (itemSpecInstantiated!=null) {
                     catalogItemType = candidateCiType;
                     planYaml = candidateYaml;
@@ -1676,35 +1648,18 @@ public class BasicBrooklynCatalog implements 
BrooklynCatalog {
                     String cutDownYaml = optionalKeyForModifyingYaml + ":\n" + 
makeAsIndentedList("type: "+typeIfOptionalKeySupplied);
                     
                     Object cutdownSpecInstantiated = null;
-                    if (tryAsLegacy) {
-                        if 
(ATTEMPT_INSTANTIATION_WITH_LEGACY_PLAN_TO_SPEC_CONVERTERS) {
-                            @SuppressWarnings("rawtypes")
-                            CatalogItem itemToAttempt = 
createItemBuilder(candidateCiType, getIdWithRandomDefault(), DEFAULT_VERSION)
-                                    .plan(cutDownYaml)
-                                    .libraries(libraryBundles)
-                                    .build();
-                            cutdownSpecInstantiated = 
internalCreateSpecLegacy(mgmt, itemToAttempt, MutableSet.<String>of(), true);
-                            if 
(ATTEMPT_INSTANTIATION_WITH_TYPE_PLAN_TRANSFORMERS) {
-                                log.warn("Instantiation of this cut-down 
blueprint was only possible with legacy plan-to-spec converter, will likely not 
be supported in future versions:\n"+candidateYaml);
-                            }
-                        }
 
-                    } else {
-                        if (ATTEMPT_INSTANTIATION_WITH_TYPE_PLAN_TRANSFORMERS) 
{
-                            // preferred, new style
-                            BasicRegisteredType itemToAttempt = 
createYetUnsavedRegisteredTypeInstance(
-                                RegisteredTypeKind.SPEC, 
getIdWithRandomDefault(), DEFAULT_VERSION,
-                                /* containing bundle */ null, 
-                                libraryBundles, 
-                                // displayName, description, catalogIconUrl, 
deprecated, yaml
-                                null, null, null, false, cutDownYaml, 
-                                // tags, aliases, catalogDisabled, superTypes, 
format 
-                                null, null, false, 
MutableList.of(BrooklynObjectType.of(candidateCiType).getInterfaceType()), 
null);
-
-                            cutdownSpecInstantiated = 
mgmt.getTypeRegistry().create(itemToAttempt, null, null);
-                        }
+                    if 
(ATTEMPT_INSTANTIATION_WITH_LEGACY_PLAN_TO_SPEC_CONVERTERS) {
+                        @SuppressWarnings("rawtypes")
+                        CatalogItem itemToAttempt = 
createItemBuilder(candidateCiType, getIdWithRandomDefault(), DEFAULT_VERSION)
+                                .plan(cutDownYaml)
+                                .libraries(libraryBundles)
+                                .build();
+                        cutdownSpecInstantiated = 
internalCreateSpecLegacy(mgmt, itemToAttempt, MutableSet.<String>of(), true);
+
+                        log.warn("Instantiation of this cut-down blueprint was 
only possible with legacy plan-to-spec converter, will likely not be supported 
in future versions:\n"+candidateYaml);
                     }
-                    
+
                     if (cutdownSpecInstantiated!=null) {
                         log.debug("Instantiation of this blueprint was only 
possible using cut-down syntax; assuming dependencies on other items. May 
resolve subsequently or may cause errors when used:\n"+candidateYaml);
                         
@@ -1721,10 +1676,7 @@ public class BasicBrooklynCatalog implements 
BrooklynCatalog {
                     Exceptions.propagateIfFatal(e);
                 }
             }
-            // FIXME we should lookup type in the catalog on its own, then 
infer the type from that,
-            // and give proper errors (right now e.g. if there are no 
transformers then we bail out 
-            // with very little information)
-            
+
             return false;
         }
 

Reply via email to