| Summary: | Framework should provide a persistent UUID | ||
|---|---|---|---|
| Product: | [Eclipse Project] Equinox | Reporter: | Cristiano Gaviao <cvgaviao> |
| Component: | Framework | Assignee: | Thomas Watson <tjwatson> |
| Status: | RESOLVED WONTFIX | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | david_williams, pascal, sptaszkiewicz, tjwatson, wayne.beaton |
| Version: | unspecified | Keywords: | helpwanted |
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Linux | ||
| See Also: |
https://git.eclipse.org/r/70783 https://git.eclipse.org/c/equinox/rt.equinox.framework.git/commit/?id=3841a41167128ab80ffe8f05bf793694f5c28400 https://git.eclipse.org/r/75405 https://git.eclipse.org/c/equinox/rt.equinox.framework.git/commit/?id=e234ae5142ed330df84a5eae361f864aa5cb0c10 |
||
| Whiteboard: | |||
|
Description
Cristiano Gaviao
If I were to do this I would start at org.eclipse.osgi.internal.framework.EquinoxBundle.SystemBundle.EquinoxSystemModule.initWorker() That is where the framework UUID is set. I would probably augment org.eclipse.osgi.internal.framework.UniversalUniqueIdentifier to have another constructor that took a string to the path of the framework storage area. This UUID would base its value off the nodeAddress and the framework storage area instead of the timeValues + nodeAddress. (In reply to Cristiano Gaviao from comment #0) > That is ok for almost all situations, but it is not in a cloud network > scenario because it makes difficult to have a central table of installed > OSGi containers/nodes and configure them from an unique place. I tried to implement this as suggested in comment 1, but before I spend too much time on that can you please explain where this difficulty comes from? Thanks! New Gerrit change created: https://git.eclipse.org/r/70783 (In reply to Eclipse Genie from comment #3) > New Gerrit change created: https://git.eclipse.org/r/70783 I put an implementation of this in that gerrit review. It basically changes the UUID generation to use the UUID class of the VM instead of the internal one in Equinox. I decided to go with version 4 type UUID. Before we were using a variant of version 1 which I think has shown to have some security concerns. For the persistent UUID I store the value in the property "org.eclipse.equinox.persistent.uuid". This value is generated on first init from a clean storage area and is persistently used each restart of the framework that uses the same storage area. If the framework is launched with -clean then a new persistent UUID will get generated. Pascal, does this help you out in your p2 needs? If so we can try to get this into Neon. Cristiano, does would this help your usecase? Will not add to Neon at this point. Will add in Oxygen. I don't think the persistent storage UUID will help with Pascals needs based on discussions I have had with Pascal. Gerrit change https://git.eclipse.org/r/70783 was merged to [master]. Commit: http://git.eclipse.org/c/equinox/rt.equinox.framework.git/commit/?id=3841a41167128ab80ffe8f05bf793694f5c28400 New Gerrit change created: https://git.eclipse.org/r/75405 Gerrit change https://git.eclipse.org/r/75405 was merged to [master]. Commit: http://git.eclipse.org/c/equinox/rt.equinox.framework.git/commit/?id=e234ae5142ed330df84a5eae361f864aa5cb0c10 Given the concerns over p2's usage of a UUID at the end of Neon we have decided to remove this enhancement until a proper discussion is made concerning UUIDs with the Eclipse Foundation and the community. My opinion is that the UUID being proposed here does not have the same concerns as the UUID p2 was proposing at the end of Neon (bug 495484). OSGi already has a UUID specified [1]. This UUID identifies a running instance of the OSGi framework but is regenerated each time the framework is restarted. The UUID being proposed in this enhancement would identify a persistent installation of the framework. If the identity of the running instance of the framework is not a concern then I don't see why the identity of a framework installation instance would be a concern. In both cases the UUIDs produced by the framework are only accessible internally to the framework and the bundles installed. The framework never sends such data to third parties. An additional enhancement would have to be added to do that (similar to the one p2 was adding with bug 490112). [1] https://osgi.org/javadoc/r6/core/org/osgi/framework/Constants.html#FRAMEWORK_UUID No plans to do this enhancement at this point. |