package org.camunda.bpm.camel.cdi;
import org.camunda.bpm.camel.common.CamelService;
import org.camunda.bpm.camel.spring.util.LogService;
import org.camunda.bpm.camel.spring.util.LogServiceImpl;
import org.camunda.bpm.engine.HistoryService;
import org.camunda.bpm.engine.RuntimeService;
import org.camunda.bpm.engine.TaskService;
import org.jboss.shrinkwrap.api.ArchivePaths;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.jboss.shrinkwrap.resolver.api.DependencyResolvers;
import org.jboss.shrinkwrap.resolver.api.maven.MavenDependencyResolver;
import javax.inject.Inject;
public abstract class BaseArquillianIntegrationTest {
@Inject
@SuppressWarnings("cdi-ambiguous-dependency")
protected RuntimeService runtimeService;
@Inject
@SuppressWarnings("cdi-ambiguous-dependency")
protected TaskService taskService;
@Inject
@SuppressWarnings("cdi-ambiguous-dependency")
protected HistoryService historyService;
@Inject
CamelContextBootstrap camelContextBootstrap;
@Inject
CamelService camelService;
protected static WebArchive prepareTestDeployment(String deploymentArchiveName,
String processDefinition) {
MavenDependencyResolver resolver = DependencyResolvers.use(MavenDependencyResolver.class)
.loadMetadataFromPom("pom.xml");
WebArchive war = ShrinkWrap.create(WebArchive.class, deploymentArchiveName + ".war")
.addAsLibraries(resolver.artifact("org.camunda.bpm:camunda-engine-cdi").resolveAsFiles())
.addAsLibraries(resolver.artifact("org.camunda.bpm.extension.camel:camunda-bpm-camel-common").resolveAsFiles())
.addAsLibraries(resolver.artifact("org.apache.camel:camel-core").resolveAsFiles())
.addAsLibraries(resolver.artifact("org.apache.camel:camel-cdi").resolveAsFiles())
.addAsLibraries(resolver.artifact("org.easytesting:fest-assert-core").resolveAsFiles())
// FIXME: this does not work we need to add this project's resources one by one
//.addAsLibraries(resolver.artifact("org.camunda.bpm.extension.camel:camunda-bpm-camel-cdi").resolveAsFiles())
.addClass(CamelServiceImpl.class)
.addClass(BaseArquillianIntegrationTest.class)
.addClass(ArquillianTestsProcessApplication.class)
.addClass(CamelContextBootstrap.class)
.addClass(LogService.class)
.addClass(LogServiceImpl.class)
.addClass(LogServiceCdiImpl.class)
//.addClass(camelRouteClass)
.addAsWebInfResource(EmptyAsset.INSTANCE, ArchivePaths.create("beans.xml"))
.addAsWebResource("META-INF/processes.xml", "WEB-INF/classes/META-INF/processes.xml")
.addAsResource(processDefinition)
;
/*
* For troubleshooting purposes use the following two lines to export the WAR to the filesystem
* to see if everything needed is there!
*/
//File destinationDir = new File("/Users/rafa/dev/plexiti/vc/the-job-announcement-fox/target");
//war.as(ExplodedExporter.class).exportExploded(destinationDir);
return war;
}
}