Hi JB, I agree about this, we have to focus on the user friendly stuff and I have an additional point :
* Add a simple way to update/add properties in the default configuration files of the standard distribution in the assembly (like system.properties....) I'm not sure this is the correct discussion but I think we also have to work about helping user to upgrade the Karaf version of their custom distributions. regards, François Papon fpa...@apache.org Le 13/09/2018 à 15:51, Jean-Baptiste Onofré a écrit : > Hi guys, > > Recently, we received a lot of questions around how to create Karaf > custom distribution based on karaf-maven-plugin, and how to use the > static profile to create "standalone/static" distribution. > > If the plugin works fine, it's not easy to understand some "details", > like the dependency scope impact, or providing the set of default > features repos and features. I already helped users (in private > communication) to fix their custom distributions. > > Obviously, we should simplify the way of creating custom distribution, > especially with the new tooling & feature we now provide around Docker. > > I would like to propose the following: > > 1. Set the default behavior of the assembly goal to create a custom > distribution based on standard. For the user, instead of providing > (again) all framework, standard, enterprise features repos and all > standard boot features (shell, ...), it will just specify the tar.gz/zip > base and his own features repo/repos (or the goal will use the same > version of the goal plugin itself). All the rest will be done by the > plugin for him. Use the karaf packaging as default to define this. At > the end of the day, the user pom.xml will look like: > > <project> > <groupId>foo</groupId> > <artifactId>bar</artifactId> > <version>1.0-SNAPSHOT</version> > <packaging>karaf</packaging> > > <dependencies> > <dependency> > <groupId>org.apache.karaf</groupId> > <artifactId>apache-karaf</artifactId> > <version>4.2.1</version> > <type>tar.gz</type> > </dependency> > <dependency> > <groupId>foo</groupId> > <artifactId>my</artifactId> > <version>1.0-SNAPSHOT</version> > <classifier>features</classifier> > <type>xml</type> > </dependency> > </dependencies> > > <build> > <plugins> > <plugin> > <groupId>org.apache.karaf.tooling</groupId> > <artifactId>karaf-maven-plugin</artifactId> > <extensions>true</extensions> > <inherited>true</inherited> > <configuration> > <bootFeatures> > <feature>my</feature> > </bootFeatures> > <installedFeatures> > <feature>my-other</feature> > </installedFeatures> > </configuration> > </plugin> > </plugins> > </build> > > </project> > > The idea is to automatically execute install-kar + assembly for the > karaf packaging and let the user focus on its own resources (features, > config, ...) just providing the base Karaf archive. > The user will be able to use src/main/resources to provide any files in > etc, bin, or whatever in the resulting custom distribution. > > 2. Improve a bit the features XML generation > If the custom distribution is the highest priority, just after the > improvements on this area, I would like to improve the way of creating > features XML. > Now, to be honest, almost all of us write features repos XML by hand. It > gives us the maximum of flexibility. However, on the other hand, the > features XML and code contain should be sync. > I would like to improve the generate features MOJO, however leveraging > most of all functionalities around features (prerequisites, dependency > flag, inner features, ...). > > I have to dig a little bit around that, but if you want some ideas > already, please let me know. > > Thoughts ? > > Regards > JB