package org.onap.aai.setup;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.*;
-import java.util.*;
-
-import javax.ws.rs.HttpMethod;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import org.onap.aai.restclient.RestClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.core.io.Resource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
/**
* <b>AAIConfigTranslator</b> is responsible for looking at the schema files and
* edge files based on the available versions Also has the ability to exclude
* them based on the node.exclusion.pattern
*/
+@Component
+@ConditionalOnProperty(name = "schema.translator.list", havingValue = "schema-service", matchIfMissing = false)
public class SchemaServiceTranslator extends Translator {
private static final Logger LOGGER = LoggerFactory.getLogger(SchemaServiceTranslator.class);
- private static final String SchemaServiceClientType = "schema.service";
-
@Value("${schema.service.nodes.endpoint}")
private String nodeSchemaUri;
@Value("${schema.service.edges.endpoint}")
private String edgeSchemaUri;
- @Qualifier("restClient")
@Autowired
private RestClient restClient;
@Override
public List<InputStream> getVersionNodeStream(SchemaVersion version) throws IOException {
- List<InputStream> inputStreams = new ArrayList<>();
- String content = "";
- String uri = nodeSchemaUri + version.toString();
- Map<String, String> headersMap = new HashMap<>();
-
+ final Map<String, String> headersMap = new HashMap<>();
headersMap.put(HttpHeaders.ACCEPT, MediaType.APPLICATION_XML.toString());
headersMap.put(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_XML.toString());
+ final String content = "";
+ final String uri = nodeSchemaUri + version.toString();
ResponseEntity<Resource> schemaResponse = restClient.getGetResource(content, uri, headersMap);
+
verifySchemaServiceResponse(schemaResponse.getStatusCode());
LOGGER.debug("SchemaResponse Status code" + schemaResponse.getStatusCode());
- inputStreams.add(schemaResponse.getBody().getInputStream());
- return inputStreams;
+
+ Resource resultBody = schemaResponse.getBody();
+ return resultBody != null
+ ? Collections.singletonList(resultBody.getInputStream())
+ : Collections.emptyList();
}
@Override
/*
* Call Schema MS to get versions using RestTemplate
*/
- List<String> inputStreams = new ArrayList<>();
- String content = "";
- String uri = edgeSchemaUri + version.toString();
- Map<String, String> headersMap = new HashMap<>();
+ final String content = "";
+ final String uri = edgeSchemaUri + version.toString();
+ final Map<String, String> headersMap = new HashMap<>();
ResponseEntity<String> schemaResponse = restClient.getGetRequest(content, uri, headersMap);
verifySchemaServiceResponse(schemaResponse.getStatusCode());
LOGGER.debug("SchemaResponse Status code" + schemaResponse.getStatusCode());
- inputStreams.add(schemaResponse.getBody());
- return inputStreams;
+ return Collections.singletonList(schemaResponse.getBody());
}