You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Richard S. Hall (JIRA)" <ji...@apache.org> on 2010/10/07 23:34:30 UTC

[jira] Commented: (FELIX-2560) Bundle URLs do not survive refreshes

    [ 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.