Kai Reichert created KARAF-3019:
-----------------------------------

             Summary: karaf-maven-plugin cannot handle all types of mvn urls
                 Key: KARAF-3019
                 URL: https://issues.apache.org/jira/browse/KARAF-3019
             Project: Karaf
          Issue Type: Bug
          Components: karaf-tooling
    Affects Versions: 3.0.1
            Reporter: Kai Reichert
            Priority: Minor


Some feature files list bundle references with maven repository urls.
For example the apache-camel-2.13.1 feature file contains:

{code:language=xml}
<feature name='camel-script-groovy' version='2.13.1' resolver='(obr)' 
start-level='50'>
    
<bundle>mvn:http://scriptengines.googlecode.com/svn/m2-repo/!com.google.code.scriptengines/scriptengines-groovy/1.1</bundle>
…
{code}

There is no problem if you install such a feature from the karaf shell. I think 
karaf uses the pax url handler internally (see 
[https://ops4j1.jira.com/wiki/display/paxurl/Mvn+Protocol]) which handles 
repository urls, too.

But if you try to provision a new karaf distribution with maven and the 
{{karaf-assembly}} packaging type, those urls cannot be resolved. 

Just try to include the bootFeature {{camel-script-groovy}} and you get the 
following error:

{noformat}
[ERROR] Failed to execute goal 
org.apache.karaf.tooling:karaf-maven-plugin:3.0.1:install-kars 
(default-install-kars) on project karaf3-distribution: Couldn't resolve 
artifact 
mvn:http://scriptengines.googlecode.com/svn/m2-repo/!com.google.code.scriptengines/scriptengines-groovy/1.1:
 Could not find artifact 
mvn:http:jar://scriptengines.googlecode.com/svn/m2-repo/!com.google.code.scriptengines/scriptengines-groovy/1.1
 in central (http://repo1.maven.org/maven2) -> [Help 1]
{noformat}

If the plugin cannot or even should not try to include the maven repository it 
could just ignore it in the resolution process (strip of the repository 
information from the url) and report the repo url as a warning.
The missing reference to the repository can then be included in the {{pom.xml}} 
file. 

I removed the repository information in the feature file inside my local maven 
repository for testing purposes, included the missing repository in the 
{{pom.xml}} file and the karaf-plugin was able to install the feature. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to