package liquibase.parser.core.xml;
import java.io.IOException;
import java.io.InputStream;
import org.junit.runner.RunWith;
import liquibase.logging.LogFactory;
import liquibase.logging.Logger;
import liquibase.resource.ResourceAccessor;
import liquibase.util.StreamUtil;
public class ResourceAccessorXsdStreamResolver extends XsdStreamResolver {
private static final Logger LOGGER = new LogFactory().getLog("ResourceAccessorXsdStreamResolver");
private ResourceAccessor resourceAccessor;
public ResourceAccessorXsdStreamResolver(ResourceAccessor resourceAccessor) {
this.resourceAccessor = resourceAccessor;
}
@Override
public InputStream getResourceAsStream(String xsdFile) {
try {
InputStream resourceAsStream = StreamUtil.singleInputStream(xsdFile, resourceAccessor);
if(resourceAsStream == null){
LOGGER.debug("Could not load "+xsdFile+" with the standard resource accessor.");
return getSuccessorValue(xsdFile);
}
return resourceAsStream;
}catch (IOException e){
LOGGER.debug("Could not load "+xsdFile+" with the standard resource accessor.");
return getSuccessorValue(xsdFile);
}
}
}