X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Faai%2Fdatarouter%2Futil%2FSearchServiceAgent.java;fp=src%2Fmain%2Fjava%2Forg%2Fonap%2Faai%2Fdatarouter%2Futil%2FSearchServiceAgent.java;h=b62237d46834ec94ae9b51bbb94bfd801544c127;hb=093deaf4738d56602f94e6a4193993a77e053a51;hp=4baa81a2597d611e474a96c07e64d81f304ff7fb;hpb=3b49121e2e86b3d22704ff52d468f85fcd74d9b2;p=aai%2Fdata-router.git diff --git a/src/main/java/org/onap/aai/datarouter/util/SearchServiceAgent.java b/src/main/java/org/onap/aai/datarouter/util/SearchServiceAgent.java index 4baa81a..b62237d 100644 --- a/src/main/java/org/onap/aai/datarouter/util/SearchServiceAgent.java +++ b/src/main/java/org/onap/aai/datarouter/util/SearchServiceAgent.java @@ -37,13 +37,15 @@ import org.eclipse.jetty.util.security.Password; import org.onap.aai.cl.api.Logger; import org.onap.aai.cl.mdc.MdcContext; import org.onap.aai.datarouter.logging.DataRouterMsgs; -import org.onap.aai.datarouter.policy.EntityEventPolicy; import org.onap.aai.restclient.client.Headers; import org.onap.aai.restclient.client.OperationResult; import org.onap.aai.restclient.client.RestClient; import org.onap.aai.restclient.enums.RestAuthenticationMode; import org.onap.aai.restclient.rest.HttpUtil; import org.slf4j.MDC; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.FileSystemResource; +import org.springframework.core.io.Resource; import com.sun.jersey.core.util.MultivaluedMapImpl; @@ -56,6 +58,7 @@ public class SearchServiceAgent { private String searchUrl = null; private String documentEndpoint = null; + private String schemaHomeDir = null; /** @@ -109,6 +112,7 @@ public class SearchServiceAgent { this.documentEndpoint = documentEndpoint; this.logger = logger; + this.schemaHomeDir = DataRouterConstants.DR_SEARCH_SCHEMA_HOME; } @@ -338,22 +342,42 @@ public class SearchServiceAgent { * @throws Exception */ protected String loadFileData(String filename) throws Exception { - StringBuilder data = new StringBuilder(); - - try (InputStreamReader inputStreamReader = new InputStreamReader(EntityEventPolicy.class.getClassLoader() - .getResourceAsStream("/" + filename), StandardCharsets.UTF_8); BufferedReader in = new BufferedReader( - inputStreamReader) - ) { + Resource fileResource = getSchemaResource(filename); + if (fileResource == null) { + throw new Exception("Could not find file = " + filename + "."); + } + try ( + InputStreamReader inputStreamReader = new InputStreamReader(fileResource.getInputStream(), StandardCharsets.UTF_8); + BufferedReader in = new BufferedReader(inputStreamReader); + ){ String line; - while ((line = in.readLine()) != null) { + StringBuilder data = new StringBuilder(); + while((line = in.readLine()) != null) { data.append(line); } + return data.toString(); } catch (Exception e) { throw new Exception("Failed to read from file = " + filename + ".", e); } + } + + private Resource getSchemaResource(String filename) { + Resource fileResource = null; + + if(filename == null) { + return null; + } + + if ((schemaHomeDir != null) && (fileResource = new FileSystemResource(schemaHomeDir + "/" + filename)).isReadable()) { + return fileResource; + } + + if ((fileResource = new ClassPathResource(filename)).isReadable()) { + return fileResource; + } - return data.toString(); + return null; }