I agree that use a unique url style is better, and mvn url is truely a good choice, but the question is that Felix has different strategy depending on the url styles. Internally, it supports three url styles : reference:file, file, inputstream, it only uses the file link (not copy bundles to the cache folder) while the location is of reference:file style. Currently, when Geronimo is started, the mvn url is used, then Felix will copy the bundle from inputstream to its cache folder. So far, I did not see a way to make both mvn url and reference file active.
We may have a better way to check whether the bundle is installed, since we only use mvn style url now, we could directly call the install the bundle and depending on the state of the returned bundle object, we could decide whether or not need to call the start action.
If we use different url style to disable the cache function in the future, we may need other ways to find whether corresponding bundle is installed or not, to keep a installed artifact list is one of the choices. Another side, we may need a flag in the META-INF of the bundles to decide which style will be used (Copy Or Not Copy). From some discussion of Felix forum, while using the file reference style, there will be some problems about loading native libraries.
Any comment ?