Jerry Meng created KARAF-4100:
---------------------------------
Summary: [karaf-3.0.x] Error resolving artifact of feature due to
org.ops4j.pax.url.mvn.cfg is not loaded yet
Key: KARAF-4100
URL: https://issues.apache.org/jira/browse/KARAF-4100
Project: Karaf
Issue Type: Bug
Components: karaf-feature
Affects Versions: 3.0.5
Reporter: Jerry Meng
I set the mvn repository to the karaf_home/system directory in
org.ops4j.pax.url.mvn.cfg.
However, I found there is a chance that Karaf was trying to access the Internet
and threw an exception since it's a closed environment.
{code}
Error resolving artifact
org.apache.karaf.features:enterprise:xml:features:3.0.4: Could not transfer
artifact org.apache.karaf.features:enterprise:xml:features:3.0.4 from/to
(http://mvn.mycompany.net/content/groups/public): Not authorized ,
ReasonPhrase:Unauthorized.
{code}
Root Cause
=========
Through further tracking, the root cause may happen in
org.ops4j.pax.url.mvn.internal.Activator (pax-url-aether). The pax url fails to
load org.ops4j.pax.url.mvn.cfg before Karaf connects the feature url. Therefore
Karaf ignores my settings in the configuration file but tries to access default
remote repository. Here are some logs to describe the situation...
{code}
1. activator.updated.dictionary: null
2. updated directory from safeRegisterService: null
3. activator.openConnection:
mvn:org.apache.karaf.features/enterprise/3.0.4/xml/features
4. Unable to add features repository
mvn:org.apache.karaf.features/enterprise/3.0.4/xml/features at startup
5. updated directory from safeRegisterService:
{felix.fileinstall.filename={file:/D:/karaf/etc/org.ops4j.pax.url.mvn.cfg... }
6. activator.updated.dictionary:
{felix.fileinstall.filename={file:/D:/karaf/etc/org.ops4j.pax.url.mvn.cfg... }
{code}
Workaround
=========
I'm not sure if I should call this a bug, but in my case I can assume
org.ops4j.pax.url.mvn.cfg is existent definitely.
Therefore, I make Activator.openConnection to wait if the Dictionary is not set.
Then invoke notifyAll in Activator.updated after receiving an non-null
Dictionary.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)