[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Hi Mustafa and Marcelo,
(context for others...work has been going on with the new sync API in 
org.eclipse.ecf.sync.  This effectively separates the cola-based 
replicated document synchronization from the DocShare UI/editor 
integration, and makes the document synchronization available for other 
applications/use by other components as per bug 
https://bugs.eclipse.org/bugs/show_bug.cgi?id=234142 )
And now onto the note...
I think we now have a sync API (with document synchronization 
implemented with cola) that can serve as an extensible starting point.  
See the interfaces in plugin org.eclipse.ecf.sync package and 
org.eclipse.ecf.sync.doc (document synchronization).  The projects are in
/cvsroot/rt org.eclipse.ecf/framework/bundles/org.eclipse.ecf.sync
and
/cvsroot/rt org.eclipse.ecf/tests/bundles/org.eclipse.ecf.tests.sync
Just today (Tues 10/21) I added the use of IAdaptable as super interface 
for the core sync API interfaces:  ISynchronizationStrategy, 
IModelChange, and IModelChangeMessage.  See the javadocs in 
ISynchronizationStrategy for an explanation of use of the interface.
Thanks to Marcelo we now have some significant test code in 
org.eclipse.ecf.tests.sync plugin.  The tests now simulate two clients 
that asynchronously and randomly make changes (insert char, delete char, 
etc) to an underlying replicated String.  See 
SimulatedClientTests.testSharedDocClient().
Soon, I would like to remove the Docshare copy of the cola code, and 
replace it with use of the sync API (with cola behind).  What this will 
entail, I believe, is to
1) remove the packages/classes that implement the current docshare 
synchronization strategy
2) Use/access the IDocumentSynchronizationStrategyFactory service (that 
is registered by the org.eclipse.ecf.sync plugin Activator) to create an 
ISynchronizationStrategy instance from within the DocShare class. 
3) Replace the existing synchronization strategy calls with calls to the 
ISynchronizationStrategy instance created via 
IDocumentSynchronizationStrategyFactory .createSynchronizationStrategy
3) Test the new DocShare/ISynchronizationStrategy
4) Note that the new DocShare will *not* interoperate with the 
old/existing docshare unless we explicitly attempt to figure out 
allowing them to interoperate...I'm not sure whether this is worth it or 
not.
So are the two of you ready to begin the changeover of DocShare to the 
sync API?
Mustafa...do you have some specific test cases from the original cola 
integration that need to be introduced to org.eclipse.ecf.tests.sync 
(e.g. range insertion/range delete?)
Thanks,
Scott