You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by Christian Schneider <ch...@die-schneider.net> on 2016/08/11 09:03:16 UTC

[Discuss] Alternatives to multi bundle distro in CXF-DOSGi

    Current state

Currently we build the multi bundle distro of CXF-DOSGi in this way:

  * Create a karaf feature file that also includes the CXF and Aries RSA
    feature files
  * Export the bundles using the karaf-maven-plugin with the goal
    features-add-to-repository
  * Export the bundle meta data using features-export-meta-data
  * Process the meta data using different xslt files to filter unwanted
    bundles and create the config for felix and equinox
  * Package all into a tar.gz


    What is the problem?

One problem is that the goal features-export-meta-data is discontinued 
in the karaf plugin. So we have to rely on an old version which might 
not work anymore int the future if karaf changes.

Another problem is that the result still requires some manual work to 
add it to felix or equinox. What you then get is a framework with just 
CXF-DOSGi and none of your own code. So this does not help the user much.

I think karaf is covered fine by the karaf features we provide. So for 
karaf itself I do not see any need to change something.


    Possible solutions?

1. Just deliver poms and an example for bndtools

I am currently experimenting a lot using bndtools to create application 
during a regular maven build. It works like this:

Aries rsa and CXF-DOSGi provide poms that list all bundles that are 
needed for the frameworks.

The user then creates his own project with a normal manven build. In one 
module he creates a local OBR index. This is done by listing maven 
dependencies to bundles. The poms we created above help a lot with this 
as the user can add cxf-dosgi with just one maven dependency. An 
alternative to this is the upcoming bndtools maven based indexes that 
allow to directly add pom as a repository source. So the creation of the 
local index is not necessary.

The packaging is then done using a maven plugin that executes the bnd 
resolve and export steps. The result is a runnable jar.

The one thing missing here at the moment is the bnd-export-maven-plugin 
or the maven based index which should be released with bndtools 3.3 soon.

Of course this approach just helps if you plan to use bndtools.

2. Provide a p2 repository for eclipse users

For eclipse users the easiest solution would be a p2 repository that 
they can then directly consume. Does anyone have experience with this? 
Are there maven plugins to create a p2 repository from a dependencies in 
a pom? Where would we host such a repo? Can the bundles still come from 
maven central?

3. ?

In what other ways would people like to use CXF-DOSGi? How could we help 
them?

As always I would be happy about feedback.

Christian


-- 
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com