Is that package of this class explicitly exported? Especially if it's one of the embedded ones!
Regards, Achim 2015-08-28 12:25 GMT+02:00 Benson Margulies <[email protected]>: > I ended up using 'embed' to eliminate the use of wrap. > > Now I'm fighting with a 'class not found' error where the test probe > is trying to use one of the classes in one of the bundles in my > feature. > > > On Fri, Aug 28, 2015 at 4:16 AM, Achim Nierbeck <[email protected]> > wrote: > > As you allready realized that all your features are boot-features you > also > > need to install the wrap feature prior to your own features, > > that's where the new prerequisite=true flag comes in handy. > > So you'll need to use the following in the feature where you use the wrap > > featuer. > > > > <feature prerequisite="true">wrap</feature> > > > > reagards, Achim > > > > 2015-08-28 7:02 GMT+02:00 Jean-Baptiste Onofré <[email protected]>: > >> > >> The problem doesn't seem related to wrap but more for file. It sounds > like > >> one of your boot feature use wrap:file, but Karaf tries to download from > >> Maven anyway. AFAIR, we fixed something around that: can you make a try > with > >> Karaf 4.0.2-SNAPSHOT ? > >> > >> Regards > >> JB > >> > >> > >> On 08/28/2015 02:26 AM, Benson Margulies wrote: > >>> > >>> This is a pax-exam 4.6.0 test using the karaf container, version 4.0.1. > >>> > >>> pax-url-wrap is in the classpath, though I wouldn't have thought that > >>> mattered; excluding it did not help. > >>> > >>> The test pauses for a long time after loading > >>> org.ops4j.pax.exam.inject, and then starts complaining as follows. The > >>> point it which it pauses varies from attempt to attempt. > >>> > >>> There is a blueprint service in the thing I'm trying to test. > >>> > >>> The first log message quoted might suggest that it is trying to > >>> install my feature that requires includes a wrapped bundle before > >>> installing the 'wrap' feature. > >>> > >>> I am pasting my config method at the end; I don't know how my feature > >>> gets to the front of the list. > >>> > >>> 2015-08-27 20:22:24,368 | INFO | pool-1-thread-1 | > >>> FeaturesServiceImpl | 8 - org.apache.karaf.features.core > >>> - 4.0.1 | Adding features: test-dependencies/[0,0.0.0], > >>> instance/[4.0.1,4.0.1], package/[4.0.1,4.0.1], > >>> > rosapi-front-end-mongodb-request-tracker/[1.5.0.SNAPSHOT,1.5.0.SNAPSHOT], > >>> log/[4.0.1,4.0.1], ssh/[4.0.1,4.0.1], aries-blueprint/[4.0.1,4.0.1], > >>> exam/[4.6.0,4.6.0], system/[4.0.1,4.0.1], feature/[4.0.1,4.0.1], > >>> management/[4.0.1,4.0.1], shell/[4.0.1,4.0.1], service/[4.0.1,4.0.1], > >>> jaas/[4.0.1,4.0.1], deployer/[4.0.1,4.0.1], diagnostic/[4.0.1,4.0.1], > >>> shell-compat/[4.0.1,4.0.1], bundle/[4.0.1,4.0.1], > >>> config/[4.0.1,4.0.1], kar/[4.0.1,4.0.1], wrap/[0,0.0.0] > >>> > >>> ... > >>> > >>> > >>> > >>> > >>> > >>> 015-08-27 20:07:15,106 | ERROR | pool-1-thread-1 | > >>> BootFeaturesInstaller | 8 - org.apache.karaf.features.core > >>> - 4.0.1 | Error installing boot features > >>> org.apache.karaf.features.internal.util.MultiException: Error > >>> at > >>> > org.apache.karaf.features.internal.download.impl.MavenDownloadManager$MavenDownloader.<init>(MavenDownloadManager.java:84)[8:org.apache.karaf.features.core:4.0.1] > >>> at > >>> > org.apache.karaf.features.internal.download.impl.MavenDownloadManager.createDownloader(MavenDownloadManager.java:72)[8:org.apache.karaf.features.core:4.0.1] > >>> at > >>> > org.apache.karaf.features.internal.region.Subsystem.downloadBundles(Subsystem.java:358)[8:org.apache.karaf.features.core:4.0.1] > >>> at > >>> > org.apache.karaf.features.internal.region.Subsystem.downloadBundles(Subsystem.java:355)[8:org.apache.karaf.features.core:4.0.1] > >>> at > >>> > org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:191)[8:org.apache.karaf.features.core:4.0.1] > >>> at > >>> > org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:263)[8:org.apache.karaf.features.core:4.0.1] > >>> at > >>> > org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1079)[8:org.apache.karaf.features.core:4.0.1] > >>> at > >>> > org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:975)[8:org.apache.karaf.features.core:4.0.1] > >>> at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_05] > >>> at > >>> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_05] > >>> at > >>> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_05] > >>> at java.lang.Thread.run(Thread.java:745)[:1.8.0_05] > >>> Caused by: java.io.IOException: Error downloading > >>> > >>> > wrap:file:/Users/benson/.m2/repository/com/basistech/rosette/rosette-api-model/ > 0.5.0.1/rosette-api-model-0.5.0.1.jar > >>> at > >>> > org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:67)[8:org.apache.karaf.features.core:4.0.1] > >>> at > >>> > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_05] > >>> at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_05] > >>> at > >>> > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)[:1.8.0_05] > >>> at > >>> > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)[:1.8.0_05] > >>> ... 3 more > >>> Caused by: java.io.IOException: Could not download > >>> > >>> > [wrap:file:/Users/benson/.m2/repository/com/basistech/rosette/rosette-api-model/ > 0.5.0.1/rosette-api-model-0.5.0.1.jar] > >>> at > >>> > org.apache.karaf.features.internal.download.impl.SimpleDownloadTask.download(SimpleDownloadTask.java:90)[8:org.apache.karaf.features.core:4.0.1] > >>> at > >>> > org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:58)[8:org.apache.karaf.features.core:4.0.1] > >>> ... 7 more > >>> Caused by: java.net.MalformedURLException: Unknown protocol: wrap > >>> at java.net.URL.<init>(URL.java:620)[:1.8.0_05] > >>> at java.net.URL.<init>(URL.java:483)[:1.8.0_05] > >>> at java.net.URL.<init>(URL.java:432)[:1.8.0_05] > >>> at > >>> > org.apache.karaf.features.internal.download.impl.SimpleDownloadTask.download(SimpleDownloadTask.java:62)[8:org.apache.karaf.features.core:4.0.1] > >>> ... 8 more > >>> Caused by: java.lang.IllegalStateException: Unknown protocol: wrap > >>> at > >>> > org.apache.felix.framework.URLHandlersStreamHandlerProxy.parseURL(URLHandlersStreamHandlerProxy.java:373)[org.apache.felix.framework-5.0.1.jar:] > >>> at java.net.URL.<init>(URL.java:615)[:1.8.0_05] > >>> ... 11 more > >>> Caused by: java.io.IOException: Error downloading > >>> > >>> > wrap:file:/Users/benson/.m2/repository/com/basistech/rosette/rosette-api-model/ > 0.5.0.1/rosette-api-model-0.5.0.1.jar > >>> > >>> @Configuration > >>> public static Option[] paxConfiguration() { > >>> String basedir = System.getProperty("basedir", "."); > >>> mongoUri = new > >>> MongoClientURI(String.format("mongodb://localhost:%d/%s", mongoPort, > >>> DB_NAME)).getURI(); > >>> String version = System.getProperty("project.version"); > >>> String karafVersion = System.getProperty("karaf.version"); > >>> MavenUrlReference karafStandardRepo = maven() > >>> .groupId("org.apache.karaf.features") > >>> .artifactId("standard") > >>> .version(karafVersion) > >>> .classifier("features") > >>> .type("xml"); > >>> return new Option[]{ > >>> > >>> > karafDistributionConfiguration().karafVersion(karafVersion).name("Apache > >>> Karaf") > >>> > >>> > >>> > .frameworkUrl(maven().groupId("org.apache.karaf").artifactId("apache-karaf").type("zip").versionAsInProject()) > >>> .useDeployFolder(false) > >>> .unpackDirectory(new File(basedir, "target/pax")), > >>> features(karafStandardRepo , "wrap"), > >>> configureConsole().ignoreLocalConsole(), > >>> keepRuntimeFolder(), > >>> logLevel(LogLevelOption.LogLevel.INFO), > >>> // The plugin runs Karaf from target/pax/UUID directory. > >>> // Communicate the pipeline config file via the config admin > >>> file. > >>> // We could also put a worker thread count in here and even > >>> check it. > >>> new > >>> > KarafDistributionConfigurationFilePutOption("etc/com.basistech.ws.requestracker.cfg", > >>> "mongoUri", mongoUri), > >>> editConfigurationFileExtend("etc/config.properties", > >>> "org.apache.aries.blueprint.synchronous", "true"), > >>> features(maven("com.basistech.ws", > >>> "rosapi-front-end-mongodb-request-tracker") > >>> .classifier("features").type("xml").version(version), > >>> "rosapi-front-end-mongodb-request-tracker"), > >>> junitBundles(), > >>> systemProperty("pax.exam.osgi.unresolved.fail").value("true"), > >>> > >>> > systemProperty("org.ops4j.pax.logging.DefaultServiceLog.level").value("INFO") > >>> }; > >>> } > >>> > >> > >> -- > >> Jean-Baptiste Onofré > >> [email protected] > >> http://blog.nanthrax.net > >> Talend - http://www.talend.com > > > > > > > > > > -- > > > > Apache Member > > Apache Karaf <http://karaf.apache.org/> Committer & PMC > > OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer > & > > Project Lead > > blog <http://notizblog.nierbeck.de/> > > Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> > > > > Software Architect / Project Manager / Scrum Master > > > -- Apache Member Apache Karaf <http://karaf.apache.org/> Committer & PMC OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer & Project Lead blog <http://notizblog.nierbeck.de/> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> Software Architect / Project Manager / Scrum Master
