If you work with features then declare its descriptor as dependency to itests:
<dependency>
<groupId>org.code-house.webconsole</groupId>
<artifactId>features</artifactId>
<classifier>features</classifier>
<type>xml</type>
</dependency>
Then use servicemix-depends plugin to drop all the versions from maven into
property file used by pax-exam:
<build>
<plugins>
<plugin>
<groupId>org.apache.servicemix.tooling</groupId>
<artifactId>depends-maven-plugin</artifactId>
<executions>
<execution>
<id>generate-depends-file</id>
<goals>
<goal>generate-depends-file</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
At the end you can reference artifact in your tests without any problem:
@Configuration
public Option[] config() {
String featuresUrl = maven("org.code-house.webconsole",
"features").classifier("features").type("xml").versionAsInProject().getURL();
String karafVersion = MavenUtils.getArtifactVersion("org.apache.karaf",
"apache-karaf");
MavenArtifactUrlReference frameworkURL = maven("org.apache.karaf",
"apache-karaf").type("zip").version(karafVersion);
return new Option[]{
karafDistributionConfiguration().karafVersion(karafVersion).frameworkUrl(frameworkURL),
editConfigurationFileExtend("etc/org.apache.karaf.features.cfg",
"featuresRepositories", "," + featuresUrl),
editConfigurationFileExtend("etc/org.ops4j.pax.url.mvn.cfg",
"org.ops4j.pax.url.mvn.repositories", "," +
"additional project repositories"),
};
}
Kind regards,
Lukasz
—
Apache Karaf commiter & PMC
Code-House http://code-house.org <http://code-house.org/>
Blog http://dywicki.pl <http://dywicki.pl/>
Twitter @ldywicki
> Wiadomość napisana przez Marco Westermann <[email protected]> w dniu 31 lip
> 2015, o godz. 13:59:
>
> Hi,
>
> I try to test if my feature works as expected via pax exam.
>
> Imagine my project structure as follows:
>
> |
> |-my.bundle
> |-features
> |-itests
> |-pom.xml
>
>
> so I have a parent pom which defines the version for all child poms. the
> feature contains the installation of the my.bundle with version
> ${project.version}. In the itest I would like to test if the correct version
> of my.bundle is installed without errors.
>
> therefor I install the feature in the configure method and now I would like
> to test if the bundle is installed. I got it working to test if the bundle is
> installed but I struggle around with the correct version as I don't know the
> correct version in the test. What I would like to do is: get the
> ${project.version} value in the test method. First I tried to provide it via
> system-property via surefire configuration, but I guess the system property
> is not available in karaf container when executing the test.
>
> The next approach was to get the test bundle version via:
>
> bundleContext.getBundle().getVersion().toString() but the provisioning bundle
> created by pax exam always has the version 0.0.0
>
>
> Is there another way to determine the correct version?
>
> best regards, Marco
>
> --
> ++ Business-Software aus einer Hand ++
> ++ Internet, Warenwirtschaft, Linux, Virtualisierung ++
> http://www.intersales.de <http://www.intersales.de/>
> http://www.eisxen.org <http://www.eisxen.org/>
> http://www.tarantella-partner.de <http://www.tarantella-partner.de/>
> http://www.medisales.de <http://www.medisales.de/>
> http://www.eisfair.net <http://www.eisfair.net/>
>
> interSales AG Internet Commerce
> Weinsbergstr. 190
> 50825 Köln
>
> Tel 02 21 - 27 90 50
> Fax 02 21 - 27 90 517
> Mail [email protected] <mailto:[email protected]>
> Mail [email protected] <mailto:[email protected]>
> Web www.intersales.de <http://www.intersales.de/>
>
> Handelsregister Köln HR B 30904
> Ust.-Id.: DE199672015
> Finanzamt Köln-Nord. UstID: nicht vergeben
> Aufsichtsratsvorsitzender: Michael Hippler
> Vorstand: Andrej Radonic, Peter Zander