John E. Conlon wrote:
On Fri, 2005-11-04 at 05:14, Enrique Rodriguez wrote:
Hi, Felix list,
I intend to write a new Maven 2.0 plugin this weekend, tentatively
called the "Felix Product Plugin."
So this would be an new version of the current maven-osgi-plugin right?
No, it will be an entirely new plugin. The maven-osgi-plugin packages
osgi-bundles. This plugin will package felix-products. They are very
different artifacts and I don't think it makes sense to make one plugin,
even if it was possible.
The intent of this plugin is to
combine the Felix runtime with jars gathered from Maven repos and
combine them into a tarball that, when exploded, yields the usual
.sh/.bat file for running Felix and installing and starting bundles as a
complete "Felix product."
With a 'Felix Product Plugin' would we still need to have the
functionality in Felix to do a 'Oscar like' install procedure as
mentioned in the recent 'Installing Felix email thread'?
We will likely have both. Felix will remain untouched, allowing users
to download and start it and add bundles manually. End users can't be
expected to download the runtime and then start adding bundles to form a
product such as Apache Directory. We need a way to create a combination
of Felix + bundles + configuration as a shippable product, ideally in a
way that we can version control.
o To interrogate dependencies in the POM for their 'packaging' type.
If 'jar' they are added to the classpath. If 'osgi-bundle' they are
added to the bundle/ dir and the config.properties is built such that
the bundle is installed and/or started in the Felix runtime. I have no
idea how I am going to configure initial start levels, so I'll likely
make them all "1" for the first version. This could be easy; I just
haven't looked.
Couldn't these be addition child elements added to the dependency
elements?
I don't think so. If it's possible, I'd love to know. I had some
properties left over from the Maven 1 OSGi plugin and Maven errored out
due to POM DTD/schema violations. If you can add arbitrary props that
would the ideal place to do it. If not I have to do a lame props-style
enumeration in the plugin config.
Enrique