From 41955b76718fe62aa38fd88b67e85ffac84c24f1 Mon Sep 17 00:00:00 2001 From: Dominik Herbst Date: Tue, 4 Oct 2016 16:21:17 +0200 Subject: [PATCH] Changed VirtualPropertyResolver to accept TimestampCalculator in the constructor Signed-off-by: Dominik Herbst --- .../repository/JpaRepositoryAutoConfiguration.java | 3 ++- .../jpa/rsql/VirtualPropertyResolver.java | 13 ++++++++++++- .../hawkbit/repository/jpa/rsql/RSQLUtility.java | 6 ++---- .../repository/jpa/rsql/RSQLUtilityTest.java | 2 +- .../jpa/rsql/VirtualPropertyResolverTest.java | 2 +- .../java/org/eclipse/hawkbit/TestConfiguration.java | 3 ++- 6 files changed, 20 insertions(+), 9 deletions(-) diff --git a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/repository/JpaRepositoryAutoConfiguration.java b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/repository/JpaRepositoryAutoConfiguration.java index 245e4d57a..05249f017 100644 --- a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/repository/JpaRepositoryAutoConfiguration.java +++ b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/repository/JpaRepositoryAutoConfiguration.java @@ -9,6 +9,7 @@ package org.eclipse.hawkbit.autoconfigure.repository; import org.eclipse.hawkbit.EnableJpaRepository; +import org.eclipse.hawkbit.repository.jpa.TimestampCalculator; import org.eclipse.hawkbit.repository.rsql.VirtualPropertyReplacer; import org.eclipse.hawkbit.repository.jpa.rsql.VirtualPropertyResolver; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -33,7 +34,7 @@ public class JpaRepositoryAutoConfiguration { @Bean @ConditionalOnMissingBean public VirtualPropertyReplacer virtualPropertyReplacer() { - return new VirtualPropertyResolver(); + return new VirtualPropertyResolver(new TimestampCalculator()); } } diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/VirtualPropertyResolver.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/VirtualPropertyResolver.java index 1e78d7f10..e0f1483aa 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/VirtualPropertyResolver.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/VirtualPropertyResolver.java @@ -43,10 +43,21 @@ import org.eclipse.hawkbit.repository.rsql.VirtualPropertyReplacer; */ public class VirtualPropertyResolver extends StrLookup implements VirtualPropertyReplacer { - private final TimestampCalculator timestampCalculator = new TimestampCalculator(); + private final TimestampCalculator timestampCalculator; private StrSubstitutor substitutor; + /** + * Instantiates a new virtual property resolver with the given timestamp + * calculator + * + * @param timestampCalculator + * calculates timestamps + */ + public VirtualPropertyResolver(TimestampCalculator timestampCalculator) { + this.timestampCalculator = timestampCalculator; + } + @Override public String lookup(String rhs) { String resolved = null; 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 7565f464a..38665db38 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 @@ -441,12 +441,10 @@ public final class RSQLUtility { // methods. final Object transformedValue = transformedValues.get(0); - final String value; + String value = values.get(0); // if lookup is available, replace macros ... if (virtualPropertyReplacer != null) { - value = virtualPropertyReplacer.replace(values.get(0)); - } else { - value = values.get(0); + value = virtualPropertyReplacer.replace(value); } final List singleList = new ArrayList<>(); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLUtilityTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLUtilityTest.java index d72f92f11..b4270e732 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLUtilityTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLUtilityTest.java @@ -50,7 +50,7 @@ import ru.yandex.qatools.allure.annotations.Stories; public class RSQLUtilityTest { @Spy - VirtualPropertyResolver macroResolver = new VirtualPropertyResolver(); + VirtualPropertyResolver macroResolver = new VirtualPropertyResolver(new TimestampCalculator()); @Mock TenantConfigurationManagement confMgmt; 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 a519c8188..0deb88b53 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 @@ -36,7 +36,7 @@ import ru.yandex.qatools.allure.annotations.Stories; public class VirtualPropertyResolverTest { @Spy - VirtualPropertyResolver resolverUnderTest = new VirtualPropertyResolver(); + VirtualPropertyResolver resolverUnderTest = new VirtualPropertyResolver(new TimestampCalculator()); @Mock TenantConfigurationManagement confMgmt; diff --git a/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/TestConfiguration.java b/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/TestConfiguration.java index 716236d3a..ab2d38686 100644 --- a/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/TestConfiguration.java +++ b/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/TestConfiguration.java @@ -14,6 +14,7 @@ import java.util.concurrent.Executors; import org.eclipse.hawkbit.cache.CacheConstants; import org.eclipse.hawkbit.cache.TenancyCacheManager; import org.eclipse.hawkbit.cache.TenantAwareCacheManager; +import org.eclipse.hawkbit.repository.jpa.TimestampCalculator; import org.eclipse.hawkbit.repository.jpa.model.helper.EventBusHolder; import org.eclipse.hawkbit.repository.jpa.rsql.VirtualPropertyResolver; import org.eclipse.hawkbit.repository.rsql.VirtualPropertyReplacer; @@ -128,7 +129,7 @@ public class TestConfiguration implements AsyncConfigurer { */ @Bean public VirtualPropertyReplacer virtualPropertyReplacer() { - return new VirtualPropertyResolver(); + return new VirtualPropertyResolver(new TimestampCalculator()); } }