JIRA raised and patch attached: https://issues.apache.org/jira/browse/FELIX-577
On Fri, May 30, 2008 at 10:09 AM, Guillaume Nodet <[EMAIL PROTECTED]> wrote: > On Fri, May 30, 2008 at 9:48 AM, Richard S. Hall <[EMAIL PROTECTED]> wrote: >> Guillaume Nodet wrote: >>> >>> The "bundle:" protocol URL handler is built in Felix framework, but >>> does not seem to work well for me at the moment. The idea behing this >>> URL handler is to be able to access any resource inside a bundle. The >>> syntax is as following: >>> >>> bundle://[bundleId].[bundleRev]:[classPathId]/[path] >>> >>> where [bundleId] is the id of the bundle, [bundleRev] is the revision >>> of the bundle (when new versions are installed), [classPathId] is the >>> index in the list of jars that make the classpath (internal structure) >>> and [path] is the path of the resource in the bundle. >>> >>> My problem is that [bundleRev] and [classPathId] refer to internal >>> structures and can't be accessed from outside the felix framework. >>> [classPathId] can be set to 0 to look inside the whole classpath >>> entries, but if not specified, the default value of the url port is -1 >>> and an IndexOutOfBounds exception is thrown. >>> >> >> Yes, the exception sounds like a bug that should be fixed. >> >>> Another problem is that [bundleRev] can not be ommitted and (in >>> addition to the parsing having a bug) there is no default value. >>> >> >> Perhaps we should just define the default value to be the current revision. >> >>> I will raise a JIRA and attach a patch to do the following: >>> * if the url port is ommitted (thus defaults to -1), use the same >>> behavior as if 0 was used (search in the whole classpath) >>> >> >> ok >> >>> * fix the revision bundle parsing, which returns the bundle id if >>> none is specified: it will return -1 if the bundle revision was not >>> set >>> >> >> ok >> >>> * fix the look up mechanism so that when no bundle revision is >>> specified, (revision == -1), all bundle revisions will be searched in >>> reverse order (the most recent revision first) >>> >> >> Personally, I would just search the most recent and be done with it, >> otherwise we could end up with situations where we are splitting across >> revisions. > > Sounds good. > >>> The last problem is really difficult to work around as there is no way >>> to find the bundle revision from a client bundle and there is no >>> default value, so the only way to make that work is to specify 0 and >>> expect the bundle to have not been updated (which ovbiously is not a >>> good idea). >>> >> >> While I agree that these are issues that should be addressed, we are really >> talking about special cases here, since you generally shouldn't be trying to >> construct your own bundle resource URL since the URL structure is supposed >> to be opaque and framework dependent. >> >> -> richard > > Yeah, I agree this is felix dependant, but it's nonetheless really handy. > I suppose at some point, I would have to rewrite my own url handler to > handle this > in a less felix specific way. > >>> Feedback welcome. >>> >>> >> > > > > -- > Cheers, > Guillaume Nodet > ------------------------ > Blog: http://gnodet.blogspot.com/ > -- Cheers, Guillaume Nodet ------------------------ Blog: http://gnodet.blogspot.com/