Я использую Xalan в своем приложении, но мне нужно использовать Saxon с эталонной реализацией для создания тестовых выходных данных для сравнения. Я хочу использовать их обоих во время модульных тестов. Однако, как только я добавляю зависимость от Saxon в проект .pom, приложение, кажется, использует Saxon для всех операций xslt и XPath во время тестов:
<dependency>
<groupId>net.sf.saxon</groupId>
<artifactId>Saxon-HE</artifactId>
<version>9.4</version>
<scope>test</scope>
</dependency>
Это приводит к сбою основного приложения при создании выходных данных из-за другого поведения XPath. При запуске основного приложения за пределами области тестирования оно работает.
Как я могу запустить основное приложение, используя Xalan, но тесты, используя Saxon, во время тестов?
Я попытался установить следующее свойство перед запуском частей Xalan и Saxon:
System.setProperty("javax.xml.transform.TransformerFactory", "org.apache.xalan.processor.TransformerFactoryImpl ");
System.setProperty("javax.xml.transform.TransformerFactory", "net.sf.saxon.TransformerFactoryImpl");
Я также пытался поместить части Xalan и Saxon в разные проекты, а также пытался использовать их обе из третьего проекта с тем же результатом.