You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Minto van der Sluis (JIRA)" <ji...@apache.org> on 2013/10/14 18:14:42 UTC

[jira] [Commented] (KARAF-2519) karaf-maven-plugin ignores dependent feature repositories when building an assembly

    [ https://issues.apache.org/jira/browse/KARAF-2519?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13794236#comment-13794236 ] 

Minto van der Sluis commented on KARAF-2519:
--------------------------------------------

The following is copied from the mailing list:

I made some changes in a karaf fork. Basically the changes I made are: 

1) Split dependency processing into 2 separate phases: 
    - First phase to install kars and feature repositories recursively building a full map of all features present in the installed repositories (fullFeatureMap). 
    - Second run to process features like it was done before building a list of features to be installed (localRepoFeatures). 
2) Missing feature dependency handling 
    - Missing features are collected per repository (no longer a global list) 
    - Used a queue rather than a list since added recursive dependent features where not processed. 
    - Added additional feedback/logging to show which features are being processed. 
3) Collecting bundles features is simplified. 
    - Check for bundle.isDependency() is removed. IMHO there is no need to filter on dependency is true, since that would actually result in excluding these dependencies from the assembly. 
    - Removed redundant unused check, look for "test" in the original code 
    - reused install() method to do the actual artefact copying. 
4) Simplified execute() method by re-factoring stuff into separate methods. 

These changes can be found at: 

https://github.com/misl/karaf/blob/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/InstallKarsMojo.java

Also I added some TODO's in places where I think things could be improved 
even more. 

> karaf-maven-plugin ignores dependent feature repositories when building an assembly
> -----------------------------------------------------------------------------------
>
>                 Key: KARAF-2519
>                 URL: https://issues.apache.org/jira/browse/KARAF-2519
>             Project: Karaf
>          Issue Type: Bug
>          Components: karaf-tooling
>    Affects Versions: 3.0.0.RC1
>            Reporter: Minto van der Sluis
>
> Feature repositories in features.xml files are not processed recursively:
> <features name="wicketkaraf" version="1.0.0-SNAPSHOT"> 
> <repository>mvn:org.ops4j.pax.wicket/paxwicket/3.0.1/xml/features</repository> 
> <repository>mvn:org.ops4j.pax.wicket/features/3.0.1/xml/features</repository> 
>   ... 
> As a result dependent features might be missing since there is no other way to find their corresponsing bundles. The only work around it to add all dependent feature repositories as features (classifier) dependencies to your pom and add the needed features as bootFeatures to the karaf-maven-plugin configuration.
> See mailing list discussion as well: http://karaf.922171.n3.nabble.com/How-to-include-all-dependencies-in-karaf-assembly-tt4029728.html



--
This message was sent by Atlassian JIRA
(v6.1#6144)