Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 352561

Summary: Support client assigned CDOIDs (UUIDs)
Product: [Modeling] EMF Reporter: Eike Stepper <stepper>
Component: cdo.coreAssignee: Eike Stepper <stepper>
Status: CLOSED FIXED QA Contact: Eike Stepper <stepper>
Severity: enhancement    
Priority: P3 CC: caspar_d, cyril.jaquier, erwin, saulius.tvarijonas
Version: 4.1Flags: stepper: review+
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard: Appealing to a Broader Community
Bug Depends on:    
Bug Blocks: 354419, 355285    
Attachments:
Description Flags
Patch v1 - for future reference
none
Patch (incremental) none

Description Eike Stepper CLA 2011-07-20 07:44:46 EDT
All replication scenarios (especially offline clones and offline workspaces) have a problem with master assigned IDs because they can't contact the master when they're offline. Client assigned IDs are the solution.
Comment 1 Eike Stepper CLA 2011-07-20 07:49:42 EDT
Created attachment 199977 [details]
Patch v1 - for future reference
Comment 2 Eike Stepper CLA 2011-07-20 07:50:58 EDT
Committed revision 8725:
- trunk/plugins/org.eclipse.emf.cdo
- trunk/plugins/org.eclipse.emf.cdo.common
- trunk/plugins/org.eclipse.emf.cdo.net4j
- trunk/plugins/org.eclipse.emf.cdo.server
- trunk/plugins/org.eclipse.emf.cdo.server.db
- trunk/plugins/org.eclipse.emf.cdo.server.db4o
- trunk/plugins/org.eclipse.emf.cdo.server.mongodb
- trunk/plugins/org.eclipse.emf.cdo.server.net4j
- trunk/plugins/org.eclipse.emf.cdo.server.objectivity
- trunk/plugins/org.eclipse.emf.cdo.tests
- trunk/plugins/org.eclipse.emf.cdo.tests.db
- trunk/plugins/org.eclipse.emf.cdo.tests.db4o
- trunk/plugins/org.eclipse.emf.cdo.tests.hibernate
- trunk/plugins/org.eclipse.emf.cdo.tests.mongodb
- trunk/plugins/org.eclipse.emf.cdo.tests.objectivity
- trunk/plugins/org.eclipse.emf.cdo.ui
- trunk/plugins/org.eclipse.emf.cdo.workspace
- trunk/plugins/org.eclipse.emf.cdo.workspace.efs
- trunk/plugins/org.eclipse.net4j.tests
- trunk/plugins/org.eclipse.net4j.util
Comment 3 Eike Stepper CLA 2011-07-20 07:57:45 EDT
Caspar, please investigate why Bugzilla_338884_Test.test_single() is failing. It seems that it's related to your CommitIntegrityCheck.

To enable UUIDs in the tests you must uncomment the second last line in RepositoryConfig.getRepositoryProperties():
  repositoryProperties.put(IRepository.Props.ID_GENERATION_LOCATION, "CLIENT");
  
I'll start tomorrow to redesign the test framework such that it will be easier to add "test modes" like this.
Comment 4 Eike Stepper CLA 2011-07-21 04:44:15 EDT
(In reply to comment #3)
> I'll start tomorrow to redesign the test framework such that it will be easier
> to add "test modes" like this.

Done. See AllTestsDBH2All.java
Comment 5 Eike Stepper CLA 2011-07-22 13:08:08 EDT
Committed revision 8811:
- trunk/plugins/org.eclipse.net4j.util
Comment 6 Caspar D. CLA 2011-07-24 23:49:40 EDT
Created attachment 200251 [details]
Patch (incremental)

As you told me on Skype, this caused some minor breakage in one
test related to the CommitIntegrityCheck. Here's a patch that
fixes that.
Comment 7 Eike Stepper CLA 2011-07-25 23:50:00 EDT
Caspar, please commit your patch and resolve this bug. Thanks!
Comment 8 Caspar D. CLA 2011-07-26 01:51:45 EDT
Committed revision 8816.
Comment 9 Eike Stepper CLA 2011-07-27 03:24:33 EDT
rawExport() and rawImport() in DBStoreAccessor do not fully consider IDGenerationLocation.
Comment 10 Eike Stepper CLA 2011-07-27 03:25:33 EDT
Fix is:

    if (store.getRepository().getIDGenerationLocation() == IDGenerationLocation.STORE)
			// Transfer last object ID
Comment 11 Eike Stepper CLA 2011-07-27 03:25:46 EDT
Committed revision 8824:
- trunk/plugins/org.eclipse.emf.cdo.server.db
Comment 12 Eike Stepper CLA 2011-07-27 03:26:10 EDT
Resolved.
Comment 13 Eike Stepper CLA 2011-08-18 03:08:42 EDT
Committed revision 8914:
- trunk/plugins/org.eclipse.emf.cdo.tests
Comment 14 Eike Stepper CLA 2012-09-21 07:17:33 EDT
Closing.