Regarding the non" mvn:" protocols, I guess I'll either have to stop
using them as part of features or somehow exclude them fromthe
features-maven-plugin and handle them manually. It's a shame though...
Wouldn't it be a reasonable enhancement to the plugin to be able to
skip leading protocols as long as" mvn:" is present further down the
url?

Regarding maven 3, I think it can only be a matter of timing. Sooner
or later it should/must be supported. I think maven 3 compatibility
should also be added to the "todo list" (JIRA I guess).

/Bengt


2010/5/6 Guillaume Nodet <[email protected]>:
> I'm not aware of any effort related to maven 3 yet.
>
> As for the war and ipojo protocols, i don't think it would work well.  The
> features plugin try to generate a list of bundles using the mvn protocol
> only iirc.  And if you use something else, it won't be able to understand
> and find the required dependencies.
>
> I fear you may run into more problems trying to use the plugin than
> maintaining the feature manually.
>
> On Thu, May 6, 2010 at 14:38, Bengt Rodehav <[email protected]> wrote:
>
>> I also have another problem with the plugin. I don't seem to be able
>> to run it using maven 3 beta. I get the following error:
>>
>> [ERROR] Failed to execute goal
>> org.apache.felix.karaf.tooling:features-maven-plu
>> gin:1.4.0:add-features-to-repo (add-features-to-repo) on project assembly:
>> Error
>>  populating repository: unknown protocol: null -> [Help 1]
>>
>> Note that I get this error even if I remove all references to "ipojo:"
>> and "war:". It seems to be a completely different problem. The plugin
>> works using maven 2.2.1 but we are in the process of migrating to
>> maven 3 and try to make sure that all our pom's work with the beta
>> version. Do you know if anyone have tried the plugin using maven 3? Is
>> anyone looking into maven 3 support?
>>
>> /Bengt
>>
>>
>> 2010/5/6 Bengt Rodehav <[email protected]>:
>> > Guillaume,
>> >
>> > I think I probably misunderstood how to use the plugin. I wasn't aware
>> > that all dependencies must be added to the maven project. I was hoping
>> > that they could be resolved anyway since they are listed in the
>> > features file. When I add all the dependencies, they will be installed
>> > in my local repo and is accessible to the plugin.
>> >
>> > I've now got almost everything to work expect for the url's that are
>> > not "mvn:". I also use "ipojo:" and "war:" in my features file, e g:
>> >
>> >
>>  <bundle>war:mvn:se.digia.connect/gui-war/${project.version}/war?Webapp-Context=connect_gui</bundle>
>> >
>>  <bundle>ipojo:mvn:se.digia.connect/test-route-template/${project.version}</bundle>
>> >
>> > How can I get the features-maven-plugin to work with those? At this
>> > point I'm not actually installing anything in Karaf, which means that
>> > the protocol in front of "mvn:" ("ipojo:" and "war:") should actually
>> > be skipped. Is there a workaround for this?
>> >
>> > /Bengt
>> >
>> >
>> > 2010/5/5 Guillaume Nodet <[email protected]>:
>> >> Not sure to fully understand, but if those are dependencies of your
>> maven
>> >> project, they should be in your local repo, shouldn't they ?
>> >>
>> >> On Wed, May 5, 2010 at 23:02, Bengt Rodehav <[email protected]> wrote:
>> >>
>> >>> It seems like the features-maven-plugin is exactly what I'm looking
>> >>> for. However I do run into one problem. I'm using a repository manager
>> >>> (Nexus) but the features-maven-plugin seems to only look in the locak
>> >>> repository (which doesn't contain everything). I get the following
>> >>> error message:
>> >>>
>> >>>  [INFO] [features:add-features-to-repo {execution:
>> add-features-to-repo}]
>> >>> Base repo: file://C:/dev/Maven/repository
>> >>> Copy:      commons-pool/commons-pool/1.5.4/commons-pool-1.5.4.jar
>> >>> Copy:
>> >>>  org/apache/felix/karaf/shell/org.apache.felix.karaf.shell.ssh/1.4.0/o
>> >>> rg.apache.felix.karaf.shell.ssh-1.4.0.jar
>> >>> Copy:
>> >>>  org/springframework/osgi/spring-osgi-annotation/1.2.0/spring-osgi-ann
>> >>> otation-1.2.0.jar
>> >>> Copy:      org/ops4j/pax/web/pax-web-api/0.7.2/pax-web-api-0.7.2.jar
>> >>> [INFO]
>> >>>
>> ------------------------------------------------------------------------
>> >>> [ERROR] BUILD ERROR
>> >>> [INFO]
>> >>>
>> ------------------------------------------------------------------------
>> >>> [INFO] Error populating repository
>> >>>
>> >>> Can I configure the plugin to use Nexus instead? It's a bit strange
>> >>> because first everything is being downloaded to Nexus (due to the
>> >>> dependencies I've added), but then when the plugin kicks in and the
>> >>> repository is about to be created, only the local repo is being
>> >>> searched.
>> >>>
>> >>> Any ideas?
>> >>>
>> >>> /Bengt
>> >>>
>> >>>
>> >>> 2010/5/5 Bengt Rodehav <[email protected]>:
>> >>> > Thanks a lot Guillaume - I will definitely take a look at the plugin
>> >>> > you mentioned.
>> >>> >
>> >>> > /Bengt
>> >>> >
>> >>> > 2010/5/5 Guillaume Nodet <[email protected]>:
>> >>> >> We actually have a maven plugin that helps in doing that.
>> >>> >> Take a look at how we package ServiceMix NMR or the full ServiceMix
>> >>> >> distribution.
>> >>> >> It's based on Karaf, but includes some changes and additional
>> bundles
>> >>> >> configured
>> >>> >> using features.   It sounds exactly like what you want.
>> >>> >>
>> http://svn.apache.org/repos/asf/servicemix/smx4/nmr/trunk/assembly/
>> >>> >>
>> >>> >> The plugin could be enhanced to make this task easier though, but
>> it's
>> >>> still
>> >>> >> a good
>> >>> >> starting point.  The final packaging and other changes are done
>> using
>> >>> the
>> >>> >> maven
>> >>> >> assembly plugin.   Any help / suggestion / patch would be welcomed !
>> >>> >>
>> >>> >> As for maven, two things:
>> >>> >>  * first, if a bundle can be located in the system folder, it won't
>> try
>> >>> to
>> >>> >> find it in any
>> >>> >>    other maven repository, even for a snapshot
>> >>> >>  * second, the list of repositories where the maven url handler can
>> >>> >> download the
>> >>> >>    artifacts from can be configured in etc/org.ops4j.pax.url.mvn.cfg
>> >>> >> I agree i would not let artifacts be downloaded from the internet
>> >>> either.  A
>> >>> >> nice configuration
>> >>> >> would be to point to a nexus repository manager and the work there.
>> >>> >>
>> >>> >>
>> >>> >> On Wed, May 5, 2010 at 11:18, Bengt Rodehav <[email protected]>
>> wrote:
>> >>> >>
>> >>> >>> I'm building an integration platform using Camel deployed in Karaf.
>> >>> >>> The platform will be used for different kinds of applications
>> (mainly
>> >>> >>> integration oriented of course). I'm not entirely sure how I best
>> >>> >>> construct an installation program for these applications. Basically
>> I
>> >>> >>> need to:
>> >>> >>>
>> >>> >>> a) Install Karaf. This is as easy as unpacking a zip file - very
>> >>> >>> convenient.
>> >>> >>> b) Configure Karaf. I will change some of the configuration files
>> and
>> >>> >>> add some. This is not hard.
>> >>> >>> c) Install the bundles needed for my application. This is where I
>> need
>> >>> >>> some advice.
>> >>> >>>
>> >>> >>> My bundles are installed in two ways: via startup.properties and
>> via
>> >>> >>> features defined in org.apache.felix.karaf.features.cfg. The
>> bundles
>> >>> >>> in startup.properties refer to its location in the folder "system"
>> >>> >>> under the Karaf installation. I will probably define an additional
>> >>> >>> folder where I will put bundles that I add to startup.properties.
>> This
>> >>> >>> is to clearly distinguish between the standard Karaf installation
>> >>> >>> (which I want to be able to upgrade easily) and my application
>> >>> >>> specific bundles. Don't know how I do this but I imagine it is
>> >>> >>> configurable somehow.
>> >>> >>>
>> >>> >>> However, most of my required bundles are installed as Karaf
>> features
>> >>> >>> via maven (the url's begin with mvn:). In a development environment
>> >>> >>> this is very convenient. In a production environment I do not want
>> my
>> >>> >>> application to go out on the Internet looking for bundles. I want
>> it
>> >>> >>> to be totally self sustained. In other words, I want my
>> installation
>> >>> >>> to contain (in a subfolder to the Karaf installation) all the
>> needed
>> >>> >>> jars/bundles. My problem is how do I generate a folder containing
>> all
>> >>> >>> my required bundles from a list of features (with the "mvn:" url)?
>> >>> >>> Ideally I would list the features I want and then automatically
>> >>> >>> generate a folder containing all the referred bundles. I would then
>> >>> >>> include this folder in my installation.
>> >>> >>>
>> >>> >>> Has anyone solved this problem (going from development to
>> production
>> >>> >>> using Karaf)? What is best practice?
>> >>> >>>
>> >>> >>> /Bengt
>> >>> >>>
>> >>> >>>
>> ---------------------------------------------------------------------
>> >>> >>> To unsubscribe, e-mail: [email protected]
>> >>> >>> For additional commands, e-mail: [email protected]
>> >>> >>>
>> >>> >>>
>> >>> >>
>> >>> >>
>> >>> >> --
>> >>> >> Cheers,
>> >>> >> Guillaume Nodet
>> >>> >> ------------------------
>> >>> >> Blog: http://gnodet.blogspot.com/
>> >>> >> ------------------------
>> >>> >> Open Source SOA
>> >>> >> http://fusesource.com
>> >>> >>
>> >>> >
>> >>>
>> >>> ---------------------------------------------------------------------
>> >>> To unsubscribe, e-mail: [email protected]
>> >>> For additional commands, e-mail: [email protected]
>> >>>
>> >>>
>> >>
>> >>
>> >> --
>> >> Cheers,
>> >> Guillaume Nodet
>> >> ------------------------
>> >> Blog: http://gnodet.blogspot.com/
>> >> ------------------------
>> >> Open Source SOA
>> >> http://fusesource.com
>> >>
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>
>
> --
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
> ------------------------
> Open Source SOA
> http://fusesource.com
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to