[ 
https://issues.apache.org/jira/browse/IGNITE-10100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17106927#comment-17106927
 ] 

Ivan Daschinskiy edited comment on IGNITE-10100 at 5/14/20, 6:20 AM:
---------------------------------------------------------------------

[~ptupitsyn], thanks for you review.  I've fixed you remarks.

??My only concern: do we need annotations and properties? Seems a bit too 
complicated.??
Let's me explain. These annotations is absolutely optional. User of ignite has 
choice write something like this:

{code:java}
interface PlatformService {
    PropertyType get_MyProperty();
    void set_MyProperty(PropertyType t);
    Collection<String> GetListOfStrings();
}
{code}
But, although this code works good, it looks totally awful for java world. This 
naming is against almost all codestyles, so
user of ignite will have to tune linters, codestyle checkers and so one. And, 
for typical java user, annotations is something very common, he or she uses 
them almost everywhere and most of them not only changes names of field for 
serialization, but adds complex behaviour (i.e. famous spring framework). 
I suppose that giving a convenient not-obligatory option is a good from user 
perspective. I, as a user of both platforms, likes C# properties and respect 
codestyle of Java, so as a user, I would prefer use annotations. 

??Also, it would be great to ask someone who is an expert on Java services to 
have a look as well.??
[~ptupitsyn] [~nizhikov] Who do you think is the best candidate for this role 
from community?




was (Author: ivandasch):
[~ptupitsyn], thanks for you review.

??My only concern: do we need annotations and properties? Seems a bit too 
complicated.??
Let's me explain. These annotations is absolutely optional. User of ignite has 
choice write something like this:

{code:java}
interface PlatformService {
    PropertyType get_MyProperty();
    void set_MyProperty(PropertyType t);
    Collection<String> GetListOfStrings();
}
{code}
But, although this code works good, it looks totally awful for java world. This 
naming is against almost all codestyles, so
user of ignite will have to tune linters, codestyle checkers and so one. And, 
for typical java user, annotations is something very common, he or she uses 
them almost everywhere and most of them not only changes names of field for 
serialization, but adds complex behaviour (i.e. famous spring framework). 
I suppose that giving a convenient not-obligatory option is a good from user 
perspective. I, as a user of both platforms, likes C# properties and respect 
codestyle of Java, so as a user, I would prefer use annotations. 

??Also, it would be great to ask someone who is an expert on Java services to 
have a look as well.??
[~ptupitsyn] [~nizhikov] Who do you think is the best candidate for this role 
from community?



> Add public Java API to call Ignite.NET services
> -----------------------------------------------
>
>                 Key: IGNITE-10100
>                 URL: https://issues.apache.org/jira/browse/IGNITE-10100
>             Project: Ignite
>          Issue Type: Improvement
>          Components: platforms
>    Affects Versions: 2.6
>            Reporter: Alexey Kukushkin
>            Assignee: Ivan Daschinskiy
>            Priority: Major
>              Labels: .NET, sbcf
>             Fix For: 2.9
>
>         Attachments: ignite-10100-vs-2.8.patch
>
>          Time Spent: 1h 10m
>  Remaining Estimate: 0h
>
> Ignite wraps .NET services in PlatformDotNetServiceImpl implementing 
> PlatformService interface.
> PlatformService is defined in internal Ignite package 
> apache.ignite.internal.processors.platform.services. It exposes
> {{ invokeMethod(methodName, Object[] params): Object}}
> to call any service method dynamically. Right now there is no Ignite public 
> API to call a PlatformService using static typing.
> We need to develop a public API to call PlatformDotNetServiceImpl using 
> static typing in Java.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to