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)
>

Reply via email to