Now we are trying to ease the life of C5 components developers by providing a utility, which will take care of most of the generic configurations need in OSGi testing. This will enable the C5 component developer to just specify a small number of dependencies and start writing PAX tests for C5 components.
You will have to depend on the following library, except for other PAX dependencies
1 2 3 4 5 6 | <dependency> <groupId>org.wso2.carbon</groupId> <artifactId>carbon-kernel-osgi-test-util</artifactId> <version>5.1.0-SNAPSHOT</version> <scope>test</scope> </dependency> |
You can find a working sample on the following Git repo
https://github.com/jsdjayanga/c5-sample-osgi-test
Above will load the dependencies you need by default to test Carbon Kernel functionalities. But as a component developer you will have to specify your components jars into the testing environment. This is done via @Configuration annotation in your test class.
Lets assume you work on a bundle org.wso2.carbon.jndi:org.wso2.carbon.jndi, below is how you should specify your dependencies.
1 2 3 4 5 6 7 8 9 10 | @Configuration public Option[] createConfiguration() { List<Option> customOptions = new ArrayList<>(); customOptions.add(mavenBundle().artifactId("org.wso2.carbon.jndi").groupId("org.wso2.carbon.jndi") .versionAsInProject()); CarbonOSGiTestEnvConfigs configs = new CarbonOSGiTestEnvConfigs(); configs.setCarbonHome("/home/jayanga/WSO2/Training/TestUser/target/carbon-home"); return CarbonOSGiTestUtils.getAllPaxOptions(configs, customOptions); } |
Once these are done, your test should ideally work :)