Как создать развертывание Arquillian ShrinkWrap, которое будет выполнять фильтрацию ресурсов Maven? Какую версию ShrinkWrap следует использовать?
Фильтрация ресурсов Maven с помощью Arquillian/ShrinkWrap
Ответы (3)
Согласно информации от разработчиков ShrinkWrap https://community.jboss.org/message/781880#781880 это еще не реализовано.
Билет для этой функции https://issues.jboss.org/browse/SHRINKRES-100
person
Grzegorz Żur
schedule
09.05.2013
После попытки "исправить" оказывается, что ответ довольно прост...
webArchive.addAsResource("test.properties");
... будет использовать ресурс пути к классам, который maven уже отфильтровал.
person
ymajoros
schedule
07.05.2015
... и просто добавьте элемент ‹testResource› в ваш pom.xml с параметром ‹filtering›true‹/filtering›, если вы еще этого не сделали.
- person ymajoros; 07.05.2015
РЕДАКТИРОВАТЬ: см. мой другой ответ, это действительно реализовано и просто в использовании ;-)
Гжегож прав, это не реализовано в Arquillian.
В качестве обходного пути я получил это в @Deployment:
Properties testProperties = new Properties();
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
InputStream testPropertiesInputStream = contextClassLoader.getResourceAsStream("test.properties");
testProperties.load(testPropertiesInputStream);
File testPropertiesTargetFile = File.createTempFile("arquillian_test_", ".properties");
try (Writer testPropertiesWriter = Files.newBufferedWriter(testPropertiesTargetFile.toPath())) {
testProperties.store(testPropertiesWriter, null);
}
webArchive.addAsResource(testPropertiesTargetFile, "test.properties");
А это в @Setup:
private Properties testProperties;
@Before
public void setUp() throws IOException {
testProperties = new Properties();
InputStream testPropertiesInputStream = this.getClass().getResourceAsStream("/test.properties");
testProperties.load(testPropertiesInputStream);
}
забастовка>
person
ymajoros
schedule
07.05.2015