opencoweb / coweb

Open Cooperative Web Framework
Other
232 stars 29 forks source link

Expose Java Operational Transform API #200

Open ccotter opened 12 years ago

ccotter commented 12 years ago

The idea of moving the Java operational transform code into a separate repository and exposing the API has come up, so this issue will track further discussion and progress on a possible eventual implementation.

Current OT code status in coweb

There are two versions of the OT code in coweb: JavaScript and Java. The JavaScript version lives as a subdirectory in the coweb-javascript maven project in coweb-javascript/src/main/webapp/coweb/jsoe. The contents of this directory are only the raw OT JavaScript code.

The Java OT code exists as its own maven repository coweb-operationengine. The differences are important, and have good reason. It makes sense to have the Java OT code as a maven module, but typical JavaScript libraries do not exist as maven modules.

Options

If we did want to move the Java OT code out of coweb.git, there are two options. The following assumes moving the JavaScript OT code into a separate git repository coweb-jsoe.

  1. Have javascript and java OT in the same git repo (coweb-ot). This is nice because all OT code is together in a single project...however it makes maintaining coweb.git harder because no longer could we do the simple git submodule trick. With only coweb-jsoe, coweb.git has a single submodule in coweb/servers/java/coweb-javascript/src/main/webapp/coweb/jsoe. If both java and javascript OT are in a single git repo, then we could not have coweb.git use the OT code as a submodule due to the way coweb/servers/java is setup (we would have to manually pull the java and javascript sources in...).
  2. Have two new git repos: coweb-jsoe and coweb-javaoe. coweb.git includes both projects into itself as git submodules.

Pros:

Cons: