I've been working on the features-maven-plugin some more. I added a sample assemblies-apache-karaf-minimal assembly to show some of what it can do (this is the same as the archive-server packaging but not using the packaging itself).
I rewrote the dependency tree analysis in the GenerateFeatureXml2 mojo to use aether. Possibly it could be even simpler but this seems ok for now. The InstallKars mojo now can install both kars and features. By default bundles listed in features.xml are put into startup.properties. After completing startup.properties, it uses aether to install all the (missing) bundles into system. I don't understand the philosophy differentiating stuff put into system and started from startup.properties and stuff put into local-repo and started by other means. IIUC if you do a clean start you will have to reconstruct everything you installed not listed in startup.properties, is this correct? I'm considering making compile scoped features and kars get installed into system and startup.properties and runtime scoped features and kars installed into local-repo and the features cfg file (so at least the server will still know about them after a clean). Is this reasonable? Note that the sample apache-karaf-minimal assembly is much much faster than the apache-karar assembly. I would prefer to use the new method. AFAIK the missing piece is the source assembly. Is this actually useful? the release plugin produces a source archive that seems more than adequate to me. What else needs to be implemented before we can remove some of the old mojos? I think we can remove these: GenerateFeaturesFileMojo GenerateFeaturesXmlMojo (use feature or kar packaging) AddFeaturesToRepoMojo (use archive-server packaging) I don't understand what this does, can someone explain? ValidateFeaturesMojo thanks david jencks
