felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard S. Hall (JIRA)" <j...@apache.org>
Subject [jira] Commented: (FELIX-2560) Bundle URLs do not survive refreshes
Date Thu, 07 Oct 2010 21:34:30 GMT

    [ https://issues.apache.org/jira/browse/FELIX-2560?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12919073#action_12919073

Richard S. Hall commented on FELIX-2560:

After looking into this a little bit more, I don't think it would necessarily have to impact
the bundle cache in any structural way. The main issue is to not reset the revision-id on
a refresh.

Normally, a revision directory is named something like version0.0 and after an update a new
revision directory is created called version0.1. The first number is a refresh counter, while
the second number is the revision-id. During a refresh, the version0.0 directory is deleted
and the version0.1 directory is renamed to version1.0.

So, the simple solution is to keep the revision-id as just an increasing number that doesn't
reset. Instead of renaming the above current revision directory to version1.0 on a refresh,
we'd rename it to version1.1. Likewise if there were two more updates, followed by a refresh,
then the current revision directory would be version2.3, since there would have been three
updates and two refreshes total.

> Bundle URLs do not survive refreshes
> ------------------------------------
>                 Key: FELIX-2560
>                 URL: https://issues.apache.org/jira/browse/FELIX-2560
>             Project: Felix
>          Issue Type: Improvement
>          Components: Framework
>    Affects Versions: framework-3.0.2
>            Reporter: Richard S. Hall
>            Priority: Minor
>             Fix For: framework-3.2.0
> Currently, bundle URLs are encoded like this:
>     bundle:// <bundle-id> . <revision-id> : <class-path-idx>/path/to/resource
> This is convenient to access our internal data structures and survives toString() round-tripping,
but it does have the disadvantage that it doesn't survive a module being refreshed. The <revision-id>
of a module gets reset after a refresh, which makes existing URLs become invalid. If <revision-id>
were something like a <revision-name> that didn't get reset, then it would continue
to work.
> This is clearly a corner case and not super important, but we could investigate making
such a change. It may impact the bundle cache too. This is also not spec-mandated behavior,
so bundles shouldn't really depend on this behavior either.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message