Thanks, but it isn’t clear to me exactly what is at stake here. If this is a “design” level proposal, perhaps it should go through the RFC process rather than straight to a vote.
Either way, a short summary of the problem description, the possible paths forward, and the advantages/disadvantages of each might be helpful context before we start voting. > On Dec 16, 2019, at 12:13 PM, Mark Hanson <mhan...@pivotal.io> wrote: > > It has been said I have a negative vote which is counter intuitive. > > VOTE SUBJECT: > > Should we continue migrating from AttributesFactory usage to RegionFactory > usage and merge the RegionFactory copy constructor. > > > +1 to Migrate to RegionFactory from AttributesFactory and merge the > RegionFactory copy constructor > 0 don’t care > -1 stop migrating from AttributesFactory to RegionFactory and wait for > Management V2 API. > > >> On Dec 16, 2019, at 11:08 AM, Mark Hanson <mhan...@pivotal.io> wrote: >> >> Actually, I would say that it would not be necessary to have a copy >> constructor if it were not for the way the tests are written that assume an >> AttributesFactory. I think the discussion boils down to this… >> >> Do we migrate to the RegionFactory API from AttributesFactory or do we wait >> for the Management V2 API. I would heartily support the V2 API, I have used >> the REST version of it and it was great. That said, when will that arrive. >> >> We currently have a deprecated API and a current (wrapper) API. The >> Management V2 is an expected, but not realized API at this point. >> >> As a community, I would like to decide if I should revert my changes to >> modernize the test, but going to RegionFactory and just put in the core >> fixes. I can do that. I am fine with that. I just don’t want to sit in the >> middle. I don’t see how I can move to RegionFactory API without a >> significant test restructuring without the copy constructor. >> >> VOTE SUBJECT: >> >> Stop migrating from AttributesFactory to RegionFactory and wait for >> Management V2 API. >> >> Again, I am 100% fine either way, I just want a clear direction. :) >> >> This would mean reverting my changes to update, (totally fine) and then >> putting in only the fixes. In the near future, we would also stop migrating >> from AttributesFactory to RegionFactory while we wait for the Management V2 >> API. >> >> >> Thanks, >> Mark >> >> >> >>> On Dec 16, 2019, at 10:47 AM, Udo Kohlmeyer <ukohlme...@pivotal.io >>> <mailto:ukohlme...@pivotal.io>> wrote: >>> >>> -1 to adding a copy constructor onto any /**Factory*/ classes. >>> >>> I have never seen a copy constructor on a Factory pattern in the wild. >>> >>> That said, having done some Googling, this is something that people talk >>> about, so it cannot be THAT foreign. >>> >>> There is one thing I want to point out here. There is work currently being >>> done on the new Management/Configuration V2 API's. One of the goals of this >>> project is to have a single API to create/update/delete and management the >>> configuration and creation (realization of configuration). I'm advocating >>> that new Management/Configuration v2 API's need to be interacting with it, >>> rather than a user directly. This, adding a "copy constructor" of >>> configuration should be added onto the v2 API's rather than on the >>> /**Factory*/ classes. >>> >>> That said, having */*Factories/* as public API's that are use to create a >>> /*Region*/, that is correct for the module. But any utility capability to >>> copy configuration needs to be addressed by the Management API and not the >>> /*Factory*/ classes. >>> >>> --Udo >>> >>> >>> On 12/13/19 10:01 AM, Darrel Schneider wrote: >>>> The v2 management api allows regions to be created remotely in cluster >>>> configuration and on running servers. But it does not allow you to create a >>>> region on a client. Non-spring applications can use RegionFactory to create >>>> the region on the client side. >>>> >>>> >>>> On Fri, Dec 13, 2019 at 9:56 AM Dan Smith <dsm...@pivotal.io >>>> <mailto:dsm...@pivotal.io>> wrote: >>>> >>>>> +1 to adding a way to copy the RegionAttributes. >>>>> >>>>> BTW, I really wish this RegionFactory was an interface. I don't know if >>>>> adding a copy constructor makes it harder to migrate to an interface >>>>> later, >>>>> but maybe just having this single public method might be better? >>>>> >>>>> + <K, V> RegionFactory<K, V> createRegionFactory(RegionFactory<K, V> >>>>> regionFactory); >>>>> >>>>> On Fri, Dec 13, 2019 at 9:35 AM Mark Hanson <mhan...@pivotal.io >>>>> <mailto:mhan...@pivotal.io>> wrote: >>>>> >>>>>> Hi Udo, >>>>>> >>>>>> I disagree. I believe the currently published best practice is to use >>>>>> RegionFactory. As a part of the work I have been doing, I have been >>>>>> migrating code from the AttributesFactory pattern to the RegionFactory >>>>>> pattern. To support that, I believe a copy constructor for RegionFactory >>>>> is >>>>>> necessary. And thus a createRegionFactory >>>>>> >>>>>> Hence my changes. >>>>>> >>>>>> Thanks, >>>>>> Mark >>>>>> >>>>>>> On Dec 11, 2019, at 4:41 PM, Udo Kohlmeyer <ukohlme...@pivotal.io >>>>>>> <mailto:ukohlme...@pivotal.io>> >>>>>> wrote: >>>>>>> I think at this point I'd be looking at the new V2 Management API's for >>>>>> Regions. >>>>>>> I think any new "public" effort that we'd be adding to the product >>>>>> should be done through the Management API's for Regions, rather than >>>>>> exposing new public API's that in reality should not be made "public". >>>>>>> --Udo >>>>>>> >>>>>>> On 12/11/19 3:53 PM, Mark Hanson wrote: >>>>>>>> Basically the point is to allow a use to copy a RegionFactory because >>>>>> under certain circumstances it is necessary. I found that when migrating >>>>>> from AttributesFactory. >>>>>>>> Thanks, >>>>>>>> Mark >>>>>>>> >>>>>>>>> On Dec 11, 2019, at 3:48 PM, Anthony Baker <aba...@pivotal.io >>>>>>>>> <mailto:aba...@pivotal.io>> >>>>> wrote: >>>>>>>>> Mark, >>>>>>>>> >>>>>>>>> Can you share how the API changes will help the user? >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> Anthony >>>>>>>>> >>>>>>>>> >>>>>>>>>> On Dec 11, 2019, at 2:57 PM, Mark Hanson <mhan...@pivotal.io >>>>>>>>>> <mailto:mhan...@pivotal.io>> >>>>> wrote: >>>>>>>>>> Hi All, >>>>>>>>>> >>>>>>>>>> There was a suggestion that since I am making a couple user visible >>>>>> API changes that I might want to ask the dev list. >>>>>>>>>> Basically I was migrating code from AttributesFactory to >>>>>> RegionFactory and hit a few snags along the way. >>>>>>>>>> Please see https://github.com/apache/geode/pull/4409 >>>>>>>>>> <https://github.com/apache/geode/pull/4409> < >>>>>> https://github.com/apache/geode/pull/4409 >>>>>> <https://github.com/apache/geode/pull/4409>> specifically Cache.java, >>>>>> RegionFactory.java, and for extra credit GemfireCacheImpl.java >>>>>>>>>> I have commented at the relevant changes. >>>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> Mark >>>>>> >> >