diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLUtility.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLUtility.java
index bfb7e5cf1..f3e2ce50d 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLUtility.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLUtility.java
@@ -196,8 +196,8 @@ public final class RSQLUtility {
this.root = root;
this.cb = cb;
this.enumType = enumType;
- this.substitutor = (virtualPropertyLookup != null)
- ? new StrSubstitutor(new StrLookupAdapter(virtualPropertyLookup), StrSubstitutor.DEFAULT_PREFIX,
+ this.substitutor = (virtualPropertyLookup != null && virtualPropertyLookup instanceof StrLookup)
+ ? new StrSubstitutor((StrLookup)virtualPropertyLookup, StrSubstitutor.DEFAULT_PREFIX,
StrSubstitutor.DEFAULT_SUFFIX, StrSubstitutor.DEFAULT_ESCAPE)
: null;
simpleTypeConverter = new SimpleTypeConverter();
@@ -592,27 +592,4 @@ public final class RSQLUtility {
}
- /**
- * Adapts the VirtualPropertyLookup to StrLookup.
- */
- static final class StrLookupAdapter extends StrLookup {
-
- private VirtualPropertyLookup virtualPropertyLookup;
-
- /**
- * Constructor.
- *
- * @param virtualPropertyLookup
- * the lookup to adapt.
- */
- StrLookupAdapter(VirtualPropertyLookup virtualPropertyLookup) {
- this.virtualPropertyLookup = virtualPropertyLookup;
- }
-
- @Override
- public String lookup(String key) {
- return virtualPropertyLookup.lookup(key);
- }
-
- }
}
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/VirtualPropertyResolver.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/VirtualPropertyResolver.java
index 4fe734cfa..739874610 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/VirtualPropertyResolver.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/VirtualPropertyResolver.java
@@ -10,6 +10,7 @@ package org.eclipse.hawkbit.repository.jpa.rsql;
import java.time.Instant;
+import org.apache.commons.lang3.text.StrLookup;
import org.eclipse.hawkbit.repository.jpa.TimestampCalculator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -41,7 +42,7 @@ import org.springframework.stereotype.Component;
*
*/
@Component
-public class VirtualPropertyResolver implements VirtualPropertyLookup {
+public class VirtualPropertyResolver extends StrLookup implements VirtualPropertyLookup {
@Autowired
private TimestampCalculator timestampCalculator;
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/VirtualPropertyResolverTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/VirtualPropertyResolverTest.java
index d3c069e31..daa816f8e 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/VirtualPropertyResolverTest.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/VirtualPropertyResolverTest.java
@@ -64,7 +64,7 @@ public class VirtualPropertyResolverTest {
}
});
- this.substitutor = new StrSubstitutor(new RSQLUtility.StrLookupAdapter(resolverUnderTest),
+ this.substitutor = new StrSubstitutor(resolverUnderTest,
StrSubstitutor.DEFAULT_PREFIX,
StrSubstitutor.DEFAULT_SUFFIX, StrSubstitutor.DEFAULT_ESCAPE);
}