+ return propsInUpdatedVersion;
+ }
+
+ Map<String, PropertyDefinition> mapOfPropsInCurrentVersion = propsInCurrentVersion.stream().collect(Collectors.toMap(prop -> prop.getName(), prop -> prop));
+ Map<String, PropertyDefinition> mapOfPropsInUpdatedVersion = propsInUpdatedVersion.stream().collect(Collectors.toMap(prop -> prop.getName(), prop -> prop));
+
+ List<PropertyDefinition> propsToBeAdded = new ArrayList<>();
+ for (Entry<String, PropertyDefinition> propertyInUpdatedVersion: mapOfPropsInUpdatedVersion.entrySet()) {
+ if (mapOfPropsInCurrentVersion.containsKey(propertyInUpdatedVersion.getKey())) {
+ if (!haveSameType(mapOfPropsInCurrentVersion.get(propertyInUpdatedVersion.getKey()), propertyInUpdatedVersion.getValue())) {
+ propsToBeAdded.add(propertyInUpdatedVersion.getValue());
+ }
+ } else {
+ propsToBeAdded.add(propertyInUpdatedVersion.getValue());
+ }