It looks like we never came to a consensus on this thread, and meanwhile
the urgency for this fix has gone away. The original urgency was to give
spring data geode a way to avoid using internal APIs, but that has been
fixed a different way in SDG.

I still think this would be a good change to make to get away from needing
singletons in the future, but for now I've moved this to the icebox.

-Dan

On Mon, Dec 9, 2019 at 5:20 PM Dan Smith <dsm...@pivotal.io> wrote:

> On Fri, Dec 6, 2019 at 10:45 AM Dale Emery <dem...@pivotal.io> wrote:
>
>>
>> > Dale - are you suggesting a ConnectionPoolService that returns
>> ConnectionPool instances?
>>
>> Yes.
>>
>> > Would that mean ConnectionPool would extend Pool and we would deprecate
>> Pool itself?
>>
>> Maybe extend. I worry about extending, for two reasons.
>>
>> First, extending would make the new interface depend on the deprecated
>> one. That feels awkward for reasons I can’t articulate
>>
>> Second, extending would mean that the new interface gets all the methods
>> of the deprecated one whether we want them or not. I don’t know enough
>> about Pool to have an opinion about whether we want to carry all of its
>> method signatures forward.
>>
>> An alternative to consider: Each ConnectionPool implementation delegates
>> to a Pool. I suspect that this would make it harder to migrate existing
>> uses from Pool to ConnectionPool.
>>
>
> We could flip what extends what - Have Pool extend ConnectionPool.
> Deprecate Pool. This would affect the following public APIs:
>
> Pool: Would need to extend a new parent interface called ConnectionPool
> PoolFactory: Would also need a new parent interface called
> ConnectionPoolFactory
> FunctionService: Would need to take ConnectionPool instead of Pool
> ClientCacheFactory: Deprecate all the  setPoolXXX methods and add
> setConnectionPoolXXX?
> ClientCache: Deprecate getDefaultPool and add getDefaultConnectionPool?
> RegionFactory and RegionAttributes: Deprecate setPoolName and add
> setConnectionPoolName
> cache-1.0.xsd : Deprecate the <pool> elements and add <connection-pool>
> elements instead.
> This will also affect downstream projects that use a pool such as Spring
> Data Geode - that project will maybe want to rename PoolFactoryBean, etc.
>
> I guess I'm not sold that making all these name changes is worth it to
> users. Just removing the singleton as the current proposal stands is a much
> smaller scope of change. What do you all think?
>
> -Dan
>

Reply via email to