Alex:  M2E is what builds on save for eclipse and bndtools integrates to
m2e
https://www.slideshare.net/mfrancis/bndtools-and-maven-a-brave-new-world-n-bartlett-t-ward
With the commands Christian gave to add a bundle to a running karaf and
watch the bundle then karaf should correctly watch for updates of your
bundles in your local repository.  My guess is that bnd is using its plugin
to deploy to a local maven repository and that is running in m2e but your
other projects are only running mvn compile on save rather than mvn deploy
or mvn install.  I would look into m2e and see if there is a way to deploy
on save or have karaf watch the bundles in your target directory rather
than your local maven repo.

Kamil:  The procedure Christian described is similar to what I use as it is
easiest for debugging and getting compile time checks for me.  I have a
separate maven module that builds a kar and does not use bnd.  It just uses
the feature.xml to put everything together.  The inconvenient part is that
I have to maintain my features.xml file and my bndrun separately when the
purpose of both is to curate a repository for my project.

David

On Fri, Feb 15, 2019 at 8:19 AM Alex Weirig <alex.wei...@technolink.lu>
wrote:

> Hi Christian,
>
> I'm not sure if I'm missing something obvious ... in my project I have a
> few bundles that have to be maven based (Vaadin related projects, so they
> need to build using maven).
>
> When I change code in my regular bndtools workspace related projects,
> whenever I save code it get's automatically build and deployed to my local
> maven repository.
>
> This is unfortunately not the case with the maven projects, I always have
> to manually build the project in order to make it deploy ... and the maven
> build is way slower than the bnd(tools) build... As I only have a couple of
> hours per week to focus on development, I don't want to spend that time
> waiting for maven :-)
>
> Is that different with the "maven build of bndtools" enroute is using...
> I'm ashamed but I still couldn't find the time to look into that new
> approach after Eclipse/OSGi Con last year ... so maybe I'm still
> complaining about things that are actually solved.
>
> Thanks
>
>
> Mat frëndleche Gréiss,
> Mit freundlichen Grüßen,
> Meilleures salutations,
> Kind regards,Alex WeirigResponsable Technique
> Ville de Luxembourg
> Service Enseignement
> Centre Technolink
> *Tel* +352 4796 - 6127 <+35247966127>*Fax* +352 42 88 81*Email* 
> alex.wei...@technolink.luwww.vdl.lu // www.technolink.lu
>
> Centre Technolink
> 2, rue Charles de Tornaco
> L-2623 LUXEMBOURG
>
> On 15/02/2019 13:03, Christian Schneider wrote:
>
> I agree with Alex about using bundle:watch. It gives you a similar
> experience like bndtools once your bundles are running in karaf.
> To get the bundles running easier I propose you also create a karaf
> feature in your build.
>
> I also propose you move away from the bndtools workspace model and instead
> use the maven build of bndtools like enroute now shows. It is much nearer
> to how karaf projects are built.
>
> One other thing that might come handy is to start karaf with the "debug"
> argument. This opens karaf for remote debugging and allows you to also
> debug your bundles easily. Basically it is like running the bndtools
> starter in debug mode.
>
> Christian
>
> Am Fr., 15. Feb. 2019 um 12:55 Uhr schrieb Alex Weirig <
> alex.wei...@technolink.lu>:
>
>> Hi Kamil,
>>
>> let me try and see if this can already help you, it's very basic but
>> works really fine depending on the scope / size of your development project
>> ... this is based on bnd(tools) 4.0.0 but should still be valid in 4.1.0 I
>> guess.
>>
>> If you look at your build.bnd file in your bndtools workspace, make sure
>> you have the following plugin defined:
>>
>> -plugin.5.LocalMaven: \
>>     aQute.bnd.repository.maven.provider.MavenBndRepository; \
>>         name = *LocalMaven*
>>
>> then you define the buildRepo:
>>
>> -buildrepo: \
>>     *LocalMaven*
>>
>> finally set some maven data:
>>
>> -pom: \
>>     groupid    =    *your.group*,\
>>     version =    ${versionmask;===;${@version}}-SNAPSHOT
>>
>>
>> Now when bnd(tools) builds your project it should end up in your local
>> maven repository (your home folder/.m2/repository/*your/group*). So no
>> need to gradle here.
>>
>> You can now run a karaf on your local machine and install your bundles
>> using:
>>
>> bundle:install mvn:your.group/your bundle name here/version here
>>
>> as you're doing right now.
>>
>> Now you can tell karaf to monitor your bundles:
>>
>> bundle:watch --start *
>>
>> Thus, whenever you change any line of code in your Eclipse, bnd(tools)
>> will compile the code, build the bundle and deploy it to your local maven
>> repo. Karaf will notice the change and update the bundle to the latest
>> version. You can return to karaf and immediately test your updated code.
>>
>> I find this is a really nice and efficient way to do development without
>> too much overhead (well you need to run the bundle:watch --start * after
>> every restart of karaf but maybe there's also a way to work around it.
>>
>> You don't have to deal with maven (which I am convinced is more of a
>> problem than a solution), except for setting your groupid and version
>> pattern and having the build bundles deployed in your local maven
>> repository.
>>
>> I'm sure this is not a valid approach if you're working with a large team
>> where everybody needs to rely on somebody else's code and you have a
>> complete CI chain etc etc.
>>
>>
>> You can improve deployment by building a karaf feature (
>> https://karaf.apache.org/manual/latest/provisioning), that's merely an
>> xml file using your local maven repo to retrieve the bundle.
>>
>> You create your feature_file.xml, copy it to the "deploy" folder in karaf
>> and then run a feature:install your_feature_name to install one of the
>> features containing the different bundles.
>>
>> Hope it helps ... hope it is not too basic for your needs.
>>
>>
>> Mat frëndleche Gréiss,
>> Mit freundlichen Grüßen,
>> Meilleures salutations,
>> Kind regards,Alex WeirigResponsable Technique
>> Ville de Luxembourg
>> Service Enseignement
>> Centre Technolink
>> *Tel* +352 4796 - 6127 <+35247966127>*Fax* +352 42 88 81*Email* 
>> alex.wei...@technolink.luwww.vdl.lu // www.technolink.lu
>>
>> Centre Technolink
>> 2, rue Charles de Tornaco
>> L-2623 LUXEMBOURG
>>
>> On 15/02/2019 12:29, Kamil Paśko wrote:
>>
>> Dear JB,
>>
>> > Do you already know what you have in mind (if you could describe the use
>> case, that would be great) ?
>>
>> I know that this could be silly problem, but I'm new to Karaf, new to
>> Bndtools and new to OSGi (I begun my research week ago).
>> That is why I decided to search for tutorials and examples first.
>> But if you ask (it's very kind), then I have two use cases:
>>
>> Case 1:
>> Background:
>> I've learnt how to use Bndtools workspace in Eclipse and how to run
>> examples directly in Eclipse IDE (https://bndtools.org/tutorial.html).
>> Unfortunatelly, default OSGi runtime is Felix with Gogo shell.
>> Problem:
>> How to configure Bndtools workspace to use Karaf (that I have somewhere
>> in my filesystem) instead of default Felix runtime?
>>
>> Case 2:
>> Background
>> I've learn how to use Bnd Gradle plugin (
>> https://github.com/bndtools/bnd/tree/master/biz.aQute.bnd.gradle#replacing-use-of-gradles-deprecated-osgi-plugin)
>> to create bundles and I used Gradle's maven publish plugin to publish them
>> to Maven's local repo. Then I install them in Karaf one by one using
>> bundle:install mvn:xxx/yyy/zzz command
>> Problem:
>> a) How to create set of bundles (feature) in Bnd?
>> b) How to deploy this to Karaf without manually executing bundle:install
>> commands?
>>
>> Thank you in advance,
>> Kamil
>>
>>
>> On Thu, Feb 14, 2019 at 1:37 PM Jean-Baptiste Onofré <j...@nanthrax.net>
>> wrote:
>>
>>> Hi,
>>>
>>> We didn't move forward a lot. I remember there was some discussion to
>>> have a "Karaf exporter" in bndtools and I proposed my help on this.
>>> I didn't move forward yet.
>>>
>>> Do you already know what you have in mind (if you could describe the use
>>> case, that would be great) ?
>>>
>>> Regards
>>> JB
>>>
>>> On 14/02/2019 13:20, kamilantlgc wrote:
>>> > Dear Karaf User group,
>>> >
>>> > I have stumbled upon the exact problem - how to join Karaf and Bndtools
>>> > together "the right way" (this conversation is the first result in
>>> Google by
>>> > the way: https://www.google.com/search?q=karaf+bnd).
>>> >
>>> > I've read the topic and was happy to see that Guillaume asked to fill
>>> Jira
>>> > issue.
>>> > Then I've read with interest that JB is just "building the new
>>> SNAPSHOT to
>>> > test if the couple of issues".
>>> > And then I navigated to the issue created by dleangen
>>> > (https://issues.apache.org/jira/browse/KARAF-4160) just to see that
>>> it's
>>> > status is "Won't fix"...
>>> >
>>> > Anyway - does anybody on this group already figured it out how to join
>>> Karaf
>>> > and Bnd to play nicely together?
>>> >
>>> > Kind regards,
>>> > Kamil
>>> >
>>> >
>>> >
>>> > --
>>> > Sent from: http://karaf.922171.n3.nabble.com/Karaf-User-f930749.html
>>> >
>>>
>>> --
>>> Jean-Baptiste Onofré
>>> jbono...@apache.org
>>> http://blog.nanthrax.net
>>> Talend - http://www.talend.com
>>>
>>
>
> --
> --
> Christian Schneider
> http://www.liquid-reality.de
>
> Computer Scientist
> http://www.adobe.com
>
>

Reply via email to