From: Robert Varga Date: Thu, 22 Sep 2022 09:59:16 +0000 (+0200) Subject: Optimize convertCustomFilterList() X-Git-Tag: v0.16.3~6 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=1e38e767aa387c95bd05e05e15719a5923167c44;p=aaa.git Optimize convertCustomFilterList() Rather than creating a temporary collection, use Streams.concat() to acquire a combined stream. Also collect directly to an ImmutableList, so that we do not have two objects allocated. Change-Id: Id9fdaa2f83524cdf0c8cc133f8cab9e1767c94c0 Signed-off-by: Robert Varga --- diff --git a/aaa-filterchain/src/main/java/org/opendaylight/aaa/filterchain/configuration/impl/CustomFilterAdapterConfigurationImpl.java b/aaa-filterchain/src/main/java/org/opendaylight/aaa/filterchain/configuration/impl/CustomFilterAdapterConfigurationImpl.java index 45a9c7dba..4848c240c 100644 --- a/aaa-filterchain/src/main/java/org/opendaylight/aaa/filterchain/configuration/impl/CustomFilterAdapterConfigurationImpl.java +++ b/aaa-filterchain/src/main/java/org/opendaylight/aaa/filterchain/configuration/impl/CustomFilterAdapterConfigurationImpl.java @@ -12,16 +12,15 @@ import static java.util.Objects.requireNonNull; import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterators; +import com.google.common.collect.Streams; import java.util.Collection; import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; -import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; import java.util.stream.Stream; import javax.servlet.Filter; import javax.servlet.FilterConfig; @@ -144,11 +143,8 @@ public final class CustomFilterAdapterConfigurationImpl implements CustomFilterA * The newly injected FilterDTO list */ private void updateListener(final CustomFilterAdapterListener listener) { - final Optional listenerServletContext = extractServletContext(listener); - final List filterList = convertCustomFilterList(listenerServletContext); - + final var filterList = convertCustomFilterList(extractServletContext(listener)); LOG.debug("Notifying listener {} of filters {}", listener, filterList); - listener.updateInjectedFilters(filterList); } @@ -176,11 +172,10 @@ public final class CustomFilterAdapterConfigurationImpl implements CustomFilterA * a list of class names, ideally Filters * @return a list of derived Filter(s) */ - private List convertCustomFilterList(final Optional listenerServletContext) { - final List filterList = ImmutableList.builder().addAll(namedFilterDTOs) - .addAll(instanceFilterDTOs).build().stream().flatMap( - filter -> getFilterInstance(filter, listenerServletContext)).collect(Collectors.toList()); - return Collections.unmodifiableList(filterList); + private ImmutableList convertCustomFilterList(final Optional listenerServletContext) { + return Streams.concat(namedFilterDTOs.stream(), instanceFilterDTOs.stream()) + .flatMap(filter -> getFilterInstance(filter, listenerServletContext)) + .collect(ImmutableList.toImmutableList()); } /**