Hi Alexey, Thanks for a detailed email. I think your approach is correct. Are you planning to implement the full JCache API for the Java thin client? If yes, I think you are missing the invoke(...) methods.
Also, would be nice to support transactions as well. D. On Tue, Jan 16, 2018 at 12:03 AM, Alexey Kukushkin < kukushkinale...@gmail.com> wrote: > Igniters, > > I am working on a project where users will use Ignite via a thin client > protocol. The API will be Java and the client will have to support failover > and encryption. > > I know community already developed the thin client protocol and .NET > bindings and is going to develop failover and encryption (I found backlog > tickets addressing failover and encryption). Thus, the only missing part is > Java bindings. > > Unless someone is already working on Java bindings, let us develop and > contribute the thin client Java API to the Apache Ignite project. I believe > many can benifit from it. > > There are two options to design the API: 1) implement existing interface > like IgniteCache and throw UnsupportedOperationExcception if something is > not supported 2) implement new interface and define only supported methods. > The Community already discussed the options > <http://apache-ignite-developers.2346864.n4.nabble. > com/New-thin-client-and-interfaces-facades-td22023.html> > decided to use the latter option 2 for .NET bindings so we will follow the > same approach for the Java API. > > On the first phase we will implement the below data-only API. Let us know > if > you have comments. Thank you! > > Cache > JCache (limited) > getName(): String > put(key, val) > get(key): V > getAll(keys: Set): Map > containsKey(key): boolean > getAndPut(key, val): V > getAndReplace(key, val): V > getAndRemove(key): V > putIfAbsent > replace(key, val) > replace(key, oldVal, newVal) > putAll > clear > remove(key) > remove(key, val) > removeAll() > removeAll(keys: Set) > getConfiguration(clazz): Configuration > close() > size(modes: CachePeekMode...) > query(qry: Query): QueryCursor > query(qry: SqlFieldsQuery): FieldsQueryCursor<List> > withKeepBinary(): IgniteCache > Ignite > cache(name: String) > cacheNames(): Collection > binary(): IgniteBinary > createCache(name): Cache > getOrCreateCache(name): Cache > destroyCache(name) > Ignition > startClient(:ClientConfiguration): Ignite > ClientConfiguration(port, host, binaryConfiguration, sslConfiguration, > etc...) > > > > > > > > -- > Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/ >