package org.jboss.seam.test.integration;
import java.io.File;
import org.jboss.shrinkwrap.api.ArchivePath;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.StringAsset;
import org.jboss.shrinkwrap.api.importer.ZipImporter;
import org.jboss.shrinkwrap.api.spec.WebArchive;
public class Deployments {
public static WebArchive defaultSeamDeployment() {
return defaultSeamDeployment("WEB-INF/components.xml");
}
// Deployment that use the proper SeamListener instead of the MockSeamListener
public static WebArchive realSeamDeployment() {
return ShrinkWrap.create(ZipImporter.class, "test.war").importFrom(new File("target/seam-integration-tests.war")).as(WebArchive.class)
.addAsWebInfResource(new StringAsset(
"<jboss-deployment-structure>" +
"<deployment>" +
"<dependencies>" +
"<module name=\"org.javassist\"/>" +
"<module name=\"org.dom4j\"/>" +
"<module name=\"org.apache.commons.collections\"/>" +
"</dependencies>" +
"</deployment>" +
"</jboss-deployment-structure>"), "jboss-deployment-structure.xml")
.addAsResource("seam.properties")
.addAsResource("components.properties")
.addAsResource("messages_en.properties")
.addAsResource("META-INF/persistence.xml")
.addAsResource("hibernate.cfg.xml")
.addAsWebInfResource("WEB-INF/components.xml", "components.xml")
.addAsWebInfResource("WEB-INF/pages.xml", "pages.xml")
.addAsWebInfResource("WEB-INF/real-web.xml", "web.xml")
.addAsWebInfResource("WEB-INF/ejb-jar.xml", "ejb-jar.xml")
.addAsWebInfResource("WEB-INF/jboss-seam-integration-tests-hornetq-jms.xml", "jboss-seam-integration-tests-hornetq-jms.xml");
}
public static WebArchive jbpmSeamDeployment() {
return ShrinkWrap.create(ZipImporter.class, "test.war").importFrom(new File("target/seam-integration-tests.war")).as(WebArchive.class)
.addAsWebInfResource(new StringAsset(
"<jboss-deployment-structure>" +
"<deployment>" +
"<dependencies>" +
"<module name=\"org.javassist\"/>" +
"<module name=\"org.dom4j\"/>" +
"<module name=\"org.apache.commons.collections\"/>" +
"</dependencies>" +
"</deployment>" +
"</jboss-deployment-structure>"), "jboss-deployment-structure.xml")
.addAsResource("seam.properties")
.addAsResource("components.properties")
.addAsResource("messages_en.properties")
.addAsResource("META-INF/persistence.xml")
.addAsResource("testProcess1.jpdl.xml")
.addAsResource("testProcess2.jpdl.xml")
.addAsResource("testProcess3.jpdl.xml")
.addAsResource("testProcess4.jpdl.xml")
.addAsResource("jbpm.cfg.xml")
.addAsResource("hibernate.cfg.xml")
.addAsWebInfResource("WEB-INF/components-jbpm.xml", "components.xml")
.addAsWebInfResource("WEB-INF/pages.xml", "pages.xml")
.addAsWebInfResource("WEB-INF/web.xml", "web.xml")
.addAsWebInfResource("WEB-INF/ejb-jar.xml", "ejb-jar.xml");
}
public static WebArchive defaultSeamDeployment(String customComponentsXml) {
WebArchive war = ShrinkWrap.create(ZipImporter.class, "test.war").importFrom(new File("target/seam-integration-tests.war")).as(WebArchive.class)
.addAsWebInfResource(new StringAsset(
"<jboss-deployment-structure>" +
"<deployment>" +
"<dependencies>" +
"<module name=\"org.javassist\"/>" +
"<module name=\"org.dom4j\"/>" +
"</dependencies>" +
"</deployment>" +
"</jboss-deployment-structure>"), "jboss-deployment-structure.xml")
.addAsResource("seam.properties")
.addAsResource("components.properties")
.addAsResource("messages_en.properties")
.addAsResource("META-INF/persistence.xml")
.addAsResource("hibernate.cfg.xml")
.addAsWebInfResource(customComponentsXml, "components.xml")
.addAsWebInfResource("WEB-INF/pages.xml", "pages.xml")
.addAsWebInfResource("WEB-INF/web.xml", "web.xml")
.addAsWebInfResource("WEB-INF/ejb-jar.xml", "ejb-jar.xml")
.addAsWebInfResource("WEB-INF/jboss-seam-integration-tests-hornetq-jms.xml", "jboss-seam-integration-tests-hornetq-jms.xml");
// Remove jboss-seam-ui for a Mock SeamTest test as it would cause Mojarra to initialize
for (ArchivePath path : war.getContent().keySet()) {
if (path.get().contains("jboss-seam-ui")) {
war.delete(path);
break;
}
}
return war;
}
}