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/
>

Reply via email to