diff --git a/indexer-core/pom.xml b/indexer-core/pom.xml
index 08b4a00a5edbe2f94fac86ab2c2b253dae7ad9f6..ba48b3cc7976a73c3b69b4433ca9110e91f03562 100644
--- a/indexer-core/pom.xml
+++ b/indexer-core/pom.xml
@@ -16,7 +16,7 @@
1.9.4
- 0.6.9
+ 0.9.0-SNAPSHOT
diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/PropertiesProcessor.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/PropertiesProcessor.java
index a0a71a3370fad6b291ca35b42497d241d50ecb0b..04a3211fda1a6a91a71fc7cea639951b41b90642 100644
--- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/PropertiesProcessor.java
+++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/PropertiesProcessor.java
@@ -14,7 +14,18 @@
package org.opengroup.osdu.indexer.schema.converter;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.function.Supplier;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
import org.apache.http.HttpStatus;
+import org.opengroup.osdu.core.common.Constants;
import org.opengroup.osdu.core.common.model.http.AppException;
import org.opengroup.osdu.core.common.search.Preconditions;
import org.opengroup.osdu.indexer.schema.converter.config.SchemaConverterConfig;
@@ -23,16 +34,14 @@ import org.opengroup.osdu.indexer.schema.converter.exeption.SchemaProcessingExce
import org.opengroup.osdu.indexer.schema.converter.tags.AllOfItem;
import org.opengroup.osdu.indexer.schema.converter.tags.Definition;
import org.opengroup.osdu.indexer.schema.converter.tags.Definitions;
+import org.opengroup.osdu.indexer.schema.converter.tags.Items;
import org.opengroup.osdu.indexer.schema.converter.tags.TypeProperty;
-import java.util.*;
-import java.util.function.Supplier;
-import java.util.stream.Stream;
-
public class PropertiesProcessor {
private SchemaConverterConfig schemaConverterConfig;
+ private static final String TYPE_KEY = "type";
private static final String DEF_PREFIX = "#/definitions/";
private static final String LINK_PREFIX = "^srn";
private static final String LINK_TYPE = "link";
@@ -176,7 +185,13 @@ public class PropertiesProcessor {
}
if ("array".equals(entry.getValue().getType())) {
- if (schemaConverterConfig.getSupportedArrayTypes().contains(entry.getValue().getItems().getType())) {
+
+ Items items = entry.getValue().getItems();
+ if(Objects.nonNull(items) && items.isComplexTypeItems()){
+ return processComplexTypeItems(entry, items);
+ }
+
+ if (schemaConverterConfig.getSupportedArrayTypes().contains(entry.getValue().getItems().getType()) && !items.isComplexTypeItems()) {
return storageSchemaEntry("[]" + getTypeByDefinitionProperty(entry.getValue()), pathPrefixWithDot + entry.getKey());
}
@@ -213,6 +228,36 @@ public class PropertiesProcessor {
}
+ private Stream