Hi, Am Freitag, den 25.04.2008, 18:42 +0200 schrieb Tobias Bocanegra: > basically you create a bundle and embed the dependencies: > > eg: > <plugin> > <groupId>org.apache.felix</groupId> > <artifactId>maven-bundle-plugin</artifactId> > <extensions>true</extensions> > <configuration> > <instructions> > ... > <Embed-Dependency> > mail;inline=true, > commons-email;inline=true, > activation;inline=true > </Embed-Dependency>
This is in fact about it. Whether you actually use inline:=true or not depends on your use case. To not fill the JAR with inlined (expanded) folders and files, you might also omit the inline:=true directive and get the jar files as is into the bundles. The OSGi framework can handle both cases equivalently. Inlining the JAR files might cause issues when multiple jar files contain files with the same path but differnt content as is the case in this example, IIRC. > > btw: for most of the asf commons there already exists a bundle. check > the apache felix site for a list of them. The Jakarta Commons project in fact has started building all their releases as proper OSGi bundles. So you might be lucky and get the appropriate relase. For up-to-date information, refer to http://wiki.apache.org/commons/CommonsOsgi. Regards Felix > > On 4/25/08, Alexander Saar <[EMAIL PROTECTED]> wrote: > > Hi, > > I'm not an OSGI expert but will try to answer your questions based on my > > own experiences. Since this is really an OSGI related question I would > > suggest to post your questions again on the Felix mailing list if my answers > > are not enough. > > > > > > > 1) some projects might already annotate their jars with the > > maven-bundle-plugin - but how do I quickly find out if they have when I have > > a lot of external jars to look at? > > > > > > > AFAIK they is no way to figure this out, at least I don't know one. You > > have to check all dependencies. If you are only using parts of these > > frameworks, you can add the packages you need as private packages and the > > maven bundle plugin will add them to the bundle. You may encounter errors > > that one or more packages are missing even if they are not used. Such issues > > can be solved by adding them as dynamic imports. In that case they will only > > be imported when they are available (and used). > > > > > > > 2) there are several bundle repositories (oscar, felix project, etc.), but > > they appear to be small, not-searchable and even undiscoverable via google > > searches... > > > > > > > Sorry, haven't used this yet. > > > > > > > 3) I have read about "wrapper bundles" on this mailing list - but how do > > they look like? > > > > > > > The simplest way is to create a new maven project that has dependencies to > > the projects you want to be contained in your bundle. The add the packages > > you need to be available in OSGI as exported packages. Thus they will be > > added to the bundle and made public so that other bundles can use them. > > > > > > > 4) it's possible with some maven config (I think assembly plugin) to > > "merge" multiple jars in a single one - is it possible to use the bundle > > plugin with that final jar then? > > > > > > > Should be possible by following instructions from 3. > > > > Regards, > > Alex > > > >
