[jira] [Assigned] (IGNITE-10075) .NET: Avoid binary configurations of Ignite Java service params and result when calling it from Ignite.NET
[ https://issues.apache.org/jira/browse/IGNITE-10075?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nikolay Izhikov reassigned IGNITE-10075: Assignee: Nikolay Izhikov (was: Alexey Kukushkin) > .NET: Avoid binary configurations of Ignite Java service params and result > when calling it from Ignite.NET > -- > > Key: IGNITE-10075 > URL: https://issues.apache.org/jira/browse/IGNITE-10075 > Project: Ignite > Issue Type: Improvement > Components: platforms >Affects Versions: 2.9 >Reporter: Alexey Kukushkin >Assignee: Nikolay Izhikov >Priority: Major > Labels: .NET, sbcf > Attachments: IGNITE-10075-from-2.9.0.patch, MyTest.cs > > Time Spent: 10m > Remaining Estimate: 0h > > Presently if there is an Ignite Java service taking parameters of complex > (composite) types and returning a result of complex type then all the complex > types must be explicitly specified in the binary configuration. > We need to enhance Ignite not to require binary configuration assuming that > we use the same type, package/namespace and field/property names on both the > .NET and Java sides (or provide a custom name mapper for relaxed naming > conventions). > h2. Reproducer > [https://github.com/kukushal/apache-ignite-issue10075.git] > h3. ICalculator.java > {code:java} > package Apache.Ignite.Issue10075; > public interface ICalculator { > Result Calculate(Parameter p); > } > {code} > h3. Parameter.java > {code:java} > package Apache.Ignite.Issue10075; > public final class Parameter { > private int id; > private double val; > public int getId() { > return id; > } > public Parameter setId(int id) { > this.id = id; > return this; > } > public double getValue() { > return val; > } > public Parameter setValue(double val) { > this.val = val; > return this; > } > } > {code} > h3. Result .java > {code:java} > package Apache.Ignite.Issue10075; > public final class Result { > private int id; > private double value; > public int getId() { > return id; > } > public Result setId(int id) { > this.id = id; > return this; > } > public double getValue() { > return value; > } > public Result setValue(double val) { > this.value = val; > return this; > } > } > {code} > h3. IgniteCalculatorService.java > {code:java} > package Apache.Ignite.Issue10075; > import org.apache.ignite.services.Service; > import org.apache.ignite.services.ServiceContext; > public final class IgniteCalculatorService implements Service, ICalculator { > @Override public Result Calculate(Parameter p) { > return new Result().setId(p.getId()).setValue(p.getValue() * > p.getValue()); > } > @Override public void cancel(ServiceContext ctx) { > } > @Override public void init(ServiceContext ctx) { > } > @Override public void execute(ServiceContext ctx) { > } > } > {code} > h3. build.gradle > {code:groovy} > plugins { > id 'java' > } > group 'apache.ignite.issue10075' > version '1.0.0-SNAPSHOT' > sourceCompatibility = 1.8 > repositories { > mavenLocal() > mavenCentral() > } > def igniteVer='2.9.0' > dependencies { > compile group: 'org.apache.ignite', name: 'ignite-core', version: > igniteVer > testCompile group: 'junit', name: 'junit', version: '4.12' > } > {code} > h3. Apache.Ignite.Issue10075/ignite-config.xml > {code:xml} > > http://www.springframework.org/schema/beans; >xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; >xsi:schemaLocation=" > http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans.xsd;> > class="org.apache.ignite.configuration.IgniteConfiguration"> > > > > > > > > class="Apache.Ignite.Issue10075.IgniteCalculatorService"/> > > > > > > > > class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder"> > > > 127.0.0.1:47500 > > > > > > > > > {code} > h3. Apache.Ignite.Issue10075/ICalculator.cs > {code:c#} > namespace Apache.Ignite.Issue10075 > { > public interface ICalculator > { > Result Calculate(Parameter p); > } > } > {code} >
[jira] [Assigned] (IGNITE-10075) .NET: Avoid binary configurations of Ignite Java service params and result when calling it from Ignite.NET
[ https://issues.apache.org/jira/browse/IGNITE-10075?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Alexey Kukushkin reassigned IGNITE-10075: - Assignee: Alexey Kukushkin (was: Nikolai Kulagin) > .NET: Avoid binary configurations of Ignite Java service params and result > when calling it from Ignite.NET > -- > > Key: IGNITE-10075 > URL: https://issues.apache.org/jira/browse/IGNITE-10075 > Project: Ignite > Issue Type: Improvement > Components: platforms >Affects Versions: 2.6 >Reporter: Alexey Kukushkin >Assignee: Alexey Kukushkin >Priority: Major > Labels: .NET, sbcf > Attachments: MyTest.cs, ignite-10075-vs-2.8.patch > > Time Spent: 10m > Remaining Estimate: 0h > > Presently if there is an Ignite Java service taking parameters of complex > (composite) types and returning a result of complex type then all the complex > types must be explicitly specified in the binary configuration. > We need to enhance Ignite not to require binary configuration assuming that > we use the same type, package/namespace and field/property names on both the > .NET and Java sides (or provide a custom name mapper for relaxed naming > conventions). > h2. Reproducer > h3. ICalculator.java > {code:java} > package Sandbox.Net; > public interface ICalculator { > Result Calculate(Parameter p); > } > {code} > h3. Parameter.java > {code:java} > package Sandbox.Net; > public class Parameter { > private int id; > private double val; > public int getId() { > return id; > } > public Parameter setId(int id) { > this.id = id; > return this; > } > public double getValue() { > return val; > } > public Parameter setValue(double val) { > this.val = val; > return this; > } > } > {code} > h3. Result .java > {code:java} > package Sandbox.Net; > public class Result { > private int id; > private double value; > public int getId() { > return id; > } > public Result setId(int id) { > this.id = id; > return this; > } > public double getValue() { > return value; > } > public Result setValue(double val) { > this.value = val; > return this; > } > } > {code} > h3. IgniteCalculatorService.java > {code:java} > package Sandbox.Net; > import org.apache.ignite.services.Service; > import org.apache.ignite.services.ServiceContext; > public class IgniteCalculatorService implements Service, ICalculator { > @Override public Result Calculate(Parameter p) { > return new Result().setId(p.getId()).setValue(p.getValue() * > p.getValue()); > } > @Override public void cancel(ServiceContext ctx) { > } > @Override public void init(ServiceContext ctx) { > } > @Override public void execute(ServiceContext ctx) { > } > } > {code} > h3. build.gradle > {code:groovy} > plugins { > id 'java' > } > group 'sandbox.net' > version '1.0-SNAPSHOT' > sourceCompatibility = 1.8 > repositories { > mavenLocal() > mavenCentral() > } > def igniteVer='2.8.0' > dependencies { > compile group: 'org.apache.ignite', name: 'ignite-core', version: > igniteVer > testCompile group: 'junit', name: 'junit', version: '4.12' > } > {code} > h3. ignite-config.xml > {code:xml} > > http://www.springframework.org/schema/beans; >xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; >xsi:schemaLocation=" > http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans.xsd;> > class="org.apache.ignite.configuration.IgniteConfiguration"> > > > > > > > > > > > > > > > > class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder"> > > > 127.0.0.1:47500 > > > > > > > > > {code} > h3. ICalculator.cs > {code:c#} > namespace Sandbox.Net > { > public interface ICalculator > { > Result Calculate(Parameter p); > } > } > {code} > h3. Parameter.cs > {code:c#} > namespace Sandbox.Net > { > public class Parameter > { > public int Id { get; set; } > public double Value { get; set; } > } > } > {code} > h3. Result.cs > {code:c#} > namespace Sandbox.Net > { > public class
[jira] [Assigned] (IGNITE-10075) .NET: Avoid binary configurations of Ignite Java service params and result when calling it from Ignite.NET
[ https://issues.apache.org/jira/browse/IGNITE-10075?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nikolai Kulagin reassigned IGNITE-10075: Assignee: Nikolai Kulagin (was: Pavel Tupitsyn) > .NET: Avoid binary configurations of Ignite Java service params and result > when calling it from Ignite.NET > -- > > Key: IGNITE-10075 > URL: https://issues.apache.org/jira/browse/IGNITE-10075 > Project: Ignite > Issue Type: Improvement > Components: platforms >Affects Versions: 2.6 >Reporter: Alexey Kukushkin >Assignee: Nikolai Kulagin >Priority: Major > Labels: .NET, sbcf > Attachments: MyTest.cs, ignite-10075-vs-2.8.patch > > > Presently if there is an Ignite Java service taking parameters of complex > (composite) types and returning a result of complex type then all the complex > types must be explicitly specified in the binary configuration. > We need to enhance Ignite not to require binary configuration assuming that > we use the same type, package/namespace and field/property names on both the > .NET and Java sides (or provide a custom name mapper for relaxed naming > conventions). > h2. Reproducer > h3. ICalculator.java > {code:java} > package Sandbox.Net; > public interface ICalculator { > Result Calculate(Parameter p); > } > {code} > h3. Parameter.java > {code:java} > package Sandbox.Net; > public class Parameter { > private int id; > private double val; > public int getId() { > return id; > } > public Parameter setId(int id) { > this.id = id; > return this; > } > public double getValue() { > return val; > } > public Parameter setValue(double val) { > this.val = val; > return this; > } > } > {code} > h3. Result .java > {code:java} > package Sandbox.Net; > public class Result { > private int id; > private double value; > public int getId() { > return id; > } > public Result setId(int id) { > this.id = id; > return this; > } > public double getValue() { > return value; > } > public Result setValue(double val) { > this.value = val; > return this; > } > } > {code} > h3. IgniteCalculatorService.java > {code:java} > package Sandbox.Net; > import org.apache.ignite.services.Service; > import org.apache.ignite.services.ServiceContext; > public class IgniteCalculatorService implements Service, ICalculator { > @Override public Result Calculate(Parameter p) { > return new Result().setId(p.getId()).setValue(p.getValue() * > p.getValue()); > } > @Override public void cancel(ServiceContext ctx) { > } > @Override public void init(ServiceContext ctx) { > } > @Override public void execute(ServiceContext ctx) { > } > } > {code} > h3. build.gradle > {code:groovy} > plugins { > id 'java' > } > group 'sandbox.net' > version '1.0-SNAPSHOT' > sourceCompatibility = 1.8 > repositories { > mavenLocal() > mavenCentral() > } > def igniteVer='2.8.0' > dependencies { > compile group: 'org.apache.ignite', name: 'ignite-core', version: > igniteVer > testCompile group: 'junit', name: 'junit', version: '4.12' > } > {code} > h3. ignite-config.xml > {code:xml} > > http://www.springframework.org/schema/beans; >xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; >xsi:schemaLocation=" > http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans.xsd;> > class="org.apache.ignite.configuration.IgniteConfiguration"> > > > > > > > > > > > > > > > > class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder"> > > > 127.0.0.1:47500 > > > > > > > > > {code} > h3. ICalculator.cs > {code:c#} > namespace Sandbox.Net > { > public interface ICalculator > { > Result Calculate(Parameter p); > } > } > {code} > h3. Parameter.cs > {code:c#} > namespace Sandbox.Net > { > public class Parameter > { > public int Id { get; set; } > public double Value { get; set; } > } > } > {code} > h3. Result.cs > {code:c#} > namespace Sandbox.Net > { > public class Result > { > public int Id { get; set; } >
[jira] [Assigned] (IGNITE-10075) .NET: Avoid binary configurations of Ignite Java service params and result when calling it from Ignite.NET
[ https://issues.apache.org/jira/browse/IGNITE-10075?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Pavel Tupitsyn reassigned IGNITE-10075: --- Assignee: Pavel Tupitsyn (was: Alexey Kukushkin) > .NET: Avoid binary configurations of Ignite Java service params and result > when calling it from Ignite.NET > -- > > Key: IGNITE-10075 > URL: https://issues.apache.org/jira/browse/IGNITE-10075 > Project: Ignite > Issue Type: Improvement > Components: platforms >Affects Versions: 2.6 >Reporter: Alexey Kukushkin >Assignee: Pavel Tupitsyn >Priority: Major > Labels: .NET, sbcf > Attachments: ignite-10075-vs-2.8.patch > > > Presently if there is an Ignite Java service taking parameters of complex > (composite) types and returning a result of complex type then all the complex > types must be explicitly specified in the binary configuration. > We need to enhance Ignite not to require binary configuration assuming that > we use the same type, package/namespace and field/property names on both the > .NET and Java sides (or provide a custom name mapper for relaxed naming > conventions). -- This message was sent by Atlassian Jira (v8.3.4#803005)