diff --git a/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/AbstractDDiApiIntegrationTest.java b/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/AbstractDDiApiIntegrationTest.java index 968b0a462..6dc8545c0 100644 --- a/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/AbstractDDiApiIntegrationTest.java +++ b/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/AbstractDDiApiIntegrationTest.java @@ -23,7 +23,6 @@ import java.io.StringWriter; import java.util.Collections; import java.util.List; import java.util.Optional; -import java.util.Random; import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonGenerator; diff --git a/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiConfigDataTest.java b/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiConfigDataTest.java index a87e739e8..8ee790e67 100644 --- a/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiConfigDataTest.java +++ b/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiConfigDataTest.java @@ -26,7 +26,6 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. import java.util.Collections; import java.util.HashMap; import java.util.Map; -import java.util.NoSuchElementException; import org.eclipse.hawkbit.ddi.rest.api.DdiRestConstants; import org.eclipse.hawkbit.exception.SpServerError; diff --git a/hawkbit-repository/hawkbit-repository-jpa-ql/src/main/java/org/eclipse/hawkbit/repository/jpa/ql/QLSupport.java b/hawkbit-repository/hawkbit-repository-jpa-ql/src/main/java/org/eclipse/hawkbit/repository/jpa/ql/QLSupport.java index c1f4b53c9..33dff49f5 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-ql/src/main/java/org/eclipse/hawkbit/repository/jpa/ql/QLSupport.java +++ b/hawkbit-repository/hawkbit-repository-jpa-ql/src/main/java/org/eclipse/hawkbit/repository/jpa/ql/QLSupport.java @@ -33,13 +33,11 @@ import org.eclipse.hawkbit.repository.jpa.rsql.legacy.SpecificationBuilderLegacy import org.eclipse.hawkbit.repository.rsql.VirtualPropertyResolver; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties; import org.springframework.context.ApplicationListener; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; import org.springframework.data.jpa.domain.Specification; -import org.springframework.orm.jpa.vendor.Database; /** * A utility class which is able to parse RSQL strings into an spring data @@ -114,7 +112,6 @@ public class QLSupport implements ApplicationListener { @SuppressWarnings({ "rawtypes", "unchecked" }) private QueryParser parser; private List nodeTransformers; - private Database database; private EntityManager entityManager; private VirtualPropertyResolver virtualPropertyResolver; @@ -139,11 +136,6 @@ public class QLSupport implements ApplicationListener { }).toList(); } - @Autowired - void setDatabase(final JpaProperties jpaProperties) { - database = jpaProperties.getDatabase(); - } - @Autowired void setEntityManager(final EntityManager entityManager) { this.entityManager = entityManager; @@ -171,15 +163,15 @@ public class QLSupport implements ApplicationListener { */ public & QueryField, T> Specification buildSpec(final String query, final Class queryFieldType) { if (specBuilder == SpecBuilder.G3) { - return new SpecificationBuilder(ignoreCase && !caseInsensitiveDB , database) + return new SpecificationBuilder(ignoreCase && !caseInsensitiveDB) .specification(transform(parse(query, queryFieldType), queryFieldType)); } else { - return new SpecificationBuilderLegacy(queryFieldType, virtualPropertyResolver, database).specification(query); + return new SpecificationBuilderLegacy(queryFieldType, virtualPropertyResolver).specification(query); } } public & QueryField, T> Specification buildSpec(final Node query, final Class queryFieldType) { - return new SpecificationBuilder(ignoreCase && !caseInsensitiveDB , database) + return new SpecificationBuilder(ignoreCase && !caseInsensitiveDB) .specification(transform(query, queryFieldType)); } diff --git a/hawkbit-repository/hawkbit-repository-jpa-ql/src/main/java/org/eclipse/hawkbit/repository/jpa/ql/SpecificationBuilder.java b/hawkbit-repository/hawkbit-repository-jpa-ql/src/main/java/org/eclipse/hawkbit/repository/jpa/ql/SpecificationBuilder.java index 3810d4cf6..972b21c87 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-ql/src/main/java/org/eclipse/hawkbit/repository/jpa/ql/SpecificationBuilder.java +++ b/hawkbit-repository/hawkbit-repository-jpa-ql/src/main/java/org/eclipse/hawkbit/repository/jpa/ql/SpecificationBuilder.java @@ -55,7 +55,6 @@ import org.eclipse.hawkbit.repository.jpa.ql.Node.Comparison; import org.eclipse.hawkbit.repository.jpa.ql.Node.Comparison.Operator; import org.eclipse.hawkbit.repository.jpa.ql.Node.Logical; import org.springframework.data.jpa.domain.Specification; -import org.springframework.orm.jpa.vendor.Database; import org.springframework.util.ObjectUtils; @Slf4j @@ -64,11 +63,9 @@ public class SpecificationBuilder { private static final char ESCAPE_CHAR = '\\'; private final boolean ensureIgnoreCase; - private final Database database; - public SpecificationBuilder(final boolean ensureIgnoreCase, final Database database) { + public SpecificationBuilder(final boolean ensureIgnoreCase) { this.ensureIgnoreCase = ensureIgnoreCase; - this.database = database; } public Specification specification(final Node node) { diff --git a/hawkbit-repository/hawkbit-repository-jpa-ql/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/legacy/JpaQueryRsqlVisitor.java b/hawkbit-repository/hawkbit-repository-jpa-ql/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/legacy/JpaQueryRsqlVisitor.java index 61dfcf88f..63718ee43 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-ql/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/legacy/JpaQueryRsqlVisitor.java +++ b/hawkbit-repository/hawkbit-repository-jpa-ql/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/legacy/JpaQueryRsqlVisitor.java @@ -49,7 +49,6 @@ import org.eclipse.hawkbit.repository.exception.RSQLParameterUnsupportedFieldExc import org.eclipse.hawkbit.repository.rsql.VirtualPropertyResolver; import org.springframework.beans.SimpleTypeConverter; import org.springframework.beans.TypeMismatchException; -import org.springframework.orm.jpa.vendor.Database; import org.springframework.util.CollectionUtils; import org.springframework.util.ObjectUtils; @@ -77,7 +76,6 @@ public class JpaQueryRsqlVisitor & QueryField, T> extends Abst private final CriteriaBuilder cb; private final CriteriaQuery query; - private final Database database; private final boolean ensureIgnoreCase; private final Root root; private final VirtualPropertyResolver virtualPropertyResolver; @@ -89,7 +87,7 @@ public class JpaQueryRsqlVisitor & QueryField, T> extends Abst public JpaQueryRsqlVisitor( final Root root, final CriteriaBuilder cb, final Class enumType, - final VirtualPropertyResolver virtualPropertyResolver, final Database database, + final VirtualPropertyResolver virtualPropertyResolver, final CriteriaQuery query, final boolean ensureIgnoreCase) { super(enumType); this.root = root; @@ -97,7 +95,6 @@ public class JpaQueryRsqlVisitor & QueryField, T> extends Abst this.query = query; this.virtualPropertyResolver = virtualPropertyResolver; this.simpleTypeConverter = new SimpleTypeConverter(); - this.database = database; this.ensureIgnoreCase = ensureIgnoreCase; } @@ -334,7 +331,8 @@ public class JpaQueryRsqlVisitor & QueryField, T> extends Abst final Predicate mapPredicate = mapToMapPredicate(fieldPath, queryPath); - final Predicate valuePredicate = addOperatorPredicate(node, queryPath.getEnumValue().isMap() ? (Path)toMapValuePath(fieldPath) : fieldPath, transformedValues, value, queryPath); + final Predicate valuePredicate = addOperatorPredicate(node, + queryPath.getEnumValue().isMap() ? (Path) toMapValuePath(fieldPath) : fieldPath, transformedValues, value, queryPath); return toSingleList(mapPredicate != null ? cb.and(mapPredicate, valuePredicate) : valuePredicate); } @@ -495,7 +493,7 @@ public class JpaQueryRsqlVisitor & QueryField, T> extends Abst @SuppressWarnings({ "rawtypes", "unchecked" }) private Expression getExpressionToCompare(final Path innerFieldPath, final A enumField) { - if (enumField.isMap()){ + if (enumField.isMap()) { return toMapValuePath(innerFieldPath); } else { return pathOfString(innerFieldPath); diff --git a/hawkbit-repository/hawkbit-repository-jpa-ql/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/legacy/JpaQueryRsqlVisitorG2.java b/hawkbit-repository/hawkbit-repository-jpa-ql/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/legacy/JpaQueryRsqlVisitorG2.java index 3d3eb6280..bd3b1987d 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-ql/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/legacy/JpaQueryRsqlVisitorG2.java +++ b/hawkbit-repository/hawkbit-repository-jpa-ql/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/legacy/JpaQueryRsqlVisitorG2.java @@ -46,7 +46,6 @@ import org.eclipse.hawkbit.repository.exception.RSQLParameterSyntaxException; import org.eclipse.hawkbit.repository.exception.RSQLParameterUnsupportedFieldException; import org.eclipse.hawkbit.repository.jpa.ql.SpecificationBuilder; import org.eclipse.hawkbit.repository.rsql.VirtualPropertyResolver; -import org.springframework.orm.jpa.vendor.Database; import org.springframework.util.CollectionUtils; import org.springframework.util.ObjectUtils; @@ -56,9 +55,9 @@ import org.springframework.util.ObjectUtils; * @param the enum for providing the field name of the entity field to filter on. * @param the entity type referenced by the root * @deprecated Old implementation of RSQL Visitor (G2). Deprecated in favour of next gen implementation - - * {@link SpecificationBuilder}. - * It will be kept for some time in order to keep backward compatibility and to allow for a smooth transition. Also, in case of - * problems with the new implementation, this one can be used as a fallback. + * {@link SpecificationBuilder}. + * It will be kept for some time in order to keep backward compatibility and to allow for a smooth transition. Also, in case of + * problems with the new implementation, this one can be used as a fallback. */ @Deprecated(forRemoval = true, since = "0.9.0") @Slf4j @@ -72,7 +71,6 @@ public class JpaQueryRsqlVisitorG2 & QueryField, T> private final Root root; private final CriteriaQuery query; private final CriteriaBuilder cb; - private final Database database; private final VirtualPropertyResolver virtualPropertyResolver; private final boolean ensureIgnoreCase; @@ -82,13 +80,12 @@ public class JpaQueryRsqlVisitorG2 & QueryField, T> public JpaQueryRsqlVisitorG2( final Class enumType, final Root root, final CriteriaQuery query, final CriteriaBuilder cb, - final Database database, final VirtualPropertyResolver virtualPropertyResolver, final boolean ensureIgnoreCase) { + final VirtualPropertyResolver virtualPropertyResolver, final boolean ensureIgnoreCase) { super(enumType); this.root = root; this.cb = cb; this.query = query; this.virtualPropertyResolver = virtualPropertyResolver; - this.database = database; this.ensureIgnoreCase = ensureIgnoreCase; } @@ -150,7 +147,8 @@ public class JpaQueryRsqlVisitorG2 & QueryField, T> mapEntryKeyPredicate = null; } - final Predicate valuePredicate = toOperatorAndValuePredicate(node, queryPath, queryPath.getEnumValue().isMap() ? toMapValuePath(fieldPath) : fieldPath, values); + final Predicate valuePredicate = toOperatorAndValuePredicate(node, queryPath, + queryPath.getEnumValue().isMap() ? toMapValuePath(fieldPath) : fieldPath, values); return mapEntryKeyPredicate == null ? valuePredicate : cb.and(mapEntryKeyPredicate, valuePredicate); } diff --git a/hawkbit-repository/hawkbit-repository-jpa-ql/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/legacy/SpecificationBuilderLegacy.java b/hawkbit-repository/hawkbit-repository-jpa-ql/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/legacy/SpecificationBuilderLegacy.java index 96efc2031..b055b9b60 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-ql/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/legacy/SpecificationBuilderLegacy.java +++ b/hawkbit-repository/hawkbit-repository-jpa-ql/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/legacy/SpecificationBuilderLegacy.java @@ -9,8 +9,8 @@ */ package org.eclipse.hawkbit.repository.jpa.rsql.legacy; -import static org.eclipse.hawkbit.repository.jpa.rsql.legacy.AbstractRSQLVisitor.OPERATORS; import static org.eclipse.hawkbit.repository.jpa.ql.QLSupport.SpecBuilder.LEGACY_G1; +import static org.eclipse.hawkbit.repository.jpa.rsql.legacy.AbstractRSQLVisitor.OPERATORS; import java.util.List; @@ -23,15 +23,14 @@ import cz.jirutka.rsql.parser.ast.RSQLVisitor; import lombok.extern.slf4j.Slf4j; import org.eclipse.hawkbit.repository.QueryField; import org.eclipse.hawkbit.repository.exception.RSQLParameterSyntaxException; -import org.eclipse.hawkbit.repository.jpa.ql.SpecificationBuilder; import org.eclipse.hawkbit.repository.jpa.ql.QLSupport; +import org.eclipse.hawkbit.repository.jpa.ql.SpecificationBuilder; import org.eclipse.hawkbit.repository.rsql.VirtualPropertyResolver; import org.springframework.data.jpa.domain.Specification; -import org.springframework.orm.jpa.vendor.Database; import org.springframework.util.CollectionUtils; /** - * @deprecated Old implementation of RSQL Visitor (G2). Deprecated in favour of next gen implementation - {@link SpecificationBuilder}. + * @deprecated Old implementation of RSQL Visitor (G2). Deprecated in favour of next gen implementation - {@link SpecificationBuilder}. */ @Deprecated(forRemoval = true, since = "0.9.0") @Slf4j @@ -39,13 +38,10 @@ public class SpecificationBuilderLegacy & QueryField, T> { private final Class rsqlQueryFieldType; private final VirtualPropertyResolver virtualPropertyResolver; - private final Database database; - public SpecificationBuilderLegacy( - final Class rsqlQueryFieldType, final VirtualPropertyResolver virtualPropertyResolver, final Database database) { + public SpecificationBuilderLegacy(final Class rsqlQueryFieldType, final VirtualPropertyResolver virtualPropertyResolver) { this.rsqlQueryFieldType = rsqlQueryFieldType; this.virtualPropertyResolver = virtualPropertyResolver; - this.database = database; } public Specification specification(final String rsql) { @@ -58,8 +54,8 @@ public class SpecificationBuilderLegacy & QueryField, T> { final boolean ensureIgnoreCase = !qlSupport.isCaseInsensitiveDB() && qlSupport.isIgnoreCase(); final RSQLVisitor, String> jpqQueryRSQLVisitor = qlSupport.getSpecBuilder() == LEGACY_G1 - ? new JpaQueryRsqlVisitor<>(root, cb, rsqlQueryFieldType, virtualPropertyResolver, database, query, ensureIgnoreCase) - : new JpaQueryRsqlVisitorG2<>(rsqlQueryFieldType, root, query, cb, database, virtualPropertyResolver, ensureIgnoreCase); + ? new JpaQueryRsqlVisitor<>(root, cb, rsqlQueryFieldType, virtualPropertyResolver, query, ensureIgnoreCase) + : new JpaQueryRsqlVisitorG2<>(rsqlQueryFieldType, root, query, cb, virtualPropertyResolver, ensureIgnoreCase); final List accept = rootNode.accept(jpqQueryRSQLVisitor); if (CollectionUtils.isEmpty(accept)) { diff --git a/hawkbit-repository/hawkbit-repository-jpa-ql/src/test/java/org/eclipse/hawkbit/repository/jpa/ql/SpecificationBuilderLegacyTest.java b/hawkbit-repository/hawkbit-repository-jpa-ql/src/test/java/org/eclipse/hawkbit/repository/jpa/ql/SpecificationBuilderLegacyTest.java index c40f3915e..de482b890 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-ql/src/test/java/org/eclipse/hawkbit/repository/jpa/ql/SpecificationBuilderLegacyTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa-ql/src/test/java/org/eclipse/hawkbit/repository/jpa/ql/SpecificationBuilderLegacyTest.java @@ -22,13 +22,12 @@ import org.eclipse.hawkbit.repository.jpa.ql.QLSupport.SpecBuilder; import org.eclipse.hawkbit.repository.jpa.rsql.legacy.SpecificationBuilderLegacy; import org.junit.jupiter.api.Test; import org.springframework.data.jpa.domain.Specification; -import org.springframework.orm.jpa.vendor.Database; @SuppressWarnings("java:S2699") // java:S2699 - assertions are un the super methods that are called @Slf4j class SpecificationBuilderLegacyTest extends SpecificationBuilderTest { - private final SpecificationBuilderLegacy builder = new SpecificationBuilderLegacy<>(RootField.class, null, Database.H2); + private final SpecificationBuilderLegacy builder = new SpecificationBuilderLegacy<>(RootField.class, null); private static void runWithRsqlToSpecBuilder(final Runnable runnable, final SpecBuilder rsqlToSpecBuilder) { final SpecBuilder defaultBuilder = QLSupport.getInstance().getSpecBuilder(); @@ -44,6 +43,7 @@ class SpecificationBuilderLegacyTest extends SpecificationBuilderTest { void singularStringAttributeG1() { runWithRsqlToSpecBuilder(super::singularStringAttribute, LEGACY_G1); } + @Override @Test void singularStringAttribute() { @@ -54,6 +54,7 @@ class SpecificationBuilderLegacyTest extends SpecificationBuilderTest { void singularIntAttributeG1() { runWithRsqlToSpecBuilder(super::singularIntAttribute, LEGACY_G1); } + @Override @Test void singularIntAttribute() { @@ -64,6 +65,7 @@ class SpecificationBuilderLegacyTest extends SpecificationBuilderTest { void singularEntityAttributeG1() { runWithRsqlToSpecBuilder(super::singularEntityAttribute, LEGACY_G1); } + @Override @Test void singularEntityAttribute() { @@ -74,6 +76,7 @@ class SpecificationBuilderLegacyTest extends SpecificationBuilderTest { void pluralSubSetAttributeG1() { runWithRsqlToSpecBuilder(super::pluralSubSetAttribute, LEGACY_G1); } + @Override @Test void pluralSubSetAttribute() { @@ -91,6 +94,7 @@ class SpecificationBuilderLegacyTest extends SpecificationBuilderTest { void singularEntitySubSubAttributeG1() { runWithRsqlToSpecBuilder(super::singularEntitySubSubAttribute, LEGACY_G1); } + @Override @Test void singularEntitySubSubAttribute() { diff --git a/hawkbit-repository/hawkbit-repository-jpa-ql/src/test/java/org/eclipse/hawkbit/repository/jpa/ql/SpecificationBuilderTest.java b/hawkbit-repository/hawkbit-repository-jpa-ql/src/test/java/org/eclipse/hawkbit/repository/jpa/ql/SpecificationBuilderTest.java index ff6938d75..e6d6d290a 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-ql/src/test/java/org/eclipse/hawkbit/repository/jpa/ql/SpecificationBuilderTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa-ql/src/test/java/org/eclipse/hawkbit/repository/jpa/ql/SpecificationBuilderTest.java @@ -51,7 +51,7 @@ class SpecificationBuilderTest { @Autowired private EntityManager entityManager; - private final SpecificationBuilder builder = new SpecificationBuilder<>(false, Database.H2); + private final SpecificationBuilder builder = new SpecificationBuilder<>(false); @Test void singularStringAttribute() { diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OfflineDsAssignmentStrategy.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OfflineDsAssignmentStrategy.java index 02eb4c527..126f7056e 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OfflineDsAssignmentStrategy.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OfflineDsAssignmentStrategy.java @@ -125,6 +125,7 @@ class OfflineDsAssignmentStrategy extends AbstractDsAssignmentStrategy { @Override public void cancelActiveActions(final List> targetIds) { + // Not supported by offline case } @Override