On Sat, Feb 16, 2019 at 9:11 AM Oleg Kalnichevski <[email protected]> wrote:

> On Sat, 2019-02-16 at 08:45 -0500, Gary Gregory wrote:
> >
>
> ...
>
>
> > This is what Eclipse says for one of the call sites:
> >
> > Description Resource Path Location Type
> >
> > LookupRegistry is a raw type. References to generic type
> > LookupRegistry<T>
> > should be parameterized AsyncServerBootstrap.java
> > /httpcore5/src/main/java/org/apache/hc/core5/http/impl/bootstrap line
> > 334 Java
> > Problem
> >
> > Supplier is a raw type. References to generic type Supplier<T> should
> > be
> > parameterized AsyncServerBootstrap.java
> > /httpcore5/src/main/java/org/apache/hc/core5/http/impl/bootstrap line
> > 331 Java
> > Problem
> >
> > Type safety: The expression of type new Supplier(){} needs unchecked
> > conversion to conform to
> > Supplier<LookupRegistry<Supplier<AsyncServerExchangeHandler>>>
> > AsyncServerBootstrap.java
> > /httpcore5/src/main/java/org/apache/hc/core5/http/impl/bootstrap line
> > 331 Java
> > Problem
> >
> > Gary
> >
>
>
> Index:
> httpcore5/src/test/java/org/apache/hc/core5/http/impl/bootstrap/TestAsyncServerBootstrapLookupRegistry.java
> IDEA additional info:
> Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
> <+>UTF-8
> ===================================================================
> ---
> httpcore5/src/test/java/org/apache/hc/core5/http/impl/bootstrap/TestAsyncServerBootstrapLookupRegistry.java
> (revision e3b474456dda8b978f1a0eabdfa71e6e308a37cd)
> +++
> httpcore5/src/test/java/org/apache/hc/core5/http/impl/bootstrap/TestAsyncServerBootstrapLookupRegistry.java
> (date 1550326220000)
> @@ -26,6 +26,7 @@
>   */
>  package org.apache.hc.core5.http.impl.bootstrap;
>
> +import org.apache.hc.core5.function.Supplier;
>  import org.apache.hc.core5.http.nio.AsyncServerExchangeHandler;
>  import org.apache.hc.core5.http.protocol.LookupRegistry;
>  import org.junit.Test;
> @@ -39,23 +40,21 @@
>
>      @Test
>      public void testCreateCustomLookupRegistry() {
> -        AsyncServerBootstrap.bootstrap().setLookupRegistry(new
> LookupRegistry<AsyncServerExchangeHandler>() {
> +        AsyncServerBootstrap.bootstrap().setLookupRegistry(new
> LookupRegistry<Supplier<AsyncServerExchangeHandler>>() {
>
>              @Override
> -            public void register(final String pattern, final
> AsyncServerExchangeHandler obj) {
> -                // noop
> +            public void register(String pattern,
> Supplier<AsyncServerExchangeHandler> obj) {
>              }
>
>              @Override
> -            public AsyncServerExchangeHandler lookup(final String value) {
> -                // noop
> +            public Supplier<AsyncServerExchangeHandler> lookup(String
> value) {
>                  return null;
>              }
>
>              @Override
> -            public void unregister(final String pattern) {
> -                // noop
> +            public void unregister(String pattern) {
>              }
> +
>          }).create();
>      }
>  }
> Index:
> httpcore5/src/main/java/org/apache/hc/core5/http/impl/bootstrap/AsyncServerBootstrap.java
> IDEA additional info:
> Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
> <+>UTF-8
> ===================================================================
> ---
> httpcore5/src/main/java/org/apache/hc/core5/http/impl/bootstrap/AsyncServerBootstrap.java
>  (revision e3b474456dda8b978f1a0eabdfa71e6e308a37cd)
> +++
> httpcore5/src/main/java/org/apache/hc/core5/http/impl/bootstrap/AsyncServerBootstrap.java
>  (date 1550326094000)
> @@ -77,7 +77,7 @@
>      private final
> List<HandlerEntry<Supplier<AsyncServerExchangeHandler>>> handlerList;
>      private final List<FilterEntry<AsyncFilterHandler>> filters;
>      private String canonicalHostName;
> -    private LookupRegistry<AsyncServerExchangeHandler> lookupRegistry;
> +    private LookupRegistry<Supplier<AsyncServerExchangeHandler>>
> lookupRegistry;
>      private IOReactorConfig ioReactorConfig;
>      private H1Config h1Config;
>      private CharCodingConfig charCodingConfig;
> @@ -184,7 +184,7 @@
>       * @return this
>       * @since 5.0
>       */
> -    public final AsyncServerBootstrap setLookupRegistry(final
> LookupRegistry<AsyncServerExchangeHandler> lookupRegistry) {
> +    public final AsyncServerBootstrap setLookupRegistry(final
> LookupRegistry<Supplier<AsyncServerExchangeHandler>> lookupRegistry) {
>          this.lookupRegistry = lookupRegistry;
>          return this;
>      }
> @@ -328,11 +328,12 @@
>      public HttpAsyncServer create() {
>          final
> RequestHandlerRegistry<Supplier<AsyncServerExchangeHandler>> registry = new
> RequestHandlerRegistry<>(
>                  canonicalHostName != null ? canonicalHostName :
> InetAddressUtils.getCanonicalLocalHostName(),
> -                new Supplier() {
> +                new
> Supplier<LookupRegistry<Supplier<AsyncServerExchangeHandler>>>() {
>
>                      @Override
> -                    public LookupRegistry get() {
> -                        return lookupRegistry != null ? lookupRegistry :
> UriPatternType.newMatcher(UriPatternType.URI_PATTERN);
> +                    public
> LookupRegistry<Supplier<AsyncServerExchangeHandler>> get() {
> +                        return lookupRegistry != null ? lookupRegistry :
> +
> UriPatternType.<Supplier<AsyncServerExchangeHandler>>newMatcher(UriPatternType.URI_PATTERN);
>                      }
>
>                  });
>

I get a compiler error with the above patch:

Description Resource Path Location Type
The method
setLookupRegistry(LookupRegistry<Supplier<AsyncServerExchangeHandler>>) in
the type AsyncServerBootstrap is not applicable for the arguments (new
LookupRegistry<AsyncServerExchangeHandler>(){})
TestAsyncServerBootstrapLookupRegistry.java
/httpcore5/src/test/java/org/apache/hc/core5/http/impl/bootstrap line 42 Java
Problem

Gary


>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to