Arquillian:修改shrinkwrap webarchive

时间:2017-08-16 16:13:52

标签: jboss-arquillian shrinkwrap switchyard

我正在制作一个宁静的网络服务服务A ,然后拨打另一个休息服务服务B 服务B 是打包为war存档的外部资源。此服务包含 WEB-INF / switchyard.xml 中的常规switchyard文件。遗憾的是,switchyard文件中的属性是静态的,即代理设置,这会干扰我的测试。我想要做的是编辑switchyard.xml文件,并删除部分以适应不必要的代理设置。

以下是我为服务B

创建可部署的方法
@Deployment(name = "my-service", order = 1, testable = false)
public static Archive<?> svcMyDeployable() {
    final File file = Maven.configureResolver().fromFile(System.getProperty("settings.xml"))
            .loadPomFromFile("pom.xml").resolve("com.sample.service:cool-service:war:?")
            .withoutTransitivity().asSingleFile();
    final WebArchive war = ShrinkWrap.createFromZipFile(WebArchive.class, file);
    final WebArchive archive = ShrinkWrap.create(WebArchive.class, "cool-service.war").merge(war);
    return archive;
}

我可以考虑在服务B 中覆盖switchyard.xml文件属性的唯一方法是将 WEB-INF / switchyard.xml 替换为一个自定义的。我可以这样做:

archive.delete("/WEB-INF/switchyard.xml");
archive.addAsWebInfResource("custom-switchyard/switchyard.xml");

有没有更好的方法来实现这一目标?我真正需要做的就是从原来的switchyard.xml文件中删除6行:

<http:proxy>
    <http:host>10.10.10.10</http:host>
    <http:port>9999</http:port>
    <http:user>username</http:user>
    <http:password>password</http:password>
</http:proxy>

0 个答案:

没有答案