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 dd6ead86b..245e4d57a 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,12 +9,16 @@
package org.eclipse.hawkbit.autoconfigure.repository;
import org.eclipse.hawkbit.EnableJpaRepository;
+import org.eclipse.hawkbit.repository.rsql.VirtualPropertyReplacer;
+import org.eclipse.hawkbit.repository.jpa.rsql.VirtualPropertyResolver;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
/**
- * Auto-Configuration for enabling the REST-Resources.
+ * Auto-Configuration for enabling JPA repository.
*
*/
@Configuration
@@ -22,4 +26,14 @@ import org.springframework.context.annotation.Import;
@Import({ EnableJpaRepository.class })
public class JpaRepositoryAutoConfiguration {
+ /**
+ *
+ * @return returns a VirtualPropertyReplacer
+ */
+ @Bean
+ @ConditionalOnMissingBean
+ public VirtualPropertyReplacer virtualPropertyReplacer() {
+ return new VirtualPropertyResolver();
+ }
+
}
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/VirtualPropertyLookup.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/rsql/VirtualPropertyReplacer.java
similarity index 54%
rename from hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/VirtualPropertyLookup.java
rename to hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/rsql/VirtualPropertyReplacer.java
index a67064261..abdc671f7 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/VirtualPropertyLookup.java
+++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/rsql/VirtualPropertyReplacer.java
@@ -6,7 +6,7 @@
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
-package org.eclipse.hawkbit.repository.jpa.rsql;
+package org.eclipse.hawkbit.repository.rsql;
/**
* Implementations map a placeholder to the associated value.
@@ -14,15 +14,15 @@ package org.eclipse.hawkbit.repository.jpa.rsql;
* This is used in context of string replacement.
*/
@FunctionalInterface
-public interface VirtualPropertyLookup {
+public interface VirtualPropertyReplacer {
/**
- * Looks up a placeholder to the associated value.
+ * Looks up a placeholders and replaces them
*
- * @param placeholder
- * the virtual property that should be resolved by a value
- * @return the value for the placeholder; may be null if no
- * value could be found for the given placeholder;
+ * @param input
+ * the input string in which virtual properties should be
+ * replaced
+ * @return the result of the replacement
*/
- String lookup(String placeholder);
+ String replace(String input);
}
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/TimestampCalculator.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/jpa/TimestampCalculator.java
similarity index 94%
rename from hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/TimestampCalculator.java
rename to hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/jpa/TimestampCalculator.java
index 071da214d..ea467b316 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/TimestampCalculator.java
+++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/jpa/TimestampCalculator.java
@@ -15,15 +15,13 @@ import org.eclipse.hawkbit.repository.TenantConfigurationManagement;
import org.eclipse.hawkbit.repository.jpa.model.helper.TenantConfigurationManagementHolder;
import org.eclipse.hawkbit.tenancy.configuration.DurationHelper;
import org.eclipse.hawkbit.tenancy.configuration.TenantConfigurationKey;
-import org.springframework.stereotype.Service;
/**
- * Service that calculates non-persistent timestamps , e.g. the point a time a
+ * Calculates non-persistent timestamps , e.g. the point a time a
* target is declared as overdue.
* Therefore tenant specific configuration may be considered.
*
*/
-@Service
public class TimestampCalculator {
/**
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/helper/TenantConfigurationManagementHolder.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/jpa/model/helper/TenantConfigurationManagementHolder.java
similarity index 100%
rename from hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/helper/TenantConfigurationManagementHolder.java
rename to hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/jpa/model/helper/TenantConfigurationManagementHolder.java
diff --git a/hawkbit-repository/hawkbit-repository-jpa/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
similarity index 75%
rename from hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/VirtualPropertyResolver.java
rename to hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/VirtualPropertyResolver.java
index 739874610..1e78d7f10 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/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
@@ -11,9 +11,9 @@ package org.eclipse.hawkbit.repository.jpa.rsql;
import java.time.Instant;
import org.apache.commons.lang3.text.StrLookup;
+import org.apache.commons.lang3.text.StrSubstitutor;
import org.eclipse.hawkbit.repository.jpa.TimestampCalculator;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
+import org.eclipse.hawkbit.repository.rsql.VirtualPropertyReplacer;
/**
* Adds macro capabilities to RSQL expressions that are used to filter for
@@ -24,8 +24,8 @@ import org.springframework.stereotype.Component;
* time intervals).
* Such a virtual property needs to be calculated on Java-side before it may be
* used in a target filter query that is passed to the database. Therefore a
- * placeholder is used in the RSQL expression that is expanded in the
- * {@link RSQLUtility}.
+ * placeholder is used in the RSQL expression that is expanded when the RSQL is
+ * parsed
*
* A virtual property may either be a system value like the current date (aka
* now_ts) or a value derived from (tenant-specific) system
@@ -41,11 +41,11 @@ import org.springframework.stereotype.Component;
* configuration.
*
*/
-@Component
-public class VirtualPropertyResolver extends StrLookup implements VirtualPropertyLookup {
+public class VirtualPropertyResolver extends StrLookup implements VirtualPropertyReplacer {
- @Autowired
- private TimestampCalculator timestampCalculator;
+ private final TimestampCalculator timestampCalculator = new TimestampCalculator();
+
+ private StrSubstitutor substitutor;
@Override
public String lookup(String rhs) {
@@ -59,6 +59,15 @@ public class VirtualPropertyResolver extends StrLookup implements Virtua
return resolved;
}
+ @Override
+ public String replace(String input) {
+ if (substitutor == null) {
+ substitutor = new StrSubstitutor(this, StrSubstitutor.DEFAULT_PREFIX, StrSubstitutor.DEFAULT_SUFFIX,
+ StrSubstitutor.DEFAULT_ESCAPE);
+ }
+ return substitutor.replace(input);
+ }
+
TimestampCalculator getTimestampCalculator() {
return timestampCalculator;
}
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaDeploymentManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaDeploymentManagement.java
index 1a7655096..6014e6802 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaDeploymentManagement.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaDeploymentManagement.java
@@ -54,7 +54,7 @@ import org.eclipse.hawkbit.repository.jpa.model.JpaSoftwareModule;
import org.eclipse.hawkbit.repository.jpa.model.JpaTarget;
import org.eclipse.hawkbit.repository.jpa.model.JpaTargetInfo;
import org.eclipse.hawkbit.repository.jpa.rsql.RSQLUtility;
-import org.eclipse.hawkbit.repository.jpa.rsql.VirtualPropertyLookup;
+import org.eclipse.hawkbit.repository.rsql.VirtualPropertyReplacer;
import org.eclipse.hawkbit.repository.jpa.specifications.TargetSpecifications;
import org.eclipse.hawkbit.repository.model.Action;
import org.eclipse.hawkbit.repository.model.Action.ActionType;
@@ -136,7 +136,7 @@ public class JpaDeploymentManagement implements DeploymentManagement {
private SystemSecurityContext systemSecurityContext;
@Autowired
- private VirtualPropertyLookup virtualPropertyLookup;
+ private VirtualPropertyReplacer virtualPropertyReplacer;
@Override
@Transactional(isolation = Isolation.READ_COMMITTED)
@@ -609,7 +609,7 @@ public class JpaDeploymentManagement implements DeploymentManagement {
}
private Specification createSpecificationFor(final Target target, final String rsqlParam) {
- final Specification spec = RSQLUtility.parse(rsqlParam, ActionFields.class, virtualPropertyLookup);
+ final Specification spec = RSQLUtility.parse(rsqlParam, ActionFields.class, virtualPropertyReplacer);
return (root, query, cb) -> cb.and(spec.toPredicate(root, query, cb),
cb.equal(root.get(JpaAction_.target), target));
}
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaDistributionSetManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaDistributionSetManagement.java
index 7d719acbe..b9df4e1b0 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaDistributionSetManagement.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaDistributionSetManagement.java
@@ -42,7 +42,7 @@ import org.eclipse.hawkbit.repository.jpa.model.JpaDistributionSetMetadata_;
import org.eclipse.hawkbit.repository.jpa.model.JpaDistributionSetType;
import org.eclipse.hawkbit.repository.jpa.model.JpaDistributionSet_;
import org.eclipse.hawkbit.repository.jpa.rsql.RSQLUtility;
-import org.eclipse.hawkbit.repository.jpa.rsql.VirtualPropertyLookup;
+import org.eclipse.hawkbit.repository.rsql.VirtualPropertyReplacer;
import org.eclipse.hawkbit.repository.jpa.specifications.DistributionSetSpecification;
import org.eclipse.hawkbit.repository.jpa.specifications.DistributionSetTypeSpecification;
import org.eclipse.hawkbit.repository.jpa.specifications.SpecificationsBuilder;
@@ -109,7 +109,7 @@ public class JpaDistributionSetManagement implements DistributionSetManagement {
private TenantAware tenantAware;
@Autowired
- private VirtualPropertyLookup virtualPropertyLookup;
+ private VirtualPropertyReplacer virtualPropertyReplacer;
@Override
public DistributionSet findDistributionSetByIdWithDetails(final Long distid) {
@@ -283,7 +283,7 @@ public class JpaDistributionSetManagement implements DistributionSetManagement {
@Override
public Page findDistributionSetTypesAll(final String rsqlParam, final Pageable pageable) {
final Specification spec = RSQLUtility.parse(rsqlParam,
- DistributionSetTypeFields.class, virtualPropertyLookup);
+ DistributionSetTypeFields.class, virtualPropertyReplacer);
return convertDsTPage(distributionSetTypeRepository.findAll(spec, pageable));
}
@@ -350,7 +350,7 @@ public class JpaDistributionSetManagement implements DistributionSetManagement {
final Boolean deleted) {
final Specification spec = RSQLUtility.parse(rsqlParam, DistributionSetFields.class,
- virtualPropertyLookup);
+ virtualPropertyReplacer);
final List> specList = new ArrayList<>(2);
if (deleted != null) {
@@ -562,7 +562,7 @@ public class JpaDistributionSetManagement implements DistributionSetManagement {
final String rsqlParam, final Pageable pageable) {
final Specification spec = RSQLUtility.parse(rsqlParam,
- DistributionSetMetadataFields.class, virtualPropertyLookup);
+ DistributionSetMetadataFields.class, virtualPropertyReplacer);
return convertMdPage(
distributionSetMetadataRepository
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaRolloutGroupManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaRolloutGroupManagement.java
index 0453bf26b..382b8fab4 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaRolloutGroupManagement.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaRolloutGroupManagement.java
@@ -33,7 +33,7 @@ import org.eclipse.hawkbit.repository.jpa.model.JpaTarget_;
import org.eclipse.hawkbit.repository.jpa.model.RolloutTargetGroup;
import org.eclipse.hawkbit.repository.jpa.model.RolloutTargetGroup_;
import org.eclipse.hawkbit.repository.jpa.rsql.RSQLUtility;
-import org.eclipse.hawkbit.repository.jpa.rsql.VirtualPropertyLookup;
+import org.eclipse.hawkbit.repository.rsql.VirtualPropertyReplacer;
import org.eclipse.hawkbit.repository.model.Action;
import org.eclipse.hawkbit.repository.model.Rollout;
import org.eclipse.hawkbit.repository.model.Rollout.RolloutStatus;
@@ -72,7 +72,7 @@ public class JpaRolloutGroupManagement implements RolloutGroupManagement {
private EntityManager entityManager;
@Autowired
- private VirtualPropertyLookup virtualPropertyLookup;
+ private VirtualPropertyReplacer virtualPropertyReplacer;
@Override
public RolloutGroup findRolloutGroupById(final Long rolloutGroupId) {
@@ -97,7 +97,7 @@ public class JpaRolloutGroupManagement implements RolloutGroupManagement {
final Pageable pageable) {
final Specification specification = RSQLUtility.parse(rsqlParam, RolloutGroupFields.class,
- virtualPropertyLookup);
+ virtualPropertyReplacer);
return convertPage(
rolloutGroupRepository
@@ -151,7 +151,7 @@ public class JpaRolloutGroupManagement implements RolloutGroupManagement {
final Pageable pageable) {
final Specification rsqlSpecification = RSQLUtility.parse(rsqlParam, TargetFields.class,
- virtualPropertyLookup);
+ virtualPropertyReplacer);
return convertTPage(targetRepository.findAll((root, query, criteriaBuilder) -> {
final ListJoin rolloutTargetJoin = root.join(JpaTarget_.rolloutTargetGroup);
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaRolloutManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaRolloutManagement.java
index ca5c8389d..3845a0c5a 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaRolloutManagement.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaRolloutManagement.java
@@ -32,7 +32,7 @@ import org.eclipse.hawkbit.repository.jpa.model.RolloutTargetGroup;
import org.eclipse.hawkbit.repository.jpa.rollout.condition.RolloutGroupActionEvaluator;
import org.eclipse.hawkbit.repository.jpa.rollout.condition.RolloutGroupConditionEvaluator;
import org.eclipse.hawkbit.repository.jpa.rsql.RSQLUtility;
-import org.eclipse.hawkbit.repository.jpa.rsql.VirtualPropertyLookup;
+import org.eclipse.hawkbit.repository.rsql.VirtualPropertyReplacer;
import org.eclipse.hawkbit.repository.model.Action;
import org.eclipse.hawkbit.repository.model.Action.ActionType;
import org.eclipse.hawkbit.repository.model.DistributionSet;
@@ -116,7 +116,7 @@ public class JpaRolloutManagement implements RolloutManagement {
private CacheWriteNotify cacheWriteNotify;
@Autowired
- private VirtualPropertyLookup virtualPropertyLookup;
+ private VirtualPropertyReplacer virtualPropertyReplacer;
@Autowired
@Qualifier("asyncExecutor")
@@ -155,7 +155,7 @@ public class JpaRolloutManagement implements RolloutManagement {
public Page findAllWithDetailedStatusByPredicate(final String rsqlParam, final Pageable pageable) {
final Specification specification = RSQLUtility.parse(rsqlParam, RolloutFields.class,
- virtualPropertyLookup);
+ virtualPropertyReplacer);
final Page findAll = rolloutRepository.findAll(specification, pageable);
setRolloutStatusDetails(findAll);
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaSoftwareManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaSoftwareManagement.java
index fad743baf..f403ff38b 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaSoftwareManagement.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaSoftwareManagement.java
@@ -45,7 +45,7 @@ import org.eclipse.hawkbit.repository.jpa.model.JpaSoftwareModuleType;
import org.eclipse.hawkbit.repository.jpa.model.JpaSoftwareModule_;
import org.eclipse.hawkbit.repository.jpa.model.SwMetadataCompositeKey;
import org.eclipse.hawkbit.repository.jpa.rsql.RSQLUtility;
-import org.eclipse.hawkbit.repository.jpa.rsql.VirtualPropertyLookup;
+import org.eclipse.hawkbit.repository.rsql.VirtualPropertyReplacer;
import org.eclipse.hawkbit.repository.jpa.specifications.SoftwareModuleSpecification;
import org.eclipse.hawkbit.repository.jpa.specifications.SpecificationsBuilder;
import org.eclipse.hawkbit.repository.model.AssignedSoftwareModule;
@@ -108,7 +108,7 @@ public class JpaSoftwareManagement implements SoftwareManagement {
private ArtifactManagement artifactManagement;
@Autowired
- private VirtualPropertyLookup virtualPropertyLookup;
+ private VirtualPropertyReplacer virtualPropertyReplacer;
@Override
@Modifying
@@ -317,7 +317,7 @@ public class JpaSoftwareManagement implements SoftwareManagement {
@Override
public Page findSoftwareModulesByPredicate(final String rsqlParam, final Pageable pageable) {
final Specification spec = RSQLUtility.parse(rsqlParam, SoftwareModuleFields.class,
- virtualPropertyLookup);
+ virtualPropertyReplacer);
return convertSmPage(softwareModuleRepository.findAll(spec, pageable), pageable);
}
@@ -326,7 +326,7 @@ public class JpaSoftwareManagement implements SoftwareManagement {
public Page findSoftwareModuleTypesAll(final String rsqlParam, final Pageable pageable) {
final Specification spec = RSQLUtility.parse(rsqlParam, SoftwareModuleTypeFields.class,
- virtualPropertyLookup);
+ virtualPropertyReplacer);
return convertSmTPage(softwareModuleTypeRepository.findAll(spec, pageable), pageable);
}
@@ -612,7 +612,7 @@ public class JpaSoftwareManagement implements SoftwareManagement {
final String rsqlParam, final Pageable pageable) {
final Specification spec = RSQLUtility.parse(rsqlParam,
- SoftwareModuleMetadataFields.class, virtualPropertyLookup);
+ SoftwareModuleMetadataFields.class, virtualPropertyReplacer);
return convertSmMdPage(
softwareModuleMetadataRepository
.findAll(
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaTagManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaTagManagement.java
index fcc97729e..fd151b527 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaTagManagement.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaTagManagement.java
@@ -30,7 +30,7 @@ import org.eclipse.hawkbit.repository.jpa.model.JpaDistributionSetTag;
import org.eclipse.hawkbit.repository.jpa.model.JpaTarget;
import org.eclipse.hawkbit.repository.jpa.model.JpaTargetTag;
import org.eclipse.hawkbit.repository.jpa.rsql.RSQLUtility;
-import org.eclipse.hawkbit.repository.jpa.rsql.VirtualPropertyLookup;
+import org.eclipse.hawkbit.repository.rsql.VirtualPropertyReplacer;
import org.eclipse.hawkbit.repository.model.DistributionSetTag;
import org.eclipse.hawkbit.repository.model.TargetTag;
import org.eclipse.hawkbit.tenancy.TenantAware;
@@ -76,7 +76,7 @@ public class JpaTagManagement implements TagManagement {
private AfterTransactionCommitExecutor afterCommit;
@Autowired
- private VirtualPropertyLookup virtualPropertyLookup;
+ private VirtualPropertyReplacer virtualPropertyReplacer;
@Override
public TargetTag findTargetTag(final String name) {
@@ -151,7 +151,7 @@ public class JpaTagManagement implements TagManagement {
@Override
public Page findAllTargetTags(final String rsqlParam, final Pageable pageable) {
- final Specification spec = RSQLUtility.parse(rsqlParam, TagFields.class, virtualPropertyLookup);
+ final Specification spec = RSQLUtility.parse(rsqlParam, TagFields.class, virtualPropertyReplacer);
return convertTPage(targetTagRepository.findAll(spec, pageable), pageable);
}
@@ -285,7 +285,7 @@ public class JpaTagManagement implements TagManagement {
@Override
public Page findAllDistributionSetTags(final String rsqlParam, final Pageable pageable) {
final Specification spec = RSQLUtility.parse(rsqlParam, TagFields.class,
- virtualPropertyLookup);
+ virtualPropertyReplacer);
return convertDsPage(distributionSetTagRepository.findAll(spec, pageable), pageable);
}
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaTargetFilterQueryManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaTargetFilterQueryManagement.java
index 39343d3a4..ed9ba5977 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaTargetFilterQueryManagement.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaTargetFilterQueryManagement.java
@@ -16,7 +16,7 @@ import org.eclipse.hawkbit.repository.TargetFilterQueryManagement;
import org.eclipse.hawkbit.repository.exception.EntityAlreadyExistsException;
import org.eclipse.hawkbit.repository.jpa.model.JpaTargetFilterQuery;
import org.eclipse.hawkbit.repository.jpa.rsql.RSQLUtility;
-import org.eclipse.hawkbit.repository.jpa.rsql.VirtualPropertyLookup;
+import org.eclipse.hawkbit.repository.rsql.VirtualPropertyReplacer;
import org.eclipse.hawkbit.repository.jpa.specifications.SpecificationsBuilder;
import org.eclipse.hawkbit.repository.jpa.specifications.TargetFilterQuerySpecification;
import org.eclipse.hawkbit.repository.model.TargetFilterQuery;
@@ -46,7 +46,7 @@ public class JpaTargetFilterQueryManagement implements TargetFilterQueryManageme
private TargetFilterQueryRepository targetFilterQueryRepository;
@Autowired
- private VirtualPropertyLookup virtualPropertyLookup;
+ private VirtualPropertyReplacer virtualPropertyReplacer;
@Override
@Modifying
@@ -115,7 +115,7 @@ public class JpaTargetFilterQueryManagement implements TargetFilterQueryManageme
@Override
public boolean verifyTargetFilterQuerySyntax(final String query) {
- RSQLUtility.parse(query, TargetFields.class, virtualPropertyLookup);
+ RSQLUtility.parse(query, TargetFields.class, virtualPropertyReplacer);
return true;
}
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaTargetManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaTargetManagement.java
index 878c70f04..75e883c83 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaTargetManagement.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaTargetManagement.java
@@ -42,7 +42,7 @@ import org.eclipse.hawkbit.repository.jpa.model.JpaTargetInfo_;
import org.eclipse.hawkbit.repository.jpa.model.JpaTargetTag;
import org.eclipse.hawkbit.repository.jpa.model.JpaTarget_;
import org.eclipse.hawkbit.repository.jpa.rsql.RSQLUtility;
-import org.eclipse.hawkbit.repository.jpa.rsql.VirtualPropertyLookup;
+import org.eclipse.hawkbit.repository.rsql.VirtualPropertyReplacer;
import org.eclipse.hawkbit.repository.jpa.specifications.SpecificationsBuilder;
import org.eclipse.hawkbit.repository.jpa.specifications.TargetSpecifications;
import org.eclipse.hawkbit.repository.model.Target;
@@ -105,7 +105,7 @@ public class JpaTargetManagement implements TargetManagement {
private AfterTransactionCommitExecutor afterCommit;
@Autowired
- private VirtualPropertyLookup virtualPropertyLookup;
+ private VirtualPropertyReplacer virtualPropertyReplacer;
@Override
public Target findTargetByControllerID(final String controllerId) {
@@ -158,13 +158,13 @@ public class JpaTargetManagement implements TargetManagement {
@Override
public Slice findTargetsAll(final TargetFilterQuery targetFilterQuery, final Pageable pageable) {
return findTargetsBySpec(
- RSQLUtility.parse(targetFilterQuery.getQuery(), TargetFields.class, virtualPropertyLookup),
+ RSQLUtility.parse(targetFilterQuery.getQuery(), TargetFields.class, virtualPropertyReplacer),
pageable);
}
@Override
public Page findTargetsAll(final String targetFilterQuery, final Pageable pageable) {
- return findTargetsBySpec(RSQLUtility.parse(targetFilterQuery, TargetFields.class, virtualPropertyLookup),
+ return findTargetsBySpec(RSQLUtility.parse(targetFilterQuery, TargetFields.class, virtualPropertyReplacer),
pageable);
}
@@ -233,7 +233,7 @@ public class JpaTargetManagement implements TargetManagement {
final Pageable pageReq) {
final Specification spec = RSQLUtility.parse(rsqlParam, TargetFields.class,
- virtualPropertyLookup);
+ virtualPropertyReplacer);
return convertPage(
targetRepository
@@ -262,7 +262,7 @@ public class JpaTargetManagement implements TargetManagement {
final Pageable pageable) {
final Specification spec = RSQLUtility.parse(rsqlParam, TargetFields.class,
- virtualPropertyLookup);
+ virtualPropertyReplacer);
return convertPage(
targetRepository
@@ -566,7 +566,7 @@ public class JpaTargetManagement implements TargetManagement {
final CriteriaQuery