Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [equinox-dev] Location of Persistent UserAdmin Data


A bundle's data area (the File from BundleContext.getDataFile) is not tied to the bundle version.  Each update of a bundle (using Bundle.update() method) will get the same data area.  The typical way bundles handle this is that when a bundle version is incremented they have the ability to migrate old data to a new format.  If you need to support going back to an old version then the old version needs to detect the data is not in a format it understands and should toss the data.  But this is the same problems that we deal with in the workspace .metadata right?  Each bundle is responsible for handling old data formats.  The content supplied by BundleContext.getDataFile should not be thrown away with each new version of a bundle.  If we used the same rules for the workspace .metadata then users would have to start with a new workspace each time a new build of eclipse was installed.

Tom



Jeff McAffer <Jeff_McAffer@xxxxxxxxxx>
Sent by: equinox-dev-bounces@xxxxxxxxxxx

06/09/2006 08:09 AM

Please respond to
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>

To
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>
cc
Subject
Re: [equinox-dev] Location of Persistent UserAdmin Data






This is a very interesting problem.  Its not clear that there is a particular "right answer".  For example, you are going from 1.0 to 2.0 (the implication being that it is not backward compatible) then it *may* be the case that 2.0 cannot read 1.0 metadata.  In that case doing an update vs. uninstall/reinstall would not get the metadata persistance.  Of course, it it might not hurt either but ...    Getting a new services release (e.g., 1.0.1) would seem to be a good candidate for using update.  Interestingly, what happens when you need to go back to an older version?  If the data written by 1.1 is in a different format than 1.0 there could be issues.  


I have forgotten how the spec works wrt Bundle.getDataFile().  I vaguely recall that this area is specific to a version (or generation) of a bundle id.  So when you do update, you get a new area for getDataFile.  Is this accurate?


Jeff




Thomas Watson <tjwatson@xxxxxxxxxx>
Sent by: equinox-dev-bounces@xxxxxxxxxxx

06/05/2006 10:02 AM

Please respond to
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>

To
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>
cc
Subject
Re: [equinox-dev] Location of Persistent UserAdmin Data








Pascal,


Can you clarify why Eclispe update can not make these types of decisions?  Take the following example:


1)  A new feature is installed into Eclipse

2)  As a result update decides to uninstall bundle X version 1.0.0 and install bundle X version 2.0.0.


In this case Eclipse update decided it was ok to uninstall bundle X 1.0.0 and install a new bundle X version 2.0.0.  Why could it not have just updated bundle X version 1.0.0 to bundle X version 2.0.0 (instead of uninstall/install process)?  It had enough information to decide to uninstall bundle X version 1.0.0 so why not just update it to version 2.0.0?  I do not see the issue here.


Tom.



Pascal Rapicault <Pascal_Rapicault@xxxxxxxxxx>
Sent by: equinox-dev-bounces@xxxxxxxxxxx

06/04/2006 04:09 AM

Please respond to
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>


To
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>
cc
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>, equinox-dev-bounces@xxxxxxxxxxx
Subject
Re: [equinox-dev] Location of Persistent UserAdmin Data










Eclipse update is not in a position of deciding with full satisfaction of the user whether things should be "updated", "installed", "uninstalled then installed". For example, if one had junit 3.8 and wanted to install junit 4.0... what should happen? For that it needs to

If OSGi was not alwasys tightening up its lose ends with the magic "management agent" :-)


PaScaL

Thomas Watson <tjwatson@xxxxxxxxxx>
Sent by: equinox-dev-bounces@xxxxxxxxxxx

06/01/2006 02:28 PM

Please respond to
Equinox development mailing list


To
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>
cc
Subject
Re: [equinox-dev] Location of Persistent UserAdmin Data












See bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=73013 against Eclipse->Platform->Update.


If eclipse update would use the proper Bundle.update method instead of uninstalling/installing each time a new version of a bundle bacame available then these types of issues would be solved.


Tom

Roy Paterson/Austin/IBM@IBMUS
Sent by: equinox-dev-bounces@xxxxxxxxxxx

06/01/2006 01:04 PM

Please respond to
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>


To
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>
cc
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>, equinox-dev-bounces@xxxxxxxxxxx
Subject
Re: [equinox-dev] Location of Persistent UserAdmin Data













BJ's answer is correct from an OSGi spec standpoint, but there are Eclipse
considerations which are relavant to Benjamin's questions.  See
http://bugs.eclipse.org/bugs/show_bug.cgi?id=124176#c10.

In summary bundle ids do not change between framework launches, but if you
update a bundle using Eclipse update it actually uninstalls the old version
and installs the new version, resulting in a new bundle id.  This was an
issue with the OSGi Prefs implementation.  In the end we just documented it
as a known limitation.

Regards,
Roy

-----------------------------------------
Roy Paterson
IBM Pervasive Computing
Austin, TX
Phone: (512) 838-8898



                                                                     
        BJ                                                            
        Hargrave/Austin/I                                            
        BM@IBMUS                                                   To
        Sent by:                  Equinox development mailing list    
        equinox-dev-bounc         <equinox-dev@xxxxxxxxxxx>          
        es@xxxxxxxxxxx                                             cc
                                                                     
                                                              Subject
        06/01/2006 12:20          Re: [equinox-dev] Location of      
        PM                        Persistent UserAdmin Data          
                                                                     
                                                                     
        Please respond to                                            
             Equinox                                                  
           development                                                
          mailing list                                                
        <equinox-dev@ecli                                            
            pse.org>                                                  
                                                                     
                                                                     




Bundle ids cannot change between framework launches. The bundle id is the
primary key of the bundle and may not change or ever be reused within a
framework instance.

BJ Hargrave
Senior Technical Staff Member, IBM
OSGi Fellow and CTO of the OSGi Alliance
hargrave@xxxxxxxxxx
Office: +1 407 849 9117 Mobile: +1 386 848 3788



"Benjamin Schmaus" <benjamin.schmaus@xxxxxxxxx>
Sent by: equinox-dev-bounces@xxxxxxxxxxx
2006-06-01 12:46 PM
Please respond to
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>


To
equinox-dev@xxxxxxxxxxx
cc

Subject
[equinox-dev] Location of Persistent UserAdmin Data






Equinox Developers,

I've been developing a user/group admin bundle that runs on top of the
Equinox OSGi UserAdmin service  implementation, and I've noticed that data
is persisted to a file that is named like so:

"org.eclipse.core.runtime.preferences.OSGiPreferences." +
bundle.getBundleId()

So the actual file name might end up being something like:
"org.eclipse.core.runtime.preferences.OSGiPreferences.27.prefs"

Since a bundle's id can change between framework starts and stops, users
and roles created by a given bundle during one execution of the framework
won't necessarily be available to that bundle in another execution of the
framework ( i.e. since bundle id can vary across runs).

Should a bundle have to re-create user and role assignments on every start
of the framework if persistent data can't be located?  That doesn't seem
right to me.

It could be that user admin data can be persisted to a static (known
before runtime) location via the Equinox UserAdmin impl, but it's not
clear to me how this should be done.

- Ben Schmaus_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev


_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev


_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev
_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev
_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev
_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev

_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev


Back to the top