Hi,
I will try to better explain what happens.
When starting the bundle OPS4J Pax Url - mvn:, the constructor use a default
configuration which is not the configuration in the file
etc/org.ops4j.pax.url.mvn.cfg. (MavenSettingsImpl is called by the start of
the bundle) and i think the mvn: protocol resolver will be available at this
time
It seems that the protocol resolver will be configured later by the
Configuration Admin Service.
If i keep the list of tasks i have this [ManagedService Update:
pid=org.ops4j.pax.url.mvn, ManagedService Update:
pid=org.ops4j.pax.url.wrap, ManagedService Update:
pid=org.ops4j.pax.logging, ManagedServiceFactory Update:
factoryPid=org.apache.felix.fileinstall, Update: pid=org.ops4j.pax.url.mvn,
Update: pid=org.apache.karaf.shell, Update: pid=org.ops4j.pax.logging,
Update: pid=org.apache.karaf.log, Update: pid=org.apache.karaf.features,
Update: pid=org.apache.aries.transaction, Update:
pid=org.apache.karaf.management, Update: pid=org.apache.servicemix.jbi,
Update:
pid=org.apache.felix.fileinstall.f08b29c2-309d-42d4-9dfa-4595819b8a16,
ManagedServiceFactory Update: factoryPid=org.apache.aries.transaction]
(I think when calling the task ManagedService Update:
pid=org.ops4j.pax.url.mvn (which also called the activator of OPS4J Pax Url
- mvn:) . This idea comes to me because one of next service called will be
ManagedService Update: pid=org.ops4j.pax.logging and at this time my logging
configuration is not working.
I have seen that an event is fired when running Update:
pid=org.ops4j.pax.url.mvn.
But before calling ManagedService Update: pid=org.ops4j.pax.url.mvn, the
bundle Features Core can be started which in my case needs to be well
configured because i have more than one repository.
The start method (which is called by blueprint) use featureRepositories to
have the different features files and try to list all the features
available.
for example : featuresRepositories=file:conf/Example/example_features.xml
But in this file, i use the mvn protocol (it is an extract):
<features>
<repository>mvn:org.apache.karaf/apache-karaf/2.0.0/xml/features</repository>
<feature name="commonsDbcp">
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-dbcp/1.2.2_5</bundle>
</feature>
</features>
When he tries to resolve the repository it fails because he can't find the
features file whereas it is in the system directory and the
the file org.ops4j.pax.url.mvn.cfg is configured with the default :
org.ops4j.pax.url.mvn.defaultRepositories=file:${karaf.home}/${karaf.default.repository}@snapshots
And when the threads are called in the right order there is no problem (When
org.apache.felix.cm.impl.UpdaterThread is not blocked because of slow IO or
breakpoint).
I hope this time, i am more clear. The mechanism of configuration seems to
be quiet complex and i try to understand it.
PS : Sorry for useless noise, I prefer using forum to be able to edit some
things i wrote but not possible here.