jukowski / jeasysync2

Java port of the EasySync2 library
7 stars 2 forks source link

Any chance of some documentation? #1

Open JohnMcLear opened 11 years ago

JohnMcLear commented 11 years ago

It'd be cool if we could see what the status of this is?

dsblank commented 11 years ago

If you could provide just a couple of sentences about how to build and test with jEditPad, that would go a long way. Thanks!

jukowski commented 11 years ago

Sorry for replying so late. I'm quite busy but I'd like to help integrating jEdit with Etherpad or ShareJS (which can also understand etherpad changesets already). As I see the code doing the real jEdit integration is lost but it's not so hard to do it and I'd like to revive this anyway.

The problem of integrating anything with Etherpad-lite is that it uses SocketIO and I could not find a java library talking SocketIO. So I think this is a major problem.

To build the project you need to open it in Eclipse. Try running https://github.com/jucovschi/jeasysync2/blob/master/test/com/etherpad/lite/ConnectionTest.java. This should connect to pad test2 and write blah every second in it.

To be honest I'm more interested in creating the jEdit <-> ShareJS connection as ShareJS has a better code base and more types of content you can sync...

JohnMcLear commented 11 years ago

Tbh ShareJS will end up with as complex as a code base when you start to introduce an editor but I guess that is yet to be seen, I do agree w/ the types of contents though, shareJS provides better support for more complex objects but will run into the same limitations as Etherpad given time.

Here is a socket IO Java client. https://github.com/Gottox/socket.io-java-client

dsblank commented 11 years ago

Thanks for getting back to us! Some basic questions:

1) What is the state of jeasysync2? Is it complete? If not, what is it missing?

2) It looks like the jEdit plugin never really got started, as I don't see any code dealing with editing events, or with incoming events from the server. Is this correct? Is there a list of events that a client editor will need to handle?

(BTW, I am not interested in Java, but in using a C# Mono system. I successfully converted the jeasysync2 code to a DLL which loads and runs from .NET and Mono, via a number of languages by using IKVM. If either of you know of additional resources we can look at for this project, that would be great. Thanks!)

-Doug

On Thu, Mar 7, 2013 at 8:42 AM, John McLear notifications@github.comwrote:

Tbh ShareJS will end up with as complex as a code base when you start to introduce an editor.

Here is a socket IO Java client. https://github.com/Gottox/socket.io-java-client

— Reply to this email directly or view it on GitHubhttps://github.com/jucovschi/jeasysync2/issues/1#issuecomment-14560916 .

dsblank commented 11 years ago

One additional question: I don't understand the comments about ShareJS... isn't that a JavaScript library? How will you integrate that with a Java text editor? I am interested in jeasysync2 because it is written in Java (and can be converted to .NET).

dsblank commented 11 years ago

I tried the ConnectionTest.java as you describe, but it appears to fail (output below). Any ideas?

Mar 07, 2013 4:59:49 PM com.etherpad.lite.EtherpadLiteConnection INFO: Opening connection to pad test2 at URL http://localhost:9001 Mar 07, 2013 4:59:49 PM io.socket.IOConnection transportConnected INFO: Bulk start: Mar 07, 2013 4:59:49 PM io.socket.IOConnection transportConnected INFO: Bulk end Mar 07, 2013 4:59:49 PM io.socket.IOConnection transportMessage INFO: < 1:: Mar 07, 2013 4:59:49 PM io.socket.IOConnection sendPlain INFO: > 4:::{"protocolVersion":2,"sessionID":"asdasgasdg","token":"sdgasdlgh","component":"pad","padId":"test2","type":"CLIENT_READY","password":"fasdfasdg"} Mar 07, 2013 4:59:49 PM io.socket.IOConnection transportMessage INFO: < 4:::{"type":"CLIENT_VARS","data":{"accountPrivs":{"maxRevisions":100},"initialRevisionList":[],"initialOptions":{"guestPolicy":"deny"},"savedRevisions":[],"collab_client_vars":{"initialAttributedText":{"text":"here blahis my text\n\n","attribs":"|2+l"},"clientIp":"127.0.0.1","padId":"test2","historicalAuthorData":{"a.yN7aAoTV6cQCWfZz":{"colorId":28,"name":null,"padIDs":{"test2":1}}},"apool":{"numToAttrib":{},"nextNum":0},"rev":6,"globalPadId":"test2","time":1362692693910},"colorPalette":["#ffc7c7","#fff1c7","#e3ffc7","#c7ffd5","#c7ffff","#c7d5ff","#e3c7ff","#ffc7f1","#ff8f8f","#ffe38f","#c7ff8f","#8fffab","#8fffff","#8fabff","#c78fff","#ff8fe3","#d97979","#d9c179","#a9d979","#79d991","#79d9d9","#7991d9","#a979d9","#d979c1","#d9a9a9","#d9cda9","#c1d9a9","#a9d9b5","#a9d9d9","#a9b5d9","#c1a9d9","#d9a9cd","#4c9c82","#12d1ad","#2d8e80","#7485c3","#a091c7","#3185ab","#6818b4","#e6e76d","#a42c64","#f386e5","#4ecc0c","#c0c236","#693224","#b5de6a","#9b88fd","#358f9b","#496d2f","#e267fe","#d23056","#1a1a64","#5aa335","#d722bb","#86dc6c","#b5a714","#955b6a","#9f2985","#4b81c8","#3d6a5b","#434e16","#d16084","#af6a0e","#8c8bd8"],"clientIp":"127.0.0.1","userIsGuest":true,"userColor":28,"padId":"test2","initialTitle":"Pad: test2","opts":{},"chatHead":-1,"numConnectedUsers":0,"readOnlyId":"r.TJjaqmUayLVBQ6Vs","readonly":false,"serverTimestamp":1362693589256,"globalPadId":"test2","userId":"a.yN7aAoTV6cQCWfZz","abiwordAvailable":"no","plugins":{"plugins":{"ep_etherpad-lite":{"parts":[{"name":"express","hooks":{"createServer":"ep_etherpad-lite/node/hooks/express:createServer","restartServer":"ep_etherpad-lite/node/hooks/express:restartServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/express"},{"name":"static","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/static:expressCreateServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/static"},{"name":"i18n","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/i18n:expressCreateServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/i18n"},{"name":"specialpages","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/specialpages:expressCreateServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/specialpages"},{"name":"padurlsanitize","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/padurlsanitize:expressCreateServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/padurlsanitize"},{"name":"padreadonly","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/padreadonly:expressCreateServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/padreadonly"},{"name":"webaccess","hooks":{"expressConfigure":"ep_etherpad-lite/node/hooks/express/webaccess:expressConfigure"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/webaccess"},{"name":"apicalls","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/apicalls:expressCreateServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/apicalls"},{"name":"importexport","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/importexport:expressCreateServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/importexport"},{"name":"errorhandling","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/errorhandling:expressCreateServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/errorhandling"},{"name":"socketio","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/socketio:expressCreateServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/socketio"},{"name":"tests","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/tests:expressCreateServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/tests"},{"name":"admin","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/admin:expressCreateServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/admin"},{"name":"adminplugins","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/adminplugins:expressCreateServer","socketio":"ep_etherpad-lite/node/hooks/express/adminplugins:socketio"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/adminplugins"},{"name":"adminsettings","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/adminsettings:expressCreateServer","socketio":"ep_etherpad-lite/node/hooks/express/adminsettings:socketio"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/adminsettings"}],"package":{"name":"ep_etherpad-lite","description":"A Etherpad based on node.js","homepage":"https://github.com/ether/etherpad-lite","keywords":["etherpad","realtime","collaborative","editor"],"author":"Peter 'Pita' Martischka petermartischka@googlemail.com - Primary Technology Ltd","contributors":[{"name":"John McLear"},{"name":"Hans Pinckaers"},{"name":"Robin Buse"},{"name":"Marcel Klehr"}],"bin":{"etherpad-lite":"./node/server.js"},"devDependencies":{"wd":"0.0.31"},"engines":{"node":">=0.6.3","npm":">=1.0"},"version":"1.2.81","realName":"ep_etherpad-lite","path":"/home/dblank/Downloads/ether-etherpad-lite-8440128/node_modules/ep_etherpad-lite","realPath":"/home/dblank/Downloads/ether-etherpad-lite-8440128/src","link":"/home/dblank/Downloads/ether-etherpad-lite-8440128/src","depth":1}}},"parts":[{"name":"adminsettings","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/adminsettings:expressCreateServer","socketio":"ep_etherpad-lite/node/hooks/express/adminsettings:socketio"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/adminsettings"},{"name":"adminplugins","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/adminplugins:expressCreateServer","socketio":"ep_etherpad-lite/node/hooks/express/adminplugins:socketio"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/adminplugins"},{"name":"admin","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/admin:expressCreateServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/admin"},{"name":"tests","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/tests:expressCreateServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/tests"},{"name":"socketio","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/socketio:expressCreateServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/socketio"},{"name":"errorhandling","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/errorhandling:expressCreateServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/errorhandling"},{"name":"importexport","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/importexport:expressCreateServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/importexport"},{"name":"apicalls","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/apicalls:expressCreateServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/apicalls"},{"name":"webaccess","hooks":{"expressConfigure":"ep_etherpad-lite/node/hooks/express/webaccess:expressConfigure"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/webaccess"},{"name":"padreadonly","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/padreadonly:expressCreateServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/padreadonly"},{"name":"padurlsanitize","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/padurlsanitize:expressCreateServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/padurlsanitize"},{"name":"specialpages","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/specialpages:expressCreateServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/specialpages"},{"name":"i18n","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/i18n:expressCreateServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/i18n"},{"name":"static","hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/static:expressCreateServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/static"},{"name":"express","hooks":{"createServer":"ep_etherpad-lite/node/hooks/express:createServer","restartServer":"ep_etherpad-lite/node/hooks/express:restartServer"},"plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/express"}]},"initialChangesets":[]}} Mar 07, 2013 4:59:49 PM com.etherpad.lite.EtherpadLiteConnection$ConnHandler onMessage INFO: XXXXXXXXXX Received from server {"data":{"initialRevisionList":[],"initialChangesets":[],"opts":{},"plugins":{"plugins":{"ep_etherpad-lite":{"package":{"contributors":[{"name":"John McLear"},{"name":"Hans Pinckaers"},{"name":"Robin Buse"},{"name":"Marcel Klehr"}],"keywords":["etherpad","realtime","collaborative","editor"],"link":"/home/dblank/Downloads/ether-etherpad-lite-8440128/src","engines":{"node":">=0.6.3","npm":">=1.0"},"realPath":"/home/dblank/Downloads/ether-etherpad-lite-8440128/src","devDependencies":{"wd":"0.0.31"},"depth":1,"homepage":"https://github.com/ether/etherpad-lite","version":"1.2.81","author":"Peter 'Pita' Martischka petermartischka@googlemail.com - Primary Technology Ltd","description":"A Etherpad based on node.js","name":"ep_etherpad-lite","path":"/home/dblank/Downloads/ether-etherpad-lite-8440128/node_modules/ep_etherpad-lite","realName":"ep_etherpad-lite","bin":{"etherpad-lite":"./node/server.js"}},"parts":[{"hooks":{"restartServer":"ep_etherpad-lite/node/hooks/express:restartServer","createServer":"ep_etherpad-lite/node/hooks/express:createServer"},"name":"express","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/express"},{"hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/static:expressCreateServer"},"name":"static","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/static"},{"hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/i18n:expressCreateServer"},"name":"i18n","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/i18n"},{"hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/specialpages:expressCreateServer"},"name":"specialpages","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/specialpages"},{"hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/padurlsanitize:expressCreateServer"},"name":"padurlsanitize","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/padurlsanitize"},{"hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/padreadonly:expressCreateServer"},"name":"padreadonly","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/padreadonly"},{"hooks":{"expressConfigure":"ep_etherpad-lite/node/hooks/express/webaccess:expressConfigure"},"name":"webaccess","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/webaccess"},{"hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/apicalls:expressCreateServer"},"name":"apicalls","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/apicalls"},{"hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/importexport:expressCreateServer"},"name":"importexport","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/importexport"},{"hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/errorhandling:expressCreateServer"},"name":"errorhandling","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/errorhandling"},{"hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/socketio:expressCreateServer"},"name":"socketio","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/socketio"},{"hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/tests:expressCreateServer"},"name":"tests","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/tests"},{"hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/admin:expressCreateServer"},"name":"admin","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/admin"},{"hooks":{"socketio":"ep_etherpad-lite/node/hooks/express/adminplugins:socketio","expressCreateServer":"ep_etherpad-lite/node/hooks/express/adminplugins:expressCreateServer"},"name":"adminplugins","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/adminplugins"},{"hooks":{"socketio":"ep_etherpad-lite/node/hooks/express/adminsettings:socketio","expressCreateServer":"ep_etherpad-lite/node/hooks/express/adminsettings:expressCreateServer"},"name":"adminsettings","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/adminsettings"}]}},"parts":[{"hooks":{"socketio":"ep_etherpad-lite/node/hooks/express/adminsettings:socketio","expressCreateServer":"ep_etherpad-lite/node/hooks/express/adminsettings:expressCreateServer"},"name":"adminsettings","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/adminsettings"},{"hooks":{"socketio":"ep_etherpad-lite/node/hooks/express/adminplugins:socketio","expressCreateServer":"ep_etherpad-lite/node/hooks/express/adminplugins:expressCreateServer"},"name":"adminplugins","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/adminplugins"},{"hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/admin:expressCreateServer"},"name":"admin","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/admin"},{"hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/tests:expressCreateServer"},"name":"tests","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/tests"},{"hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/socketio:expressCreateServer"},"name":"socketio","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/socketio"},{"hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/errorhandling:expressCreateServer"},"name":"errorhandling","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/errorhandling"},{"hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/importexport:expressCreateServer"},"name":"importexport","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/importexport"},{"hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/apicalls:expressCreateServer"},"name":"apicalls","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/apicalls"},{"hooks":{"expressConfigure":"ep_etherpad-lite/node/hooks/express/webaccess:expressConfigure"},"name":"webaccess","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/webaccess"},{"hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/padreadonly:expressCreateServer"},"name":"padreadonly","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/padreadonly"},{"hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/padurlsanitize:expressCreateServer"},"name":"padurlsanitize","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/padurlsanitize"},{"hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/specialpages:expressCreateServer"},"name":"specialpages","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/specialpages"},{"hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/i18n:expressCreateServer"},"name":"i18n","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/i18n"},{"hooks":{"expressCreateServer":"ep_etherpad-lite/node/hooks/express/static:expressCreateServer"},"name":"static","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/static"},{"hooks":{"restartServer":"ep_etherpad-lite/node/hooks/express:restartServer","createServer":"ep_etherpad-lite/node/hooks/express:createServer"},"name":"express","plugin":"ep_etherpad-lite","full_name":"ep_etherpad-lite/express"}]},"userIsGuest":true,"initialOptions":{"guestPolicy":"deny"},"initialTitle":"Pad: test2","globalPadId":"test2","serverTimestamp":1362693589256,"savedRevisions":[],"abiwordAvailable":"no","numConnectedUsers":0,"colorPalette":["#ffc7c7","#fff1c7","#e3ffc7","#c7ffd5","#c7ffff","#c7d5ff","#e3c7ff","#ffc7f1","#ff8f8f","#ffe38f","#c7ff8f","#8fffab","#8fffff","#8fabff","#c78fff","#ff8fe3","#d97979","#d9c179","#a9d979","#79d991","#79d9d9","#7991d9","#a979d9","#d979c1","#d9a9a9","#d9cda9","#c1d9a9","#a9d9b5","#a9d9d9","#a9b5d9","#c1a9d9","#d9a9cd","#4c9c82","#12d1ad","#2d8e80","#7485c3","#a091c7","#3185ab","#6818b4","#e6e76d","#a42c64","#f386e5","#4ecc0c","#c0c236","#693224","#b5de6a","#9b88fd","#358f9b","#496d2f","#e267fe","#d23056","#1a1a64","#5aa335","#d722bb","#86dc6c","#b5a714","#955b6a","#9f2985","#4b81c8","#3d6a5b","#434e16","#d16084","#af6a0e","#8c8bd8"],"userColor":28,"userId":"a.yN7aAoTV6cQCWfZz","accountPrivs":{"maxRevisions":100},"clientIp":"127.0.0.1","padId":"test2","readonly":false,"readOnlyId":"r.TJjaqmUayLVBQ6Vs","collab_client_vars":{"time":1362692693910,"rev":6,"initialAttributedText":{"text":"here blahis my text\n\n","attribs":"|2+l"},"globalPadId":"test2","clientIp":"127.0.0.1","padId":"test2","apool":{"numToAttrib":{},"nextNum":0},"historicalAuthorData":{"a.yN7aAoTV6cQCWfZz":{"name":null,"colorId":28,"padIDs":{"test2":1}}}},"chatHead":-1},"type":"CLIENT_VARS"} Mar 07, 2013 4:59:50 PM io.socket.IOConnection sendPlain INFO: > 4:::{"component":"pad","data":{"baseRev":6,"type":"USER_CHANGES","apool":{"nextNum":0},"changeset":"Z:l<5|1-k+f$here is my text"},"type":"COLLABROOM"} Mar 07, 2013 4:59:50 PM io.socket.IOConnection transportMessage INFO: < 4:::{"type":"COLLABROOM","data":{"type":"NEW_CHANGES","newRev":8,"changeset":"Z:g>1=f|1+1$\n","apool":{"numToAttrib":{},"attribToNum":{},"nextNum":0},"author":"","currentTime":1362693590151,"timeDelta":2}} Mar 07, 2013 4:59:50 PM com.etherpad.lite.EtherpadLiteConnection$ConnHandler onMessage INFO: XXXXXXXXXX Received from server {"data":{"currentTime":1362693590151,"author":"","timeDelta":2,"newRev":8,"type":"NEW_CHANGES","apool":{"numToAttrib":{},"attribToNum":{},"nextNum":0},"changeset":"Z:g>1=f|1+1$\n"},"type":"COLLABROOM"} Mar 07, 2013 4:59:50 PM com.etherpad.lite.EtherpadPad onNewChanges INFO: New Change with rev8 Mar 07, 2013 4:59:50 PM com.etherpad.lite.EtherpadPad onNewChanges SEVERE: Sent changeset revision is too high. Trying to recover by sending an implicit ACCEPT Mar 07, 2013 4:59:50 PM com.etherpad.lite.EtherpadPad onAcceptCommit INFO: Accepting commit with rev7 Mar 07, 2013 4:59:50 PM io.socket.IOConnection sendPlain INFO: > 4:::{"component":"pad","data":{"baseRev":8,"type":"USER_CHANGES","apool":{"nextNum":0},"changeset":"Z:h>4=5+4$blah"},"type":"COLLABROOM"} Mar 07, 2013 4:59:51 PM com.etherpad.lite.EtherpadPad actionPerformed INFO: No changes to be send. Mar 07, 2013 4:59:51 PM com.etherpad.lite.EtherpadPad actionPerformed INFO: Failed to send changes because ACCEPT was not yet received. Mar 07, 2013 4:59:52 PM com.etherpad.lite.EtherpadPad actionPerformed INFO: Failed to send changes because ACCEPT was not yet received. Mar 07, 2013 4:59:52 PM com.etherpad.lite.EtherpadPad actionPerformed INFO: Failed to send changes because ACCEPT was not yet received. ... repeats forever...

jukowski commented 11 years ago

1) What is the state of jeasysync2? Is it complete? If not, what is it missing? It has everything a Java program would need for creating / applying Changesets. 2) The code got lost (not commited).

The "INFO: Failed to send changes because ACCEPT was not yet received." basically means that the library sent changes to Etherpad but it didn't receive an acknowledge message so that it can continue sending more messages. That's what I meant when I said that Java <-> SocketIO connectivity is broken.

Since you want to use .NET, wouldn't it be easier to emulate JavaScript? https://github.com/josephg/ShareJS/blob/master/src/lib-etherpad/Changeset.js - has the needed functions for creating Changesets.

dsblank commented 11 years ago

1) That is great that the jeasysync2 code is complete! (Too bad you lost your code. Sorry to hear that. There are decompilers, if you still have the class files).

C# is much closer to Java than JavaScript, so I think it will be much easier to just port your jeasysync2 to C#. I was hesitating, as I was not sure why your code didn't work. But now that I know that it is just the socket io library, I'll finish my port this week, and test.

Thanks again!