Skip to content

Commit

Permalink
[UNDERTOW-2229] Add priority to PredicateBuilder to override internal…
Browse files Browse the repository at this point in the history
… predicates with predicate language
  • Loading branch information
xjusko committed Apr 3, 2024
1 parent ddb4aee commit 443c17c
Show file tree
Hide file tree
Showing 20 changed files with 105 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -59,5 +59,10 @@ public String defaultParameter() {
public Predicate build(final Map<String, Object> config) {
return INSTANCE;
}

@Override
public int priority() {
return 0;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -106,5 +106,10 @@ public Predicate build(final Map<String, Object> config) {
ExchangeAttribute values = (ExchangeAttribute) config.get("value");
return new ContainsPredicate(values, search);
}

@Override
public int priority() {
return 0;
}
}
}
5 changes: 5 additions & 0 deletions core/src/main/java/io/undertow/predicate/EqualsPredicate.java
Original file line number Diff line number Diff line change
Expand Up @@ -96,5 +96,10 @@ public Predicate build(final Map<String, Object> config) {
ExchangeAttribute[] value = (ExchangeAttribute[]) config.get("value");
return new EqualsPredicate(value);
}

@Override
public int priority() {
return 0;
}
}
}
5 changes: 5 additions & 0 deletions core/src/main/java/io/undertow/predicate/ExistsPredicate.java
Original file line number Diff line number Diff line change
Expand Up @@ -82,5 +82,10 @@ public Predicate build(final Map<String, Object> config) {
ExchangeAttribute value = (ExchangeAttribute) config.get("value");
return new ExistsPredicate(value);
}

@Override
public int priority() {
return 0;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -86,5 +86,10 @@ public String defaultParameter() {
public Predicate build(Map<String, Object> config) {
return INSTANCE;
}

@Override
public int priority() {
return 0;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -83,5 +83,10 @@ public Predicate build(final Map<String, Object> config) {
Long max = (Long) config.get("value");
return new MaxContentSizePredicate(max);
}

@Override
public int priority() {
return 0;
}
}
}
5 changes: 5 additions & 0 deletions core/src/main/java/io/undertow/predicate/MethodPredicate.java
Original file line number Diff line number Diff line change
Expand Up @@ -89,5 +89,10 @@ public Predicate build(final Map<String, Object> config) {
String[] methods = (String[]) config.get("value");
return new MethodPredicate(methods);
}

@Override
public int priority() {
return 0;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -83,5 +83,10 @@ public Predicate build(final Map<String, Object> config) {
Long max = (Long) config.get("value");
return new MinContentSizePredicate(max);
}

@Override
public int priority() {
return 0;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -98,5 +98,10 @@ public Predicate build(final Map<String, Object> config) {
String[] path = (String[]) config.get("path");
return new PathMatchPredicate(path);
}

@Override
public int priority() {
return 0;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,11 @@ public Predicate build(final Map<String, Object> config) {
String[] path = (String[]) config.get("path");
return new PathPrefixPredicate(path);
}

@Override
public int priority() {
return 0;
}
}

public static class PathPrefixMatchRecord {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,5 +82,10 @@ public Predicate build(final Map<String, Object> config) {
String[] path = (String[]) config.get("path");
return Predicates.suffixes(path);
}

@Override
public int priority() {
return 0;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,11 @@ public Predicate build(final Map<String, Object> config) {
String value = (String) config.get("value");
return new PathTemplatePredicate(value, match);
}

@Override
public int priority() {
return 0;
}
}

}
10 changes: 10 additions & 0 deletions core/src/main/java/io/undertow/predicate/PredicateBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -62,4 +62,14 @@ public interface PredicateBuilder {
*/
Predicate build(final Map<String, Object> config);

/**
* The priority of the builder. Builders will be tried in priority builder. Built in builders use the priority range 0-100.
* Default implementation returns 1 for backwards compatibility.
*
* @return The priority
*/
default int priority() {
return 1;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -142,5 +142,10 @@ public Predicate build(final Map<String, Object> config) {
String pattern = (String) config.get("pattern");
return new RegularExpressionPredicate(pattern, value, fullMatch == null ? false : fullMatch, caseSensitive == null ? true : caseSensitive);
}

@Override
public int priority() {
return 0;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -79,5 +79,10 @@ public Predicate build(final Map<String, Object> config) {
Long size = (Long) config.get("size");
return new RequestLargerThanPredicate(size);
}

@Override
public int priority() {
return 0;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -79,5 +79,10 @@ public Predicate build(final Map<String, Object> config) {
Long size = (Long) config.get("size");
return new RequestSmallerThanPredicate(size);
}

@Override
public int priority() {
return 0;
}
}
}
5 changes: 5 additions & 0 deletions core/src/main/java/io/undertow/predicate/SecurePredicate.java
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,11 @@ public String defaultParameter() {
public Predicate build(Map<String, Object> config) {
return INSTANCE;
}

@Override
public int priority() {
return 0;
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,11 @@ public Predicate build(final Map<String, Object> config) {
}
return new DirectoryPredicate(value);
}

@Override
public int priority() {
return 0;
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,11 @@ public Predicate build(final Map<String, Object> config) {
String value = (String) config.get("value");
return new DispatcherTypePredicate(DispatcherType.valueOf(value));
}

@Override
public int priority() {
return 0;
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,11 @@ public Predicate build(final Map<String, Object> config) {
}
return new FilePredicate(value, requireContent == null ? false : requireContent);
}

@Override
public int priority() {
return 0;
}
}

}

0 comments on commit 443c17c

Please sign in to comment.