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

Hi Marcelo,

Thank you for all the work you are putting into DocShare/Sync/Cola.
I'll try to find some time soon and have a look at the code.

If time permits, I'll provide feedback and we can do a code review.

Happy hacking ;)


Mustafa K. Isik

Sent from my iPhone

On Nov 8, 2008, at 18:57, "Marcelo Mayworm" <mayworm@xxxxxxxxx> wrote:

> 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