titan-data / titan-server

Titan server to support local docker development
Apache License 2.0
5 stars 3 forks source link

provider refactor part one #70

Closed eschrock closed 4 years ago

eschrock commented 4 years ago

Proposed Changes

This is the first phase of the provider refactor. The goal of this phase is to remove the strong type checking for the Remote and RemoteParameter types, and instead move to a flag property namespace. This eliminates some of the benefits of strong type checking, but since the client never even sees these types (thanks to RemoteUtil), there's less benefit than one would normally expect.

The reason we're doing this is we want to make the providers much more loosely coupled with titan-server, to the point where they can run in separate processes and built from separate repos. Having a tight dependency on the titan-server type system makes this much more brittle. One change made in support of this direction is to ditch the validateOperation() method, which was only different for the nop provider and nothing else. This was just made a special case for nop since it's really only for testing.

Future work will further remove any dependencies such that the provider interfaces only operate on maps and strings, without any tight coupling.

Testing

gradle build test integrationTest endtoendTest (including engine tests).