Hi Lukasz, The boot features are installed in the early stage of the Karaf bootstrap. That's why we have to add in the cfg file.
You can install a feature with the provided features just after the bootstrap (in @before as you did). So, what's exactly your request ? CoreOptions.featureInstall() would be like installAndAssertFeature() (after Karaf bootstrap, mavenBundle() doesn't add the bundle in startup.properties for instance, it just installs the bundle after Karaf bootstrap). Regards JB On 02/08/2018 17:39, Lukasz Lech wrote: > > A bit self-answering: I’ve taken the class > > https://github.com/apache/karaf/blob/master/itests/common/src/main/java/org/apache/karaf/itests/KarafTestSupport.java > and extended it, basing on tests from the same project. > > > > Which resulted in another question on my side: is there really no > option to install features on startup other than the trick with > KarafDistributionOption.editConfigurationFilePut ? The problem with > editConfigurationFilePut, it replaces the existing option, so I need > to replicate the existing content. > > > > For feature repositories I’ve based on pax-exam test I’ve found in the > repo and created helper method to allow easily add custom repos: > > > > protected Option karafFeaturesOption() { > > String version = > MavenUtils.getArtifactVersion("org.apache.karaf", "apache-karaf"); > > StringBuilder sb = new StringBuilder(); > > sb.append("mvn:org.apache.karaf.features/framework/" + version + > "/xml/features, " + > > "mvn:org.apache.karaf.features/spring/" + > version + "/xml/features, " + > > "mvn:org.apache.karaf.features/spring-legacy/" + > version + "/xml/features, " + > > "mvn:org.apache.karaf.features/enterprise/" + > version + "/xml/features, " + > > > "mvn:org.apache.karaf.features/enterprise-legacy/" + version + > "/xml/features"); > > String[] extraFeatures = getAdditionalFeatureRepositories(); > > for (String feature: extraFeatures) { > > sb.append(", ").append(feature); > > } > > return > editConfigurationFilePut("etc/org.apache.karaf.features.cfg", > "featuresRepositories", sb.toString()); > > } > > > > For features, there are too much of them, and I suppose, they change > between versions? So I’ve called installAndAssertFeature in @Before … > That works, but needs to be adapted to config file changes, so > effectively I could take config file from distribution, append feature > per hand and replace the whole file in Options. > > > > You can install bundles via CoreOptions.mavenBundle(), so I don’t see > why it shouldn’t be possible for features… Or it’s already supported > and I’ve failed to find out how? > > > > Best regards, > > Lukasz Lech > > > > > > *From:*[email protected] [mailto:[email protected]] *On > Behalf Of *Lukasz Lech > *Sent:* Montag, 30. Juli 2018 12:08 > *To:* [email protected] > *Subject:* [PAX-EXAM] No runnable methods > > > > Hello, > > > > I’m tryin once again to start with pax-exam. I’ve taken the Wiki > example from > https://ops4j1.jira.com/wiki/spaces/PAXEXAM4/pages/54263846/Getting+Started+with+OSGi+Tests > > And I’ve created the following code: > > > > @RunWith(PaxExam.class) > > @ExamReactorStrategy(PerMethod.class) > > public class ServiceTest > > { > > > > @Inject > > private MyService myService; > > > > @Configuration > > public Option[] config() { > > return options( > > mavenBundle("com.example", "myservice", "1.0.0-SNAPSHOT"), > > junitBundles() > > ); > > } > > > > @Test > > public void getService() { > > assertNotNull(myService); > > } > > > > } > > > > I’m absolutely astounded by the error message I’ve got: > > > > Java.lang.Exception: No runnable method. > > > > My test method is annotated with org.junit.Test, exactly like on Wiki > page. > > > > What I’m missing here? > > > > Looking for the same error I’ve found the solutions like here: > http://permalink.gmane.org/gmane.comp.java.ops4j.general/13999 > > > > But changing junitBundles() to new JUnitBundlesOption() has taken > absolutely no effect, same error message. > > > > My maven dependencies are: > > > > <dependency> > > <groupId>javax.inject</groupId> > > <artifactId>javax.inject</artifactId> > > <version>1</version> > > <scope>test</scope> > > </dependency> > > > > > > <dependency> > > <groupId>org.ops4j.pax.exam</groupId> > > <artifactId>_pax_-exam-container-_karaf_</artifactId> > > <version>4.1.0</version> > > <scope>test</scope> > > </dependency> > > > > <dependency> > > <groupId>org.ops4j.pax.exam</groupId> > > <artifactId>_pax_-exam-junit4</artifactId> > > <version>4.7.0</version> > > <scope>test</scope> > > </dependency> > > > > > > > > Best regards, > > Lukasz Lech > > > > -- > -- > ------------------ > OPS4J - http://www.ops4j.org - [email protected] > <mailto:[email protected]> > > --- > You received this message because you are subscribed to the Google > Groups "OPS4J" group. > To unsubscribe from this group and stop receiving emails from it, send > an email to [email protected] > <mailto:[email protected]>. > For more options, visit https://groups.google.com/d/optout. > > -- > -- > ------------------ > OPS4J - http://www.ops4j.org - [email protected] > > --- > You received this message because you are subscribed to the Google > Groups "OPS4J" group. > To unsubscribe from this group and stop receiving emails from it, send > an email to [email protected] > <mailto:[email protected]>. > For more options, visit https://groups.google.com/d/optout. -- -- ------------------ OPS4J - http://www.ops4j.org - [email protected] --- You received this message because you are subscribed to the Google Groups "OPS4J" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
pEpkey.asc
Description: application/pgp-keys
