Note that those goals have some problems in karaf 2.x (not bugs, but
rather by design).  This is being worked out for 3.x and
auto-generation of features descriptors should be much better.

On Fri, Jun 10, 2011 at 16:24, Andreas Pieber <anpie...@gmail.com> wrote:
> Well, there are two goals in the Karaf Maven Plugin which might do
> what you want ([1] and [2]). Please check if they do what you like.
> I've never used them but they should be able to automatically generate
> the feature files including dependencies.
>
> Kind regards,
> Andreas
>
> [1] 
> http://svn.apache.org/repos/asf/karaf/tags/karaf-2.2.1/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateFeaturesFileMojo.java
> [2] 
> http://svn.apache.org/repos/asf/karaf/tags/karaf-2.2.1/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojo.java
>
> On Fri, Jun 10, 2011 at 3:46 PM, Houkes, Fulco <fulco.hou...@efgbank.com> 
> wrote:
>> Andreas,
>>
>> Thanks a lot for the quick answer, I appreciate!
>>
>> In a short time I guess I've no other choice to add all dependencies in the 
>> features descriptions.
>>
>> I understand that for a single custom bundle it's important to keep control 
>> of all dependencies. However, for bigger projects like a custom distribution 
>> of Karaf with a bunch of home-developed bundles, it would be nice to have an 
>> automatic way for enumerating all needed JAR libs as it's the case when 
>> building a WAR project. Keeping track of all dependencies and sub 
>> dependencies of all project's bundles might quickly become a nightmare.
>>
>> Is there any project (I'm not aware of) or planned development (maven build 
>> plugin) for providing such capabilities?
>>
>> Cheers,
>> Fulco
>>
>>
>> -----Original Message-----
>> From: Andreas Pieber [mailto:anpie...@gmail.com]
>> Sent: vendredi, 10. juin 2011 12:40
>> To: user@karaf.apache.org
>> Subject: Re: Bundle dependencies
>>
>> Hey Fulco,
>>
>> Short answer: The clean way to go here is to define all bundles required in 
>> your features.xml. Everything else could generate a GREAT mess, because (for 
>> example) not all deps have to be osginized, not all deps import versions 
>> correctly (which leads to some problems since transitive dependencies could 
>> pull in various versions of the same bundles into Karaf) and several other 
>> issues...
>>
>> Kind regards,
>> Andreas
>>
>> On Fri, Jun 10, 2011 at 12:29 PM, Houkes, Fulco <fulco.hou...@efgbank.com> 
>> wrote:
>>> Hi folks,
>>>
>>>
>>>
>>> I'm relatively new to Karaf and I'm struggling since a few days about
>>> solving a problem of dependencies. I don't know if I'm doing something
>>> wrong, if it's a proxy issue or if it's not handled by Karaf
>>> Provisioning. I didn't found any previous post about this in the mailing 
>>> list.
>>>
>>>
>>>
>>> My problem is that I'm building a custom bundle, which I can
>>> successfully deploy in Karaf, but  the dependencies of this bundle
>>> aren't deployed and the bundle won't start. I tried to make a feature
>>> of this bundle by adding the direct dependencies as
>>> <bundle>mvn:....</bundle> entries. All these dependencies are deployed
>>> now in the system/ repo, however the dependencies of the dependencies
>>> are not deployed. This will be a recurrent issue until reaching the end of 
>>> the dependencies chain.
>>>
>>>
>>>
>>> Do I have to include all dependencies (and all dependencies of
>>> dependencies
>>> of...) as a <bundle>mvn:....</bundle> entry in my feature description?  Or
>>> did I overlooked a way to do it automatically? Or should Karaf
>>> automatically try do get those dependencies from the MVN repositories
>>> defined in the 'org.ops4j.pax.url.mvn.repositories' property?
>>>
>>>
>>>
>>> Many thanks in advance for any help :)
>>>
>>>
>>>
>>> Cheers,
>>>
>>> Fulco
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> For information, I'm using Karaf 2.2.1 and Maven 3 for my project. My
>>> bundle's POM contains the following dependencies:
>>>
>>> <dependencies>
>>>     <dependency>
>>>         <groupId>org.springframework.ldap</groupId>
>>>         <artifactId>org.springframework.ldap</artifactId>
>>>         <version>1.3.0.RELEASE </version>
>>>     </dependency>
>>>     <dependency>
>>>         <groupId>com.thoughtworks.xstream</groupId>
>>>
>>> <artifactId>com.springsource.com.thoughtworks.xstream</artifactId>
>>>         <version> 1.3.1 </version>
>>>     </dependency>
>>> </dependencies>
>>>
>>> And the JAR file is build by the maven-bundle-plugin, configured like
>>>
>>> <plugin>
>>>     <groupId>org.apache.felix</groupId>
>>>     <artifactId>maven-bundle-plugin</artifactId>
>>>     <extensions>true</extensions>
>>>     <configuration>
>>>         <instructions>
>>>
>>> <Bundle-SymbolicName>${bundle.symbolicName}</Bundle-SymbolicName>
>>>             <Bundle-Version>${project.version}</Bundle-Version>
>>>
>>> <Export-Package>${bundle.namespace}.*;version="${project.version}"</Ex
>>> port-Package>
>>>         </instructions>
>>>     </configuration>
>>> </plugin>
>>>
>>> I followed the Custom distribution guide. The feature-maven-plugin
>>> configuration looks like:
>>>
>>> <plugin>
>>>     <groupId>org.apache.karaf.tooling</groupId>
>>>     <artifactId>features-maven-plugin</artifactId>
>>>     <executions>
>>>         <execution>
>>>             <id>add-features-to-repo</id>
>>>            <phase>generate-resources</phase>
>>>             <goals>
>>>                 <goal>add-features-to-repo</goal>
>>>             </goals>
>>>             <configuration>
>>>                 <descriptors>
>>>
>>> <descriptor>mvn:org.apache.karaf.assemblies.features/standard/2.2.1/xm
>>> l/features</descriptor>
>>>
>>> <descriptor>mvn:com.myapps/features/${myapps.release}/xml/features</de
>>> scriptor>
>>>                 </descriptors>
>>>
>>>                 <features>
>>>                     <feature>config</feature>
>>>                     <feature>ssh</feature>
>>>                     <feature>management</feature>
>>>                     <feature>jetty</feature>
>>>                     <feature>webconsole</feature>
>>>                     <feature>war</feature>
>>>                     <feature>spring</feature>
>>>                     <feature>spring-web</feature>
>>>                     <feature>spring-dm</feature>
>>>                     <feature>spring-dm-web</feature>
>>>
>>>                     <feature>my-custom-bundle</feature>
>>>                 </features>
>>>
>>>
>>> <includeMvnBasedDescriptors>true</includeMvnBasedDescriptors>
>>>                 <repository>target/features-repo</repository>
>>>                 <addTransitiveFeatures>true</addTransitiveFeatures>
>>>             </configuration>
>>>         </execution>
>>>     </executions>
>>> </plugin>
>>>
>>> I tried to add the includeMvnBasedDescriptors and
>>> addTransitiveFeatures tags, but it doesn't seem to fix the problem.
>>>
>>> I also customized the org.ops4j.pax.ulr.mvn.cfg file, so that the
>>> proxy support is enabled and that the 'org.ops4j.pax.url.mvn.settings'
>>> and 'org.ops4j.pax.url.mvn.localRepository' properties are correctly
>>> set to my local repository and maven settings (where my proxy is defined).
>>>
>>> My feature description looks like:
>>>
>>> <feature name="myFeature" version="${myapps.release}"
>>> resolver="(orb)">
>>>
>>> <bundle>mvn:org.springframework.ldap/org.springframework.ldap/1.3.0.RE
>>> LEASE
>>> </bundle>
>>>
>>> <bundle>mvn:com.thoughtworks.xstream/com.springsource.com.thoughtworks
>>> .xstream/1.3.1</bundle>
>>>     <bundle>mvn:com.myapps/myapps/${myapps.release}</bundle>
>>> </feature>
>>>
>>>
>>>
>>> ==== The EFG Mail Gateway made the following annotation ==== This
>>> e-mail is confidential. If you are not the intended recipient, you
>>> should not copy it, re-transmit it, use it or disclose its contents,
>>> but should return it to the sender immediately and delete the copy
>>> from your system.
>>> EFG is not responsible for, nor endorses, any opinion, recommendation,
>>> conclusion, solicitation, offer or agreement or any information
>>> contained in this communication.
>>> EFG cannot accept any responsibility for the accuracy or completeness
>>> of this message as it has been transmitted over a public network.
>>> If you suspect that the message may have been intercepted or amended,
>>> please call the sender. Should you require any further information,
>>> please contact the Compliance Manager on off...@efggroup.com.
>>> ======================================================================
>>> ========
>>>
>>
>>
>>
>



-- 
------------------------
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
Open Source SOA
http://fusesource.com

Reply via email to