Hi,

I'm trying to integrate my OSGI application with Karaf 1.6.0 (windows xp 
environment) and tryng to find a way to create a custom distribution.
I don't use Maven.
I was able to succesfully use the features mechanism putting my features.xml 
file in the deploy directory. In the features.xml file bundles are retrieved 
using relative file:./xxx/yyy  paths. In this way features are automatically 
installed.

Then i tried putting the features.xml file in a different folder and to add a 
features repository in org.apache.felix.karaf.features.cfg, here is how the 
addition loooks:

featuresRepositories=mvn:org.apache.felix.karaf/apache-felix-karaf/1.6.0/xml/features,file:./base/features

or

featuresRepositories=mvn:org.apache.felix.karaf/apache-felix-karaf/1.6.0/xml/features,file:C:/DEV/karaf/base/features

And all possible variations( file:///C:/, file:///C|/ etc.)

When the file path seem to be correct i get the following exception:

14:34:51,203 | WARN  | rint Extender: 3 | FeaturesServiceImpl              | 
res.internal.FeaturesServiceImpl  654 | 23 - 
org.apache.felix.karaf.features.core - 1.6.0 | Unable to add features 
repository file:./base/features at startup
java.io.IOException
        at 
org.apache.felix.karaf.features.internal.RepositoryImpl.load(RepositoryImpl.java:164)
        at 
org.apache.felix.karaf.features.internal.FeaturesServiceImpl.internalAddRepository(FeaturesServiceImpl.java:172)
        at 
org.apache.felix.karaf.features.internal.FeaturesServiceImpl.start(FeaturesServiceImpl.java:652)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:230)
        at 
org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:803)
        at 
org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:580)
        at 
org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:693)
        at 
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:219)
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:147)
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:624)
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:315)
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:213)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)
Caused by: org.xml.sax.SAXParseException: Content is not allowed in prolog.
        at 
com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:239)
        at 
com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283)
        at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:124)
        at 
org.apache.felix.karaf.features.internal.RepositoryImpl.load(RepositoryImpl.java:93)
        ... 24 more

It seem like if the file path is correct but there is something wrong with the 
file. The fact is that the file is exactly the same that was before succesfully 
loaded by putting it in the deploy folder (tried several times).

Does anybody succesfully loaded features adding a local features repository 
using the file: mechanism ? The Karaf manual says it is possible.

Many thanks for any help 

Giacomo Coletta

Reply via email to