From d780e1513e95eada399ad4885d65846e86ca776b Mon Sep 17 00:00:00 2001 From: NThakur4 <nthakur4@slb.com> Date: Tue, 27 Apr 2021 14:02:20 -0500 Subject: [PATCH] enable indexing meta-attributes if there are schema parsing errors --- .../converter/SchemaToStorageFormatImpl.java | 69 +++++++++---------- .../indexer/service/SchemaProviderImpl.java | 9 +-- 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/SchemaToStorageFormatImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/SchemaToStorageFormatImpl.java index e45e3df8d..2ed1506a4 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/SchemaToStorageFormatImpl.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/SchemaToStorageFormatImpl.java @@ -84,44 +84,43 @@ public class SchemaToStorageFormatImpl implements SchemaToStorageFormat { PropertiesProcessor propertiesProcessor = new PropertiesProcessor(schemaServiceSchema.getDefinitions(), schemaConverterConfig); final List<Map<String, Object>> storageSchemaItems = new ArrayList<>(); - if (schemaServiceSchema.getProperties() != null) { - PropertiesData schemaData = schemaServiceSchema.getProperties().getData(); - if (!Objects.isNull(schemaData)) { - - if (schemaData.getAllOf() != null) { - storageSchemaItems.addAll(schemaServiceSchema.getProperties().getData().getAllOf().stream() - .flatMap(propertiesProcessor::processItem) - .collect(Collectors.toList())); - } - - if (schemaData.getAnyOf() != null) { - storageSchemaItems.addAll(schemaServiceSchema.getProperties().getData().getAnyOf().stream() - .flatMap(propertiesProcessor::processItem) - .collect(Collectors.toList())); - } - - if (schemaData.getOneOf() != null) { - storageSchemaItems.addAll(schemaServiceSchema.getProperties().getData().getOneOf().stream() - .flatMap(propertiesProcessor::processItem) - .collect(Collectors.toList())); - } - - if (schemaData.getRef() != null) { - storageSchemaItems.addAll(propertiesProcessor.processRef(schemaData.getRef()) - .collect(Collectors.toList())); - } - - if (schemaData.getProperties() != null) { - storageSchemaItems.addAll(propertiesProcessor.processProperties(schemaData.getProperties()) - .collect(Collectors.toList())); - } - } else { - throw new SchemaProcessingException(String.format("Schema doesn't have properties section, kind: %s", kind)); - } - } else { + if (schemaServiceSchema.getProperties() == null) { throw new SchemaProcessingException(String.format("Schema doesn't have data section, kind: %s", kind)); } + PropertiesData schemaData = schemaServiceSchema.getProperties().getData(); + if (Objects.isNull(schemaData)) { + throw new SchemaProcessingException(String.format("Schema doesn't have properties section, kind: %s", kind)); + } + + if (schemaData.getAllOf() != null) { + storageSchemaItems.addAll(schemaServiceSchema.getProperties().getData().getAllOf().stream() + .flatMap(propertiesProcessor::processItem) + .collect(Collectors.toList())); + } + + if (schemaData.getAnyOf() != null) { + storageSchemaItems.addAll(schemaServiceSchema.getProperties().getData().getAnyOf().stream() + .flatMap(propertiesProcessor::processItem) + .collect(Collectors.toList())); + } + + if (schemaData.getOneOf() != null) { + storageSchemaItems.addAll(schemaServiceSchema.getProperties().getData().getOneOf().stream() + .flatMap(propertiesProcessor::processItem) + .collect(Collectors.toList())); + } + + if (schemaData.getRef() != null) { + storageSchemaItems.addAll(propertiesProcessor.processRef(schemaData.getRef()) + .collect(Collectors.toList())); + } + + if (schemaData.getProperties() != null) { + storageSchemaItems.addAll(propertiesProcessor.processProperties(schemaData.getProperties()) + .collect(Collectors.toList())); + } + if (!propertiesProcessor.getErrors().isEmpty()) { throw new SchemaProcessingException(String.format("Errors occurred during parsing the schema, kind: %s | errors: %s" , kind, String.join(",", propertiesProcessor.getErrors()))); diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/SchemaProviderImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/SchemaProviderImpl.java index c462c78e8..6f2bf52cc 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/SchemaProviderImpl.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/SchemaProviderImpl.java @@ -19,13 +19,11 @@ import org.apache.http.HttpStatus; import org.opengroup.osdu.core.common.http.FetchServiceHttpRequest; import org.opengroup.osdu.core.common.http.IUrlFetchService; import org.opengroup.osdu.core.common.logging.JaxRsDpsLog; -import org.opengroup.osdu.core.common.model.http.AppException; import org.opengroup.osdu.core.common.model.http.HttpResponse; import org.opengroup.osdu.core.common.provider.interfaces.IRequestInfo; import org.opengroup.osdu.indexer.config.IndexerConfigurationProperties; +import org.opengroup.osdu.indexer.schema.converter.exeption.SchemaProcessingException; import org.opengroup.osdu.indexer.schema.converter.interfaces.SchemaToStorageFormat; -import org.opengroup.osdu.indexer.service.SchemaService; -import org.opengroup.osdu.indexer.service.StorageService; import org.springframework.stereotype.Component; import javax.inject.Inject; @@ -64,8 +62,11 @@ public class SchemaProviderImpl implements SchemaService { try { schemaServiceSchema = getFromSchemaService(kind); + } catch (SchemaProcessingException ex) { + log.error(ex.getMessage(), ex); + return null; } catch (RuntimeException ex) { - log.error(String.format("Failed to get the schema from the Schema service, kind: %s | message: %s", kind, ex.getMessage(), ex)); + log.error(String.format("Failed to get the schema from the Schema service, kind: %s | message: %s", kind, ex.getMessage()), ex); return null; } -- GitLab