From 6c6646286d4b8a239e5b6e57881b33391e0b2735 Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Fri, 3 May 2019 13:53:42 +0200 Subject: [PATCH] cleanup after review Signed-off-by: Greg Wilkins --- .../server/handler/InetAccessHandler.java | 5 ++- .../eclipse/jetty/util/IncludeExcludeSet.java | 35 +------------------ .../jetty/util/component/Dumpable.java | 9 ----- .../jetty/util/component/DumpableTest.java | 13 ++----- .../jetty/webapp/ClasspathPattern.java | 20 +++++++++-- 5 files changed, 23 insertions(+), 59 deletions(-) diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/handler/InetAccessHandler.java b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/InetAccessHandler.java index 9d7ab5f9e77..236b9153008 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/handler/InetAccessHandler.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/InetAccessHandler.java @@ -33,7 +33,6 @@ import org.eclipse.jetty.server.Request; import org.eclipse.jetty.util.IncludeExclude; import org.eclipse.jetty.util.IncludeExcludeSet; import org.eclipse.jetty.util.InetAddressSet; -import org.eclipse.jetty.util.component.Dumpable; import org.eclipse.jetty.util.component.DumpableCollection; import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Logger; @@ -205,7 +204,7 @@ public class InetAccessHandler extends HandlerWrapper dumpObjects(out, indent, new DumpableCollection("included", _addrs.getIncluded()), new DumpableCollection("excluded", _addrs.getExcluded()), - new DumpableCollection("includedConnectorNames", _names.getIncluded()), - new DumpableCollection("excludedConnectorNames", _names.getExcluded())); + new DumpableCollection("includedConnector", _names.getIncluded()), + new DumpableCollection("excludedConnector", _names.getExcluded())); } } diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/IncludeExcludeSet.java b/jetty-util/src/main/java/org/eclipse/jetty/util/IncludeExcludeSet.java index faa5cb605c7..3c93baeb645 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/IncludeExcludeSet.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/IncludeExcludeSet.java @@ -22,7 +22,6 @@ import java.util.HashSet; import java.util.Objects; import java.util.Set; import java.util.function.Predicate; -import java.util.function.Supplier; /** Utility class to maintain a set of inclusions and exclusions. @@ -41,7 +40,7 @@ public class IncludeExcludeSet implements Predicate

private final Predicate

_includePredicate; private final Set _excludes; private final Predicate

_excludePredicate; - + private static class SetContainsPredicate implements Predicate { private final Set set; @@ -222,36 +221,4 @@ public class IncludeExcludeSet implements Predicate

{ return _includes.isEmpty() && _excludes.isEmpty(); } - - - /** - * Combine the results of two {@link IncludeExcludeSet}s with an "or"-like operation. - * Item x must be included by xSet OR item y must be included ySet. - * Neither x nor y may be excluded for either respective set. - * If a sets inclusions are empty, then all items are considered to be included. - * - * @param xSet The set that param x is tested against - * @param x An item to test against xSet - * @param ySet The set that param y is tested against - * @param ySupplier A supplier of an item to test against ySet, that is executed only of x is not excluded from xSet - * @param The type of xSet items - * @param The type of xSet predicates - * @param The type of ySet items - * @param The type of ySet predicates - * @return True only if the items are included and not excluded from their respected sets - */ - public static boolean or(IncludeExcludeSet xSet, XP x, IncludeExcludeSet ySet, Supplier ySupplier) - { - Boolean xb = xSet.isIncludedAndNotExcluded(x); - if (Boolean.FALSE==xb) - return false; - YP y = ySupplier.get(); - Boolean yb = ySet.isIncludedAndNotExcluded(y); - if (Boolean.FALSE==yb) - return false; - - return Boolean.TRUE.equals(xb) - || Boolean.TRUE.equals(yb) - || !xSet.hasIncludes() && !ySet.hasIncludes(); - } } diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/component/Dumpable.java b/jetty-util/src/main/java/org/eclipse/jetty/util/component/Dumpable.java index bef6ad08e45..78229fc30ba 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/component/Dumpable.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/component/Dumpable.java @@ -227,13 +227,4 @@ public interface Dumpable dumpObjects(out, nextIndent, item); } } - - static Dumpable labelled(String label, Object o) - { - return (out, indent) -> - { - out.append(label).append(':'); - Dumpable.dumpObjects(out,indent,o); - }; - } } diff --git a/jetty-util/src/test/java/org/eclipse/jetty/util/component/DumpableTest.java b/jetty-util/src/test/java/org/eclipse/jetty/util/component/DumpableTest.java index d5dc6b07e04..a0dcc405d42 100644 --- a/jetty-util/src/test/java/org/eclipse/jetty/util/component/DumpableTest.java +++ b/jetty-util/src/test/java/org/eclipse/jetty/util/component/DumpableTest.java @@ -18,14 +18,14 @@ package org.eclipse.jetty.util.component; -import static org.hamcrest.MatcherAssert.assertThat; - import java.util.ArrayList; import java.util.Collection; import org.hamcrest.Matchers; import org.junit.jupiter.api.Test; +import static org.hamcrest.MatcherAssert.assertThat; + public class DumpableTest { @Test @@ -50,13 +50,4 @@ public class DumpableTest assertThat(dump, Matchers.containsString("two")); assertThat(dump, Matchers.containsString("three")); } - - @Test - public void testDumpableLabelled() throws Exception - { - String dump = Dumpable.labelled("label", "Item").dump(); - assertThat(dump, Matchers.containsString("label:")); - assertThat(dump, Matchers.containsString("Item")); - } - } diff --git a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/ClasspathPattern.java b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/ClasspathPattern.java index 3907be619d1..ee203b35e50 100644 --- a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/ClasspathPattern.java +++ b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/ClasspathPattern.java @@ -36,6 +36,7 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.function.Predicate; +import java.util.function.Supplier; import org.eclipse.jetty.io.RuntimeIOException; import org.eclipse.jetty.util.ArrayTernaryTrie; @@ -686,7 +687,7 @@ public class ClasspathPattern extends AbstractSet { try { - return IncludeExcludeSet.or(_packageOrNamePatterns, clazz.getName(), _locations, ()->TypeUtil.getLocationOfClass(clazz)); + return combine(_packageOrNamePatterns, clazz.getName(), _locations, ()->TypeUtil.getLocationOfClass(clazz)); } catch (Exception e) { @@ -704,7 +705,7 @@ public class ClasspathPattern extends AbstractSet // Treat path elements as packages for name matching name=name.replace("/","."); - return IncludeExcludeSet.or(_packageOrNamePatterns, name, _locations, ()-> + return combine(_packageOrNamePatterns, name, _locations, ()-> { try { @@ -717,5 +718,20 @@ public class ClasspathPattern extends AbstractSet } }); } + + private static boolean combine(IncludeExcludeSet names, String name, IncludeExcludeSet locations, Supplier location) + { + Boolean byName = names.isIncludedAndNotExcluded(name); + if (Boolean.FALSE==byName) + return false; + + Boolean byLocation = locations.isIncludedAndNotExcluded(location.get()); + if (Boolean.FALSE==byLocation) + return false; + + return Boolean.TRUE.equals(byName) + || Boolean.TRUE.equals(byLocation) + || !(names.hasIncludes() || locations.hasIncludes()); + } }