/*
* Copyright 2013 Harald Wellmann.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied.
*
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.ops4j.pax.cdi.test.karaf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.junit.Assert.assertThat;
import static org.ops4j.pax.exam.CoreOptions.*;
import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.*;
import java.io.File;
import org.ops4j.pax.cdi.test.support.Info;
import org.ops4j.pax.exam.ConfigurationManager;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.karaf.options.KarafDistributionOption;
import org.ops4j.pax.exam.karaf.options.LogLevelOption;
import org.ops4j.pax.exam.karaf.options.configs.CustomProperties;
import org.ops4j.pax.exam.options.MavenArtifactUrlReference;
import org.ops4j.pax.exam.options.MavenUrlReference;
public class RegressionConfiguration {
public static final MavenUrlReference PAX_CDI_FEATURES = maven().groupId("org.ops4j.pax.cdi")
.artifactId("pax-cdi-features").type("xml").classifier("features").version(Info.getPaxCdiVersion());
public static final MavenUrlReference PAX_WEB_FEATURES = maven().groupId("org.ops4j.pax.web")
.artifactId("pax-web-features").type("xml").classifier("features").version(Info.getPaxWebVersion());
public static final Option SAMPLE1 = mavenBundle().groupId("org.ops4j.pax.cdi.samples")
.artifactId("pax-cdi-sample1").versionAsInProject();
public static final Option SAMPLE1_WEB = mavenBundle().groupId("org.ops4j.pax.cdi.samples")
.artifactId("pax-cdi-sample1-web").versionAsInProject();
public static Option regressionDefaults() {
return regressionDefaults("target/exam");
}
public static Option regressionDefaults(String unpackDir) {
return composite(
karafDistributionConfiguration().frameworkUrl(mvnKarafDist()).karafVersion(karafVersion())
.unpackDirectory(unpackDirFile(unpackDir)).useDeployFolder(false),
configureConsole().ignoreLocalConsole(),
KarafDistributionOption.keepRuntimeFolder(),
KarafDistributionOption.logLevel(LogLevelOption.LogLevel.INFO),
when(isDebug()).useOptions(
KarafDistributionOption.debugConfiguration("5005", true)
),
when(isEquinox()).useOptions(
editConfigurationFilePut(CustomProperties.KARAF_FRAMEWORK, "equinox"),
propagateSystemProperty("pax.exam.framework"),
systemProperty("osgi.console").value("6666"),
systemProperty("osgi.console.enable.builtin").value("true"))
);
}
private static File unpackDirFile(String unpackDir) {
return unpackDir == null ? null : new File(unpackDir);
}
public static boolean isDebug() {
return "true".equals(System.getProperty("pax.exam.debug"));
}
public static boolean isEquinox() {
return "equinox".equals(System.getProperty("pax.exam.framework"));
}
public static boolean isFelix() {
return "felix".equals(System.getProperty("pax.exam.framework"));
}
public static MavenArtifactUrlReference mvnKarafDist() {
return maven().groupId("org.apache.karaf")
.artifactId("apache-karaf").type("tar.gz").version(karafVersion());
}
public static String karafVersion() {
ConfigurationManager cm = new ConfigurationManager();
String karafVersion = cm.getProperty("pax.exam.karaf.version");
assertThat(karafVersion, is(notNullValue()));
return karafVersion;
}
}