package org.opennaas.itests.helpers;
import static org.openengsb.labs.paxexam.karaf.options.KarafDistributionOption.configureConsole;
import static org.openengsb.labs.paxexam.karaf.options.KarafDistributionOption.editConfigurationFilePut;
import static org.openengsb.labs.paxexam.karaf.options.KarafDistributionOption.karafDistributionConfiguration;
import static org.ops4j.pax.exam.CoreOptions.compendiumProfile;
import static org.ops4j.pax.exam.CoreOptions.composite;
import static org.ops4j.pax.exam.CoreOptions.maven;
import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
import java.io.File;
import org.openengsb.labs.paxexam.karaf.options.KarafDistributionBaseConfigurationOption;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.options.extra.VMOption;
import com.google.common.base.Joiner;
public abstract class OpennaasExamOptions
{
public final static KarafDistributionBaseConfigurationOption opennaasDistributionConfiguration()
{
return karafDistributionConfiguration()
.frameworkUrl(maven()
.groupId("org.opennaas")
.artifactId("platform")
.type("zip")
.versionAsInProject())
.karafVersion("2.2.11")
.name("opennaas")
.unpackDirectory(new File("target/paxexam"));
}
public final static Option includeTestHelper()
{
return composite(mavenBundle()
.groupId("org.opennaas.itests")
.artifactId("org.opennaas.itests.helpers")
.versionAsInProject(),
compendiumProfile());
}
public final static Option includeTestMockProfile()
{
return mavenBundle()
.groupId("org.opennaas")
.artifactId("org.opennaas.core.tests-mockprofile")
.versionAsInProject();
}
public final static Option includeSwissboxFramework()
{
return composite(mavenBundle()
.groupId("org.ops4j.base")
.artifactId("ops4j-base-spi")
.versionAsInProject(),
mavenBundle()
.groupId("org.ops4j.pax.swissbox")
.artifactId("pax-swissbox-framework")
.versionAsInProject());
}
public final static Option includeFeatures(String... features)
{
return editConfigurationFilePut("etc/org.apache.karaf.features.cfg",
"featuresBoot",
Joiner.on(",").join(features));
}
public final static Option noConsole()
{
return configureConsole().ignoreLocalConsole().ignoreRemoteShell();
}
public final static Option openDebugSocket()
{
return new VMOption("-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005");
}
}