Yes, it's redundant (i.e. Enum + class type).

However, having an Enum in addition to a specific type (1 reason I
defaulted the getType() method) can still be useful, such as in a switch
statement for example.  Enums are, well, easier to enumerate (useful in
Streams with filters).  Maybe you are going to classify certain Proxy's by
Enum type, for example:

enum ProxyType {

    ONE,
    TWO,
    THREE;

    // Contrived example
    public boolean isSecure() {
        return Arrays.asList(ONE, THREE).contains(this);
    }
}

Then:

Iterable<ProxyConfiguration> proxyConfigurations = ...;

StreamSupport.stream(proxyConfiguration.spilterator(), false)
    .filter(config -> config.getType.isSecure())
    .ifPresent(config -> // do something with secure proxy).


Food for thought.

-j



On Mon, Mar 9, 2020 at 7:11 PM Jacob Barrett <jbarr...@pivotal.io> wrote:

> Yes it’s redundant.
>
> > On Mar 9, 2020, at 5:08 PM, Bill Burcham <bill.burc...@gmail.com> wrote:
> >
> > What I like about John's full-fledged-class-per-proxy-kind is that
> > everything that can potentially vary with proxy kind is all together in a
> > single object.
> >
> > That being said, John, in your SniProxyConfiguration, it seems to me that
> > the class itself (SniProxyConfiguration) could easily stand for the proxy
> > "type". If that's true then we could view ProxyType as redundant and
> simply
> > eliminate it right?
> >
> >> On Mon, Mar 9, 2020 at 2:41 PM Jacob Barrett <jbarr...@pivotal.io>
> wrote:
> >>
> >> +1 to Anthony and John. See similar comments in the RFC.
> >>
> >>>> On Mar 9, 2020, at 12:08 PM, Anthony Baker <aba...@pivotal.io> wrote:
> >>>
> >>> I’m not suggesting encoding the the proxy type in the URI.  Just
> >> wondering if we can support stronger typing than String for defining
> >> host/port/url configuration.  As John notes, later in the thread,
> perhaps
> >> using a configuration interface may help.
> >>>
> >>> Anthony
> >>>
> >>>
> >>>> On Mar 9, 2020, at 11:11 AM, Bill Burcham <bill.burc...@gmail.com>
> >> wrote:
> >>>>
> >>>> Anthony and Jacob, I can see how the proposed ProxyType parameter
> could
> >> fit
> >>>> into the scheme part of a a URI. However, the problem that introduces
> is
> >>>> that we would then have to pick (named) URL schemes to support. But
> URL
> >>>> schemes are standardized and it's not obvious which of the standard
> ones
> >>>> might apply here.
> >>>>
> >>>> If we couldn't adopt a standard scheme, we'd have to make one up. At
> >> that
> >>>> point I question the value of putting the (made-up) scheme into a URI
> >>>> string.
> >>>>
> >>>> For this reason, I am a fan of the ProxyType parameter over a made-up
> >> URL
> >>>> scheme.
> >>>>
> >>>> That leaves open Anthony's other idea: eliminating the ProxyType
> >> parameter
> >>>> in favor of a separate method to set each kind of proxy. In the
> current
> >>>> RFC, that's just one, e.g. setPoolProxyWithSNI. I guess that comes
> down
> >> to:
> >>>> what's the likelihood of us supporting other proxy types soon, and
> then
> >>>> what's the value of having a single method (and multiple enums) versus
> >>>> multiple methods (and no enum). If we thought the proxyAddress
> parameter
> >>>> would carry different information across proxy types that might tilt
> us
> >>>> toward the separate methods. The two on the table, however, (SNI,
> >> SOCKS5)
> >>>> both have identical proxyAddress information.
> >>>>
> >>>> On Mon, Mar 9, 2020 at 10:54 AM Bill Burcham <bill.burc...@gmail.com>
> >> wrote:
> >>>>
> >>>>> By popular demand we are extending the RFC review period. I know Udo
> >> asked
> >>>>> for Friday (and Joris +1'd it), but since this is a small RFC, we'd
> >> like to
> >>>>> try to close it by Wednesday, March 11, ok?
> >>>>>
> >>>>> On Mon, Mar 9, 2020 at 10:39 AM Jacob Barrett <jbarr...@pivotal.io>
> >> wrote:
> >>>>>
> >>>>>> I raised similar concerns as a comment in the RFC.
> >>>>>>
> >>>>>>> On Mar 9, 2020, at 10:29 AM, Anthony Baker <aba...@pivotal.io>
> >> wrote:
> >>>>>>>
> >>>>>>> Given this new API:
> >>>>>>>
> >>>>>>> setPoolProxy(ProxyType type, String proxyAddress)
> >>>>>>>
> >>>>>>> The ProxyType enum seems to be a look ahead at supporting other
> kinds
> >>>>>> of proxies.  What is your thinking about using the enum vs specific
> >> named
> >>>>>> API’s (e.g. setPoolProxyWithSNI).
> >>>>>>>
> >>>>>>> Currently the definition of the proxyAddress seems to be dependent
> of
> >>>>>> the proxy type.  Did you consider stronger typing using an URI
> >> parameter
> >>>>>> type?
> >>>>>>>
> >>>>>>> Anthony
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>> On Mar 6, 2020, at 11:04 AM, Bill Burcham <bill.burc...@gmail.com
> >
> >>>>>> wrote:
> >>>>>>>>
> >>>>>>>> Please review the RFC for *Client side configuration for a SNI
> >> proxy*:
> >>>>>>>>
> >>>>>>>>
> >>>>>>
> >>
> https://cwiki.apache.org/confluence/display/GEODE/Client+side+configuration+for+a+SNI+proxy
> >>>>>>>>
> >>>>>>>> Please comment by Monday, March 9, 2020.
> >>>>>>>>
> >>>>>>>> Regards,
> >>>>>>>> Bill and Ernie
> >>>>>>>
> >>>>>>
> >>>>>
> >>>
> >>
> >>
>


-- 
-John
Spring Data Team

Reply via email to