Hi JB, I tried editing the generated file manually but for some strange reason it doesn't seem to install my features, maybe I did a stupid mistake ? I did all of this in the generated target/exam/*/ folder.
Here's the features.cfg contents: #Modified by paxexam #Sun Mar 04 07:50:26 CET 2018 featuresBootAsynchronous=false featuresBoot=(instance,package,log,ssh,aries-blueprint,framework,system,eventadmin,feature,shell,management,service,jaas,shell-compat,deployer,diagnostic,wrap,bundle,config,kar,war,cxf,cellar),unomi-kar,unomi-router-karaf-feature,exam featuresRepositories=mvn\:org.apache.karaf.features/framework/4.1.5/xml/features, mvn\:org.apache.karaf.features/spring/4.1.5/xml/features, mvn\:org.apache.karaf.features/standard/4.1.5/xml/features, mvn\:org.apache.karaf.features/enterprise/4.1.5/xml/features,mvn\:org.ops4j.pax.web/pax-web-features/3.1.0/xml/features,mvn\:org.apache.cxf.karaf/apache-cxf/3.1.10/xml/features,mvn\:org.apache.karaf.cellar/apache-karaf-cellar/4.1.0/xml/features,mvn\:org.apache.unomi/unomi-kar/1.3.0-incubating-unomi_5_karaf4_1-SNAPSHOT/xml/features,mvn\:org.apache.unomi/unomi-router-karaf-feature/1.3.0-incubating-unomi_5_karaf4_1-SNAPSHOT/xml/features,mvn\:org.ops4j.pax.exam/pax-exam-features/4.11.0/xml Here's the karaf.log: Mar 04, 2018 8:28:05 AM org.apache.karaf.main.lock.SimpleFileLock lock INFO: Trying to lock /Users/loom/java/technologies/apache-git/incubator-unomi-karaf4/itests/target/exam/7874d4a8-c3b0-4850-b6d5-3029999cfe79/lock Mar 04, 2018 8:28:05 AM org.apache.karaf.main.lock.SimpleFileLock lock INFO: Lock acquired Mar 04, 2018 8:28:05 AM org.apache.karaf.main.Main$KarafLockCallback lockAquired INFO: Lock acquired. Setting startlevel to 100 2018-03-04T08:28:08,059 | INFO | pool-1-thread-2 | FeaturesServiceImpl | 10 - org.apache.karaf.features.core - 4.1.5 | Adding features: instance/[4.1.5,4.1.5], package/[4.1.5,4.1.5], log/[4.1.5,4.1.5], ssh/[4.1.5,4.1.5], aries-blueprint/[4.1.5,4.1.5], framework/[4.1.5,4.1.5], system/[4.1.5,4.1.5], eventadmin/[4.1.5,4.1.5], feature/[4.1.5,4.1.5], shell/[4.1.5,4.1.5], management/[4.1.5,4.1.5], service/[4.1.5,4.1.5], jaas/[4.1.5,4.1.5], shell-compat/[4.1.5,4.1.5], deployer/[4.1.5,4.1.5], diagnostic/[4.1.5,4.1.5], wrap/[0,0.0.0], bundle/[4.1.5,4.1.5], config/[4.1.5,4.1.5], kar/[4.1.5,4.1.5], war/[4.1.5,4.1.5], cxf/[3.1.10,3.1.10], cellar/[4.1.0,4.1.0] Even if it did work, this file is generated by Pax Exam so it's not clear to me the changes I need to make to the integration tests to set this up ? Sorry about all the questions, but I'm really struggling with this. Regards, Serge... Serge Huber CTO & Co-Founder T +41 22 361 3424 9 route des Jeunes | 1227 Acacias | Switzerland jahia.com <http://www.jahia.com/> SKYPE | LINKEDIN <https://www.linkedin.com/in/sergehuber> | TWITTER <https://twitter.com/sergehuber> | VCARD <http://www.jahia.com/vcard/HuberSerge.vcf> > JOIN OUR COMMUNITY <http://www.jahia.com/> to evaluate, get trained and to discover why Jahia is a leading User Experience Platform (UXP) for Digital Transformation. On Sun, Mar 4, 2018 at 8:17 AM, Jean-Baptiste Onofré <j...@nanthrax.net> wrote: > As said, the featuresBoot doesn't seem good to me as wrap can be not yet > installed (async) before your feature is installed. > > It should be: > > featuresBoot=(instance, package, log, ssh, aries-blueprint, framework, > system, > eventadmin, feature, shell, management, service, jaas, shell-compat, > deployer, > diagnostic, wrap, bundle, config, > kar,shell,war,cxf,cellar),unomi-kar,unomi-router-karaf-feature,exam > > Regards > JB > > On 03/04/2018 08:02 AM, Serge Huber wrote: > > Thanks Oliver & JB for your quick answers. > > > > I've checked the generated org.apache.karaf.features.cfg file and it has > some > > strange contents: > > > > *#Modified by paxexam* > > > > *#Fri Mar 02 16:59:52 CET 2018* > > > > *featuresBootAsynchronous=false* > > > > *featuresBoot=instance, package, log, ssh, aries-blueprint, framework, > system, > > eventadmin, feature, shell, management, service, jaas, shell-compat, > deployer, > > diagnostic, wrap, bundle, config, > > kar,shell,wrap,war,cxf,cellar,unomi-kar,unomi-router-karaf-feature,exam* > > > > *featuresRepositories=mvn\:org.apache.karaf.features/ > framework/4.1.5/xml/features, > > mvn\:org.apache.karaf.features/spring/4.1.5/xml/features, > > mvn\:org.apache.karaf.features/standard/4.1.5/xml/features, > > mvn\:org.apache.karaf.features/enterprise/4.1.5/xml/ > features,mvn\:org.ops4j.pax.web/pax-web-features/3.1.0/ > xml/features,mvn\:org.apache.karaf.features/standard/4.1.5/ > xml/features,mvn\:org.ops4j.pax.web/pax-web-features/3.1. > 0/xml/features,mvn\:org.apache.cxf.karaf/apache-cxf/3. > 1.10/xml/features,mvn\:org.apache.karaf.cellar/apache- > karaf-cellar/4.1.0/xml/features,mvn\:org.apache.unomi/unomi-kar/1.3.0- > incubating-unomi_5_karaf4_1-SNAPSHOT/xml/features,mvn\: > org.apache.unomi/unomi-router-karaf-feature/1.3.0- > incubating-unomi_5_karaf4_1-SNAPSHOT/xml/features,mvn\: > org.ops4j.pax.exam/pax-exam-features/4.11.0/xml* > > > > > > I seems the wrap feature is listed twice, not sure if that is a problem. > > > > I installed the unomi-kar and unomi-router-karaf-feature as boot features > > because this is what is done in the Karaf package, but I don't have a > problem > > changing this for the integration tests. I'm just not sure how this can > be > > achieved ? Do you have an example or some documentation ? I checked the > Karaf > > documentation but I couldn't find anything related to injection or > executeCommand. > > > > Regards, > > Serge... > > > > > > Serge Huber > > CTO & Co-Founder > > > > > > T +41 22 361 3424 > > 9 route des Jeunes | 1227 Acacias | Switzerland > > jahia.com <http://www.jahia.com/> > > SKYPE | LINKEDIN <https://www.linkedin.com/in/sergehuber> | TWITTER > > <https://twitter.com/sergehuber> | VCARD > > <http://www.jahia.com/vcard/HuberSerge.vcf> > > > > > > > JOIN OUR COMMUNITY <http://www.jahia.com/> to evaluate, get trained > and to discover why Jahia is > > a leading User Experience Platform (UXP) for Digital Transformation. > > > > > > On Sun, Mar 4, 2018 at 5:51 AM, Jean-Baptiste Onofré <j...@nanthrax.net > > <mailto:j...@nanthrax.net>> wrote: > > > > Hi Serge, > > > > I think that the problem is that wrap should be a bootFeature in > early stage > > compared to the Unomi router. > > > > Can you check (in the @Config) the org.apache.karaf.feature.cfg (if > wrap is at > > first stage) ? > > > > More over, I would install unomi feature using executeCommand or > feature service > > (with @Inject) to be sure to be "in" Karaf. > > > > Regards > > JB > > > > On 03/03/2018 04:31 PM, Serge Huber wrote: > > > Hello, > > > > > > I'm struggling getting Apache Unomi tests to work since I migrated > from Karaf 3 > > > to Karaf 4. > > > > > > Here is the error I am getting in the logs: > > > > > > *2018-03-02T17:01:54,018 | ERROR | pool-1-thread-2 | > > BootFeaturesInstaller > > > | 10 - org.apache.karaf.features.core - 4.1.5 | Error > installing boot > > > features* > > > > > > *org.apache.karaf.features.internal.util.MultiException: Error:* > > > > > > * Error downloading > > > > > wrap:file:/Users/loom/.m2/repository/org/apache/kafka/kafka-clients/ > 0.10.1.0/kafka-clients-0.10.1.0.jar > > <http://0.10.1.0/kafka-clients-0.10.1.0.jar> > > > <http://0.10.1.0/kafka-clients-0.10.1.0.jar > > <http://0.10.1.0/kafka-clients-0.10.1.0.jar>>* > > > > > > * Error downloading > > > > > wrap:file:/Users/loom/.m2/repository/org/apache/kafka/kafka-clients/ > 0.10.1.0/kafka-clients-0.10.1.0.jar > > <http://0.10.1.0/kafka-clients-0.10.1.0.jar> > > > <http://0.10.1.0/kafka-clients-0.10.1.0.jar > > <http://0.10.1.0/kafka-clients-0.10.1.0.jar>>* > > > > > > * at > > > > > org.apache.karaf.features.internal.download.impl. > MavenDownloadManager$MavenDownloader.<init>(MavenDownloadManager.java:84) > > > ~[?:?]* > > > > > > * at > > > > > org.apache.karaf.features.internal.download.impl. > MavenDownloadManager.createDownloader(MavenDownloadManager.java:72) > > > ~[?:?]* > > > > > > * at > > > > > org.apache.karaf.features.internal.region.Subsystem. > downloadBundles(Subsystem.java:375) > > > ~[?:?]* > > > > > > * at > > > > > org.apache.karaf.features.internal.region.Subsystem. > downloadBundles(Subsystem.java:372) > > > ~[?:?]* > > > > > > * at > > > > > org.apache.karaf.features.internal.region.SubsystemResolver.resolve( > SubsystemResolver.java:187) > > > ~[?:?]* > > > > > > * at > > > org.apache.karaf.features.internal.service.Deployer. > deploy(Deployer.java:291) > > > ~[?:?]* > > > > > > * at > > > > > org.apache.karaf.features.internal.service.FeaturesServiceImpl. > doProvision(FeaturesServiceImpl.java:1248) > > > ~[?:?]* > > > > > > * at > > > > > org.apache.karaf.features.internal.service. > FeaturesServiceImpl.lambda$doProvisionInThread$1( > FeaturesServiceImpl.java:1147) > > > ~[?:?]* > > > > > > * at java.util.concurrent.FutureTask.run(FutureTask.java:266) > [?:?]* > > > > > > * at > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker( > ThreadPoolExecutor.java:1142) > > > [?:?]* > > > > > > * at > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run( > ThreadPoolExecutor.java:617) > > > [?:?]* > > > > > > * at java.lang.Thread.run(Thread.java:745) [?:?]* > > > > > > * Suppressed: java.io.IOException: Error downloading > > > > > wrap:file:/Users/loom/.m2/repository/org/apache/kafka/kafka-clients/ > 0.10.1.0/kafka-clients-0.10.1.0.jar > > <http://0.10.1.0/kafka-clients-0.10.1.0.jar> > > > <http://0.10.1.0/kafka-clients-0.10.1.0.jar > > <http://0.10.1.0/kafka-clients-0.10.1.0.jar>>* > > > > > > * at > > > > > org.apache.karaf.features.internal.download.impl. > AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:77) > > > [10:org.apache.karaf.features.core:4.1.5]* > > > > > > * at > > > > > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > [?:?]* > > > > > > * at > > java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]* > > > > > > * at > > > > > java.util.concurrent.ScheduledThreadPoolExecutor$ > ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) > > > [?:?]* > > > > > > * at > > > > > java.util.concurrent.ScheduledThreadPoolExecutor$ > ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) > > > [?:?]* > > > > > > * at > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker( > ThreadPoolExecutor.java:1142) > > > [?:?]* > > > > > > * at > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run( > ThreadPoolExecutor.java:617) > > > [?:?]* > > > > > > * at java.lang.Thread.run(Thread.java:745) [?:?]* > > > > > > * Caused by: java.io.IOException: Could not download > > > > > [wrap:file:/Users/loom/.m2/repository/org/apache/kafka/ > kafka-clients/0.10.1.0/kafka-clients-0.10.1.0.jar > > <http://0.10.1.0/kafka-clients-0.10.1.0.jar> > > > <http://0.10.1.0/kafka-clients-0.10.1.0.jar > > <http://0.10.1.0/kafka-clients-0.10.1.0.jar>>]* > > > > > > * at > > > > > org.apache.karaf.features.internal.download.impl. > SimpleDownloadTask.download(SimpleDownloadTask.java:90) > > > ~[?:?]* > > > > > > * at > > > > > org.apache.karaf.features.internal.download.impl. > AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60) > > > ~[?:?]* > > > > > > * ... 7 more* > > > > > > * Caused by: java.net <http://java.net>. > MalformedURLException: > > Unknown protocol: wrap* > > > > > > * at java.net.URL.<init>(URL.java:627) ~[?:?]* > > > > > > * at java.net.URL.<init>(URL.java:490) ~[?:?]* > > > > > > * at java.net.URL.<init>(URL.java:439) ~[?:?]* > > > > > > * at > > > > > org.apache.karaf.features.internal.download.impl. > SimpleDownloadTask.download(SimpleDownloadTask.java:62) > > > ~[?:?]* > > > > > > * at > > > > > org.apache.karaf.features.internal.download.impl. > AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60) > > > ~[?:?]* > > > > > > * ... 7 more* > > > > > > * Caused by: java.lang.IllegalStateException: Unknown > protocol: wrap* > > > > > > * at > > > > > org.apache.felix.framework.URLHandlersStreamHandlerProxy.parseURL( > URLHandlersStreamHandlerProxy.java:373) > > > ~[?:?]* > > > > > > * at java.net.URL.<init>(URL.java:622) ~[?:?]* > > > > > > * at java.net.URL.<init>(URL.java:490) ~[?:?]* > > > > > > * at java.net.URL.<init>(URL.java:439) ~[?:?]* > > > > > > * at > > > > > org.apache.karaf.features.internal.download.impl. > SimpleDownloadTask.download(SimpleDownloadTask.java:62) > > > ~[?:?]* > > > > > > * at > > > > > org.apache.karaf.features.internal.download.impl. > AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:60) > > > ~[?:?]* > > > > > > * ... 7 more* > > > > > > > > > Here is the setup for the Test case: > > > > > > protected static final String HTTP_PORT = "8181"; > > > > > > protected static final String URL = "http://localhost:" + > HTTP_PORT; > > > > > > protected static final String KARAF_DIR = "target/exam"; > > > > > > @Configuration > > > public Option[] config() { > > > MavenArtifactUrlReference karafUrl = maven() > > > .groupId("org.apache.karaf") > > > .artifactId("apache-karaf") > > > .version("4.1.5") > > > .type("tar.gz"); > > > > > > MavenUrlReference karafStandardRepo = maven() > > > .groupId("org.apache.karaf.features") > > > .artifactId("standard") > > > .classifier("features") > > > .type("xml") > > > .versionAsInProject(); > > > MavenUrlReference karafCellarRepo = maven() > > > .groupId("org.apache.karaf.cellar") > > > .artifactId("apache-karaf-cellar") > > > .classifier("features") > > > .type("xml") > > > .versionAsInProject(); > > > MavenUrlReference karafPaxWebRepo = maven() > > > .groupId("org.ops4j.pax.web") > > > .artifactId("pax-web-features") > > > .classifier("features") > > > .type("xml") > > > .versionAsInProject(); > > > MavenUrlReference karafCxfRepo = maven() > > > .groupId("org.apache.cxf.karaf") > > > .artifactId("apache-cxf") > > > .classifier("features") > > > .type("xml") > > > .versionAsInProject(); > > > MavenUrlReference contextServerRepo = maven() > > > .groupId("org.apache.unomi") > > > .artifactId("unomi-kar") > > > .classifier("features") > > > .type("xml") > > > .versionAsInProject(); > > > MavenUrlReference routerRepo = maven() > > > .groupId("org.apache.unomi") > > > .artifactId("unomi-router-karaf-feature") > > > .classifier("features") > > > .type("xml") > > > .versionAsInProject(); > > > > > > return new Option[]{ > > > debugConfiguration("5005", false), > > > karafDistributionConfiguration() > > > .frameworkUrl(karafUrl) > > > .unpackDirectory(new File(KARAF_DIR)) > > > .useDeployFolder(true), > > > > > replaceConfigurationFile("etc/org.apache.unomi.router.cfg", new > File( > > > "src/test/resources/org. > apache.unomi.router.cfg")), > > > > > replaceConfigurationFile("data/tmp/recurrent_import/2- > surfers-test.csv", > > new File( > > > "src/test/resources/2-surfers-test.csv")), > > > > > replaceConfigurationFile("data/tmp/recurrent_import/3- > surfers-overwrite-test.csv", > > new File( > > > "src/test/resources/3- > surfers-overwrite-test.csv")), > > > > > replaceConfigurationFile("data/tmp/recurrent_import/4- > surfers-delete-test.csv", > > new File( > > > "src/test/resources/4- > surfers-delete-test.csv")), > > > > > replaceConfigurationFile("data/tmp/recurrent_import/5- > ranking-test.csv", > > new File( > > > "src/test/resources/5-ranking-test.csv")), > > > > > replaceConfigurationFile("data/tmp/recurrent_import/6-actors-test.csv", > new > > File( > > > "src/test/resources/6-actors-test.csv")), > > > keepRuntimeFolder(), > > > configureConsole().ignoreLocalConsole(), > > > logLevel(LogLevel.INFO), > > > // editConfigurationFilePut("etc/org.ops4j.pax.web.cfg", > > > "org.osgi.service.http.port", HTTP_PORT), > > > // systemProperty("org.osgi.service.http.port").value(HTTP_PORT), > > > systemProperty("org.ops4j.pax.exam.rbc.rmi.port").value("1199"), > > > > > systemProperty("org.apache.unomi.itests.elasticsearch. > transport.port").value("9500"), > > > > > systemProperty("org.apache.unomi.itests.elasticsearch.cluster.name > > <http://org.apache.unomi.itests.elasticsearch.cluster.name> > > > <http://org.apache.unomi.itests.elasticsearch.cluster.name > > <http://org.apache.unomi.itests.elasticsearch.cluster.name > >>").value("contextElasticSearchITests"), > > > > > systemProperty("org.apache.unomi.itests.elasticsearch. > http.port").value("9400"), > > > > > systemProperty("org.apache.unomi.itests.elasticsearch. > bootstrap.seccomp").value("false"), > > > systemProperty("unomi.autoStart").value("true"), > > > features(karafPaxWebRepo, "shell"), > > > features(karafStandardRepo, "wrap"), > > > features(karafPaxWebRepo, "war"), > > > features(karafCxfRepo, "cxf"), > > > features(karafCellarRepo, "cellar"), > > > features(contextServerRepo, "unomi-kar"), > > > features(routerRepo, "unomi-router-karaf-feature"), > > > // we need to wrap the HttpComponents libraries > ourselves > > since the OSGi bundles > > > provided by the project are incorrect > > > wrappedBundle(mavenBundle("org.apache.httpcomponents", > > > "httpcore").versionAsInProject()), > > > wrappedBundle(mavenBundle(" > org.apache.httpcomponents", > > > "httpmime").versionAsInProject()), > > > wrappedBundle(mavenBundle(" > org.apache.httpcomponents", > > > "httpclient").versionAsInProject()) > > > }; > > > > > > It seems the problem is that the "unomi-router-karaf-feature" uses > the wrap > > > protocol but the resolver can't use it because it's also being > deployed as a > > > feature. It seems I need to specifiy it as a startup feature but I > don't know > > > how to achieve that. > > > > > > If you prefer to have a look at the repository, you can find the > full > > > integration test here : > > > > > > > > https://github.com/apache/incubator-unomi/tree/feature- > UNOMI-5-KARAF4-1/itests > > <https://github.com/apache/incubator-unomi/tree/feature- > UNOMI-5-KARAF4-1/itests> > > > > > > I'm quite stuck with this, so any help would be greatly > appreciated ! > > > > > > cheers, > > > Serge... > > > > > > > > > Serge Huber > > > CTO & Co-Founder > > > > > > > > > T +41 22 361 3424 <tel:%2B41%2022%20361%203424> > > > 9 route des Jeunes | 1227 Acacias | Switzerland > > > jahia.com <http://jahia.com> <http://www.jahia.com/> > > > SKYPE | LINKEDIN <https://www.linkedin.com/in/sergehuber > > <https://www.linkedin.com/in/sergehuber>> | TWITTER > > > <https://twitter.com/sergehuber <https://twitter.com/sergehuber > >> | VCARD > > > <http://www.jahia.com/vcard/HuberSerge.vcf > > <http://www.jahia.com/vcard/HuberSerge.vcf>> > > > > > > > > > > JOIN OUR COMMUNITY <http://www.jahia.com/> to evaluate, get > trained > > and to discover why Jahia is > > > a leading User Experience Platform (UXP) for Digital > Transformation. > > > > > > > -- > > Jean-Baptiste Onofré > > jbono...@apache.org <mailto:jbono...@apache.org> > > http://blog.nanthrax.net > > Talend - http://www.talend.com > > > > > > -- > Jean-Baptiste Onofré > jbono...@apache.org > http://blog.nanthrax.net > Talend - http://www.talend.com >