Well, ServerLauncher may or may not create a CacheServer instance when it
starts a server.  A server can be created without a CacheServer, for
instance, when in *Gfsh* `start server --disable-default-server` option is
specified.

In addition, you can always find or get the list of CacheServers (if
present) from the Cache instance, using
Cache.getCacheServers():List<CacheServer> [1].  So, I think it would be
better if the ServerLauncher returned a handle to the Cache and then drill
down as opposed to up.

-j


[1]
http://geode.apache.org/releases/latest/javadoc/org/apache/geode/cache/Cache.html#getCacheServers--


On Thu, Nov 1, 2018 at 7:31 AM, Bruce Schuchardt <bschucha...@pivotal.io>
wrote:

> I like this but it might be even better if ServerLauncher gave access to
> the CacheServer it launched and CacheServer gave access to its cache.  The
> Locator interface, as well, could have a getCache() method and deprecate
> the getDistributedSystem() method.  These days a Locator always has a Cache
> and no-one is interested in its DistributedSystem.
>
>
> On 10/31/18 2:48 PM, Kirk Lund wrote:
>
>> LocatorLauncher provides an API which can be used in-process to create a
>> Locator. There is no public API on that class to get a reference to the
>> Locator or its Cache.
>>
>> Similarly, ServerLauncher provides an API which can be used in-process to
>> create a Server, but there is no public API in that class to get a
>> reference to its Cache.
>>
>> The User of either Launcher would then have to resort to invoking
>> singletons to get a reference to the Cache.
>>
>> There are existing package-private getter APIs on both Launchers but
>> they're only used by tests in that same package.
>>
>> I propose adding public APIs for getCache to both LocatorLauncher and
>> ServerLauncher as well as adding getLocator to LocatorLauncher. The
>> signatures would look like:
>>
>> /**
>>   * Gets a reference to the Cache that was created by this ServerLauncher.
>>   *
>>   * @return a reference to the Cache
>>   */
>> public org.apache.geode.cache.Cache getCache();
>>
>> /**
>>   * Gets a reference to the Locator that was created by this
>> LocatorLauncher.
>>   *
>>   * @return a reference to the Locator
>>   */
>> public org.apache.geode.distributed.Locator getLocator();
>>
>> Any thoughts? Yay or nay?
>>
>> Thanks,
>> Kirk
>>
>>
>


-- 
-John
john.blum10101 (skype)

Reply via email to