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); }