Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Looking for a good dev environment for OSGi bundles [closed]

I'm currently investigating in the field of dev environment for OSGi bundles.

My goal is to find a way to develop, test and debug with ease the bundles I'll be coding. Besides, I have some "cultural" requirements.

  • I want to be able to use java continuous integration servers (typically, Hudson)
  • As a consequence of that first requirement, I want to have a repeatable, one-click build process. My typical tool for that is maven.
  • And finally, being long-term Eclipse user, and having the m2eclipse at hand to merge my eclipse env with my maven one, I obviously want to be able to test and debug with that IDE.

So far, here are the infos I know

  • I can use (and have already tested) maven-bundle-plugin, maven-ipojo-plugin which both offer clean packaging facilities
  • I have tested maven pax (and eclipse pax) and am not really satisfied with both : maven pax generates a very heavy project, where adding dependencies is very error-prone (the maven pax:import-bundle command line, with all its arguments, is a hell per se)
  • I have taken a look at Karaf, which seems to have some nice direct maven provisionning, but I don't know how to integrate it with my Eclipse, besides using the traditionnal JPDA bridge. However, it seems to be more production-oriented than dev-oriented, and as such may require heavy configuration to fit my need (although the reading of its user manual doesn't revedal that).

Have you got any ideas ? Some maven/eclipse plugins ?

EDIT : my goal is not to provide eclipse plugins or features, it is in fact to create independant application, that may be ultimately packaged as webapp (in a similar fashion to, as an example, sling). Is Tycho able to do that ? It doesn't seems so, as its packaging types page only lists eclipse specific packages types (but I may be wrong)

like image 633
Riduidel Avatar asked Apr 14 '10 05:04

Riduidel


People also ask

What is an OSGi bundle?

In OSGi, a single component is called a bundle. Logically, a bundle is a piece of functionality that has an independent lifecycle – which means it can be started, stopped and removed independently. Technically, a bundle is just a jar file with a MANIFEST. MF file containing some OSGi-specific headers.

What does OSGi stand for?

The OSGi (Open Service Gateway Initiative) specification is a Java framework for developing and deploying modular software programs and libraries.

What is the ClassPath of a bundle?

The Bundle-ClassPath header defines a comma-separated list of JAR file path names or directories (inside the bundle) containing classes and resources. The full stop ( '. ' \u002E ) specifies the root directory of the bundle's JAR. The full stop is also the default.


1 Answers

I have not tested it, but when it comes to maven/eclipse plugin managing OSGi bundles, Tycho seems to be the official project.

See Create a new OSGi bundle in Eclipse

Of course, Tycho is part of the Maven development stack:

Ticho Maven


Other options are mentioned in the blog entry Me, OSGi and Maven" mentioned by the OP Riduidel in the comments:

  • BND and Bundlor
  • pax and pax-construct
  • Sigil
like image 124
VonC Avatar answered Sep 19 '22 00:09

VonC