Andrey, If the changes affect public modifications don’t forget to update this page: https://cwiki.apache.org/confluence/display/IGNITE/Apache+Ignite+2.0+Migration+Guide <https://cwiki.apache.org/confluence/display/IGNITE/Apache+Ignite+2.0+Migration+Guide>
— Denis > On Feb 3, 2017, at 12:24 AM, Andrey Mashenkov <andrey.mashen...@gmail.com> > wrote: > > Vladimir, > > Ok. I'll go ahead with changing SPI interfaces and run TC test. > I think, it would be better to have this branch merged to master as 2 > separate commits at least. > And may be we should make changes of SPI interfaces in separate Jira > ticket? > > On Fri, Feb 3, 2017 at 11:08 AM, Vladimir Ozerov <voze...@gridgain.com> > wrote: > >> Andrey, >> >> This is very important change from usability standpoint. But my main >> concern is changes to SPI *interfaces*. If we do so users who implemented >> custom SPIs will have broken compatibility. On the other hand, I doubt >> there will be too much affected users, and we break compilation in AI 2.0 >> anyway. So looks like we can go ahead with it. >> >> Thoughts? >> >> On Fri, Feb 3, 2017 at 7:46 AM, Valentin Kulichenko < >> valentin.kuliche...@gmail.com> wrote: >> >>> My only concern is MBean interfaces. These are not called from code, but >>> from MBean viewers, and I'm not sure setters not returning voids will be >>> properly treated as setters by these viewers. This needs to be checked. >>> >>> -Val >>> >>> On Thu, Feb 2, 2017 at 8:32 PM, Andrey Mashenkov < >>> andrey.mashen...@gmail.com >>>> wrote: >>> >>>> Val, >>>> >>>> Yes, you are right. I don't think we should care about compilation >>>> error on user side, as we break compatibility with previous versions. >>>> But we talk about public interfaces and may be someone has some cons >>>> or suggestions? >>>> >>>> On Fri, Feb 3, 2017 at 5:31 AM, Valentin Kulichenko < >>>> valentin.kuliche...@gmail.com> wrote: >>>> >>>>> Andrey, >>>>> >>>>> In which case compatibility is broken? If there is a method that >>> returns >>>>> void and you change it to return some type, it doesn't break >> anything, >>>>> because currently nobody can assign the result of this method to a >>>>> variable. I.e. in old code the returned value will be always ignored, >>>>> therefore it can be of any type. >>>>> >>>>> Is there anything else that I'm missing? >>>>> >>>>> -Val >>>>> >>>>> On Thu, Feb 2, 2017 at 3:49 AM, Andrey Mashenkov < >>>>> andrey.mashen...@gmail.com >>>>>> wrote: >>>>> >>>>>> Hi Igniters, >>>>>> >>>>>> >>>>>> I'm working on IGNITE-4564 [1] to make our configuration classes >> and >>>> SPI >>>>>> classes more convenient. >>>>>> >>>>>> There is no problem to change return type in setter method >> signatures >>>>>> and override methods in child child classes to make them return >> more >>>>>> accurate type. >>>>>> >>>>>> But, I found that we have set methods in some of our interfaces and >>>>>> changing its signature may broke compatibility with user >>>> implementations. >>>>>> >>>>>> Here are example interfaces with setters: >>>>>> org.apache.ignite.cache.eviction.fifo.FifoEvictionPolicyMBean >>>>>> org.apache.ignite.cache.eviction.igfs. >> IgfsPerBlockLruEvictionPolicyM >>>>> XBean >>>>>> org.apache.ignite.cache.eviction.lru.LruEvictionPolicyMBean >>>>>> org.apache.ignite.cache.eviction.sorted.SortedEvictionPolicyMBean >>>>>> org.apache.ignite.spi.checkpoint.CheckpointSpi >>>>>> org.apache.ignite.spi.collision.CollisionSpi >>>>>> org.apache.ignite.spi.collision.fifoqueue. >> FifoQueueCollisionSpiMBean >>>>>> >>>>>> However we have interfaces with NO setters >>>>>> org.apache.ignite.spi.loadbalancing.adaptive. >>>>>> AdaptiveLoadBalancingSpiMBean. >>>>>> >>>>>> What can we do with it? >>>>>> Change signature of setters without regarding compatibility? Or may >>> be >>>> it >>>>>> is possible to remove setters from some interfaces? >>>>>> >>>>>> Thought? >>>>>> >>>>>> >>>>>> [1] https://issues.apache.org/jira/browse/IGNITE-4564 >>>>>> >>>>> >>>> >>>> >>>> >>>> -- >>>> С уважением, >>>> Машенков Андрей Владимирович >>>> Тел. +7-921-932-61-82 >>>> >>>> Best regards, >>>> Andrey V. Mashenkov >>>> Cerr: +7-921-932-61-82 >>>> >>> >> > > > > -- > С уважением, > Машенков Андрей Владимирович > Тел. +7-921-932-61-82 > > Best regards, > Andrey V. Mashenkov > Cerr: +7-921-932-61-82