Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ecf-dev] sync API

Hi Mustafa and Scott,
I made the changeover on DocShare (and something on sync API) to
replace the Cola code with use the sync API, as you can see on
https://bugs.eclipse.org/bugs/show_bug.cgi?id=234142. The code is on a
branch called "sync_api_refactor". I run the tests and made others to
try to keep the things as before. Take a look at the code and make the
tests, if possible.... and after that we need to think in a moment to
make the merge of this code. Please let me know about the things that
I can try to improve on that.

Cheers,
Marcelo



On Wed, Oct 22, 2008 at 11:16 PM, Scott Lewis <slewis@xxxxxxxxxxxxx> wrote:
>
> Hi Folks,
>
> To make the review of the sync API easier/more accessible, I've created javadocs for the sync API along with the rest of ECF 2.1.
> See the org.eclipse.ecf.sync package here:  http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/
>
> Please add any thought/comments on this bug:  https://bugs.eclipse.org/bugs/show_bug.cgi?id=234142
>
> Scott
>
> Scott Lewis wrote:
>>
>> 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
>>
>> _______________________________________________
>> ecf-dev mailing list
>> ecf-dev@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/ecf-dev
>


Back to the top