I'm with Bill and John on this one. Give the top-level object only and let users move down the object heirarchy.
On Thu, Nov 1, 2018 at 9:38 AM John Blum <jb...@pivotal.io> wrote: > 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) >