[
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