diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index cfee73740..2f5f62533 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -24,7 +24,7 @@ Please read this if you intend to contribute to the project.
### Utility library usage
-hawkBit has currently both [guava](https://github.com/google/guava) and [Apache commons lang](https://commons.apache.org/proper/commons-lang/) on the classpath in several of its modules. However, we see introducing too many utility libraries problematic as we force these as transitive dependencies on hawkBit users. We in fact are looking into reducing them in future not adding new ones.
+hawkBit has currently [Apache commons lang](https://commons.apache.org/proper/commons-lang/) on the classpath in several of its modules. However, we see introducing too many utility libraries problematic as we force these as transitive dependencies on hawkBit users. We in fact are looking into reducing them in future not adding new ones.
So we kindly ask contributors:
@@ -33,14 +33,8 @@ So we kindly ask contributors:
* use utility functions in general based in the following priority:
* use utility functions from JDK if feasible
* use Spring utility classes if feasible
- * use [Guava](https://github.com/google/guava) if feasible
* use [Apache commons lang](https://commons.apache.org/proper/commons-lang/) if feasible
-Examples:
-
-* Prefer `Arrays.asList(...)` from JDK over Guava's `Lists.newArrayList(...)`
-* Prefer `StringUtils` from Spring over Guava's `Strings` and Apache's `StringUtils`
-
### Test documentation
Please document the test cases that you contribute by means of [Allure](https://docs.qameta.io/allure/) annotations and proper test method naming.
diff --git a/hawkbit-artifact-repository-filesystem/pom.xml b/hawkbit-artifact-repository-filesystem/pom.xml
index 5106e16bd..ec6c7aadd 100644
--- a/hawkbit-artifact-repository-filesystem/pom.xml
+++ b/hawkbit-artifact-repository-filesystem/pom.xml
@@ -25,10 +25,6 @@
hawkbit-core
${project.version}
-
- com.google.guava
- guava
-
org.springframework
spring-core
diff --git a/hawkbit-artifact-repository-filesystem/src/main/java/org/eclipse/hawkbit/artifact/repository/ArtifactFilesystemRepository.java b/hawkbit-artifact-repository-filesystem/src/main/java/org/eclipse/hawkbit/artifact/repository/ArtifactFilesystemRepository.java
index 7f8339682..866787ecf 100644
--- a/hawkbit-artifact-repository-filesystem/src/main/java/org/eclipse/hawkbit/artifact/repository/ArtifactFilesystemRepository.java
+++ b/hawkbit-artifact-repository-filesystem/src/main/java/org/eclipse/hawkbit/artifact/repository/ArtifactFilesystemRepository.java
@@ -11,6 +11,7 @@ package org.eclipse.hawkbit.artifact.repository;
import java.io.File;
import java.io.IOException;
+import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
@@ -21,7 +22,6 @@ import org.eclipse.hawkbit.artifact.repository.model.DbArtifactHash;
import org.springframework.validation.annotation.Validated;
import com.google.common.base.Splitter;
-import com.google.common.io.Files;
/**
* Implementation of the {@link ArtifactRepository} to store artifacts on the
@@ -79,7 +79,7 @@ public class ArtifactFilesystemRepository extends AbstractArtifactRepository {
if (fileSHA1Naming.exists()) {
FileUtils.deleteQuietly(file);
} else {
- Files.move(file, fileSHA1Naming);
+ Files.move(file.toPath(), fileSHA1Naming.toPath());
}
return new ArtifactFilesystem(fileSHA1Naming, artifact.getArtifactId(), artifact.getHashes(),
diff --git a/hawkbit-autoconfigure/pom.xml b/hawkbit-autoconfigure/pom.xml
index a3ac40609..3d4dba7d2 100644
--- a/hawkbit-autoconfigure/pom.xml
+++ b/hawkbit-autoconfigure/pom.xml
@@ -71,10 +71,6 @@
org.springframework
spring-context-support
-
-
- com.google.guava
- guava
io.protostuff
diff --git a/hawkbit-core/pom.xml b/hawkbit-core/pom.xml
index cf48def9c..974ee4a1a 100644
--- a/hawkbit-core/pom.xml
+++ b/hawkbit-core/pom.xml
@@ -34,8 +34,9 @@
jakarta.validation-api
- com.google.guava
- guava
+ commons-io
+ commons-io
+ ${commons-io.version}
diff --git a/hawkbit-core/src/main/java/org/eclipse/hawkbit/artifact/repository/AbstractArtifactRepository.java b/hawkbit-core/src/main/java/org/eclipse/hawkbit/artifact/repository/AbstractArtifactRepository.java
index ef4751a04..3740c6e40 100644
--- a/hawkbit-core/src/main/java/org/eclipse/hawkbit/artifact/repository/AbstractArtifactRepository.java
+++ b/hawkbit-core/src/main/java/org/eclipse/hawkbit/artifact/repository/AbstractArtifactRepository.java
@@ -19,16 +19,15 @@ import java.nio.file.Files;
import java.security.DigestInputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
+import java.util.HexFormat;
+import org.apache.commons.io.IOUtils;
import org.eclipse.hawkbit.artifact.repository.model.AbstractDbArtifact;
import org.eclipse.hawkbit.artifact.repository.model.DbArtifactHash;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.StringUtils;
-import com.google.common.io.BaseEncoding;
-import com.google.common.io.ByteStreams;
-
/**
* Abstract utility class for ArtifactRepository implementations with common
* functionality, e.g. computation of hashes.
@@ -61,9 +60,11 @@ public abstract class AbstractArtifactRepository implements ArtifactRepository {
tempFile = storeTempFile(inputStream);
- final String sha1Hash16 = BaseEncoding.base16().lowerCase().encode(mdSHA1.digest());
- final String md5Hash16 = BaseEncoding.base16().lowerCase().encode(mdMD5.digest());
- final String sha256Hash16 = BaseEncoding.base16().lowerCase().encode(mdSHA256.digest());
+ final HexFormat hexFormat = HexFormat.of().withLowerCase();
+
+ final String sha1Hash16 = hexFormat.formatHex(mdSHA1.digest());
+ final String md5Hash16 = hexFormat.formatHex(mdMD5.digest());
+ final String sha256Hash16 = hexFormat.formatHex(mdSHA256.digest());
checkHashes(sha1Hash16, md5Hash16, sha256Hash16, providedHashes);
@@ -110,7 +111,7 @@ public abstract class AbstractArtifactRepository implements ArtifactRepository {
protected String storeTempFile(final InputStream content) throws IOException {
final File file = createTempFile();
try (final OutputStream outputstream = new BufferedOutputStream(new FileOutputStream(file))) {
- ByteStreams.copy(content, outputstream);
+ IOUtils.copy(content, outputstream);
outputstream.flush();
}
return file.getPath();
diff --git a/hawkbit-dmf/hawkbit-dmf-amqp/pom.xml b/hawkbit-dmf/hawkbit-dmf-amqp/pom.xml
index d520ef4ff..97f8a8ed3 100644
--- a/hawkbit-dmf/hawkbit-dmf-amqp/pom.xml
+++ b/hawkbit-dmf/hawkbit-dmf-amqp/pom.xml
@@ -62,10 +62,6 @@
org.springframework.boot
spring-boot-starter-json
-
- com.google.guava
- guava
-
org.slf4j
slf4j-api
diff --git a/hawkbit-dmf/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpConfiguration.java b/hawkbit-dmf/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpConfiguration.java
index cc858f813..e4dcf02d6 100644
--- a/hawkbit-dmf/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpConfiguration.java
+++ b/hawkbit-dmf/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpConfiguration.java
@@ -9,7 +9,6 @@
*/
package org.eclipse.hawkbit.amqp;
-import com.google.common.collect.Maps;
import org.eclipse.hawkbit.api.ArtifactUrlHandler;
import org.eclipse.hawkbit.api.HostnameResolver;
import org.eclipse.hawkbit.cache.DownloadIdCache;
@@ -54,6 +53,7 @@ import org.springframework.retry.support.RetryTemplate;
import org.springframework.util.ErrorHandler;
import java.time.Duration;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -366,10 +366,9 @@ public class AmqpConfiguration {
}
private static Map getTTLMaxArgsAuthenticationQueue() {
- final Map args = Maps.newHashMapWithExpectedSize(2);
+ final Map args = new HashMap<>(2);
args.put("x-message-ttl", Duration.ofSeconds(30).toMillis());
args.put("x-max-length", 1_000);
return args;
}
-
-}
+}
\ No newline at end of file
diff --git a/hawkbit-dmf/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpControllerAuthentication.java b/hawkbit-dmf/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpControllerAuthentication.java
index 622b073d4..2973abd0a 100644
--- a/hawkbit-dmf/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpControllerAuthentication.java
+++ b/hawkbit-dmf/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpControllerAuthentication.java
@@ -9,6 +9,7 @@
*/
package org.eclipse.hawkbit.amqp;
+import java.util.ArrayList;
import java.util.List;
import jakarta.annotation.PostConstruct;
@@ -33,8 +34,6 @@ import org.slf4j.LoggerFactory;
import org.springframework.security.core.Authentication;
import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationToken;
-import com.google.common.collect.Lists;
-
/**
*
* A controller which handles the DMF AMQP authentication.
@@ -93,7 +92,7 @@ public class AmqpControllerAuthentication {
}
private void addFilter() {
- filterChain = Lists.newArrayListWithExpectedSize(5);
+ filterChain = new ArrayList<>(5);
final ControllerPreAuthenticatedGatewaySecurityTokenFilter gatewaySecurityTokenFilter = new ControllerPreAuthenticatedGatewaySecurityTokenFilter(
tenantConfigurationManagement, tenantAware, systemSecurityContext);
diff --git a/hawkbit-dmf/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpDeadletterProperties.java b/hawkbit-dmf/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpDeadletterProperties.java
index 41b9d1b3f..f3b9c3fce 100644
--- a/hawkbit-dmf/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpDeadletterProperties.java
+++ b/hawkbit-dmf/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpDeadletterProperties.java
@@ -10,13 +10,12 @@
package org.eclipse.hawkbit.amqp;
import java.time.Duration;
+import java.util.HashMap;
import java.util.Map;
import org.springframework.amqp.core.Queue;
import org.springframework.boot.context.properties.ConfigurationProperties;
-import com.google.common.collect.Maps;
-
/**
* Bean which holds the necessary properties for configuring the AMQP deadletter
* queue.
@@ -39,7 +38,7 @@ public class AmqpDeadletterProperties {
* @return map which holds the properties
*/
public Map getDeadLetterExchangeArgs(final String exchange) {
- final Map args = Maps.newHashMapWithExpectedSize(1);
+ final Map args = new HashMap<>(1);
args.put("x-dead-letter-exchange", exchange);
return args;
}
@@ -56,7 +55,7 @@ public class AmqpDeadletterProperties {
}
private Map getTTLArgs() {
- final Map args = Maps.newHashMapWithExpectedSize(1);
+ final Map args = new HashMap<>(1);
args.put("x-message-ttl", getTtl());
return args;
}
diff --git a/hawkbit-dmf/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageDispatcherService.java b/hawkbit-dmf/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageDispatcherService.java
index 5224c45a7..b92ad2f39 100644
--- a/hawkbit-dmf/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageDispatcherService.java
+++ b/hawkbit-dmf/hawkbit-dmf-amqp/src/main/java/org/eclipse/hawkbit/amqp/AmqpMessageDispatcherService.java
@@ -25,6 +25,7 @@ import java.util.function.Supplier;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
+import com.google.common.collect.Iterables;
import org.eclipse.hawkbit.api.ApiType;
import org.eclipse.hawkbit.api.ArtifactUrl;
import org.eclipse.hawkbit.api.ArtifactUrlHandler;
@@ -79,8 +80,6 @@ import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.util.CollectionUtils;
-import com.google.common.collect.Iterables;
-
/**
* {@link AmqpMessageDispatcherService} create all outgoing AMQP messages and
* delegate the messages to a {@link AmqpMessageSenderService}.
diff --git a/hawkbit-dmf/hawkbit-dmf-rabbitmq-test/pom.xml b/hawkbit-dmf/hawkbit-dmf-rabbitmq-test/pom.xml
index 114f5506d..64f21fd93 100644
--- a/hawkbit-dmf/hawkbit-dmf-rabbitmq-test/pom.xml
+++ b/hawkbit-dmf/hawkbit-dmf-rabbitmq-test/pom.xml
@@ -43,10 +43,6 @@
hawkbit-dmf-api
${project.version}
-
- com.google.guava
- guava
-
org.springframework.amqp
spring-rabbit-junit
diff --git a/hawkbit-repository/hawkbit-repository-api/pom.xml b/hawkbit-repository/hawkbit-repository-api/pom.xml
index 3aa04828f..ee322f4d7 100644
--- a/hawkbit-repository/hawkbit-repository-api/pom.xml
+++ b/hawkbit-repository/hawkbit-repository-api/pom.xml
@@ -88,10 +88,5 @@
spring-boot-starter-test
test
-
- com.google.guava
- guava
- test
-
diff --git a/hawkbit-repository/hawkbit-repository-api/src/test/java/org/eclipse/hawkbit/repository/RepositoryManagementMethodPreAuthorizeAnnotatedTest.java b/hawkbit-repository/hawkbit-repository-api/src/test/java/org/eclipse/hawkbit/repository/RepositoryManagementMethodPreAuthorizeAnnotatedTest.java
index beb4c57d8..e5ac71040 100644
--- a/hawkbit-repository/hawkbit-repository-api/src/test/java/org/eclipse/hawkbit/repository/RepositoryManagementMethodPreAuthorizeAnnotatedTest.java
+++ b/hawkbit-repository/hawkbit-repository-api/src/test/java/org/eclipse/hawkbit/repository/RepositoryManagementMethodPreAuthorizeAnnotatedTest.java
@@ -14,18 +14,16 @@ import static org.assertj.core.api.Assertions.assertThat;
import java.io.IOException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
-import java.net.URISyntaxException;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
+import com.google.common.reflect.ClassPath;
import org.junit.jupiter.api.Test;
import org.springframework.security.access.prepost.PreAuthorize;
-import com.google.common.reflect.ClassPath;
-
import io.qameta.allure.Description;
import io.qameta.allure.Feature;
import io.qameta.allure.Story;
@@ -42,8 +40,7 @@ public class RepositoryManagementMethodPreAuthorizeAnnotatedTest {
@Test
@Description("Verifies that repository methods are @PreAuthorize annotated")
- public void repositoryManagementMethodsArePreAuthorizedAnnotated()
- throws ClassNotFoundException, URISyntaxException, IOException {
+ public void repositoryManagementMethodsArePreAuthorizedAnnotated() throws IOException {
final List> findInterfacesInPackage = findInterfacesInPackage(getClass().getPackage(),
Pattern.compile(".*Management"));
@@ -81,8 +78,7 @@ public class RepositoryManagementMethodPreAuthorizeAnnotatedTest {
}
}
- private List> findInterfacesInPackage(final Package p, final Pattern includeFilter)
- throws URISyntaxException, IOException, ClassNotFoundException {
+ private List> findInterfacesInPackage(final Package p, final Pattern includeFilter) throws IOException {
return ClassPath.from(Thread.currentThread().getContextClassLoader()).getTopLevelClasses(p.getName()).stream()
.filter(clazzInfo -> includeFilter.matcher(clazzInfo.getSimpleName()).matches())
.map(clazzInfo -> clazzInfo.load()).filter(clazz -> clazz.isInterface()).collect(Collectors.toList());
diff --git a/hawkbit-repository/hawkbit-repository-core/pom.xml b/hawkbit-repository/hawkbit-repository-core/pom.xml
index 8a7eb0ea7..b6d137540 100644
--- a/hawkbit-repository/hawkbit-repository-core/pom.xml
+++ b/hawkbit-repository/hawkbit-repository-core/pom.xml
@@ -29,10 +29,6 @@
org.apache.commons
commons-lang3
-
- com.google.guava
- guava
-
com.github.ben-manes.caffeine
caffeine
diff --git a/hawkbit-repository/hawkbit-repository-jpa/pom.xml b/hawkbit-repository/hawkbit-repository-jpa/pom.xml
index f65eda196..384317e05 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/pom.xml
+++ b/hawkbit-repository/hawkbit-repository-jpa/pom.xml
@@ -69,10 +69,6 @@
cz.jirutka.rsql
rsql-parser
-
- com.google.guava
- guava
-
org.jsoup
jsoup
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/RepositoryApplicationConfiguration.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/RepositoryApplicationConfiguration.java
index f1bfcd378..f2f6be525 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/RepositoryApplicationConfiguration.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/RepositoryApplicationConfiguration.java
@@ -9,6 +9,7 @@
*/
package org.eclipse.hawkbit.repository.jpa;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ScheduledExecutorService;
@@ -198,8 +199,6 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.transaction.jta.JtaTransactionManager;
import org.springframework.validation.beanvalidation.MethodValidationPostProcessor;
-import com.google.common.collect.Maps;
-
/**
* General configuration for hawkBit's Repository.
*
@@ -483,7 +482,7 @@ public class RepositoryApplicationConfiguration extends JpaBaseConfiguration {
@Override
protected Map getVendorProperties() {
- final Map properties = Maps.newHashMapWithExpectedSize(7);
+ final Map properties = new HashMap<>(7);
// Turn off dynamic weaving to disable LTW lookup in static weaving mode
properties.put(PersistenceUnitProperties.WEAVING, "false");
// needed for reports
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/aspects/ExceptionMappingAspectHandler.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/aspects/ExceptionMappingAspectHandler.java
index fb4677709..a76b485b0 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/aspects/ExceptionMappingAspectHandler.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/aspects/ExceptionMappingAspectHandler.java
@@ -9,6 +9,8 @@
*/
package org.eclipse.hawkbit.repository.jpa.aspects;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -29,9 +31,6 @@ import org.springframework.dao.OptimisticLockingFailureException;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.transaction.TransactionSystemException;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-
/**
* {@link Aspect} catches persistence exceptions and wraps them to custom
* specific exceptions Additionally it checks and prevents access to certain
@@ -42,14 +41,14 @@ public class ExceptionMappingAspectHandler implements Ordered {
private static final Logger LOG = LoggerFactory.getLogger(ExceptionMappingAspectHandler.class);
- private static final Map EXCEPTION_MAPPING = Maps.newHashMapWithExpectedSize(4);
+ private static final Map EXCEPTION_MAPPING = new HashMap<>(4);
/**
* this is required to enable a certain order of exception and to select the
* most specific mappable exception according to the type hierarchy of the
* exception.
*/
- private static final List> MAPPED_EXCEPTION_ORDER = Lists.newArrayListWithExpectedSize(4);
+ private static final List> MAPPED_EXCEPTION_ORDER = new ArrayList<>(4);
static {
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaControllerManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaControllerManagement.java
index 7cb449d38..b21a5a22a 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaControllerManagement.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaControllerManagement.java
@@ -21,6 +21,8 @@ import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalUnit;
import java.util.Collection;
import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -31,6 +33,7 @@ import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
+import com.google.common.collect.Lists;
import jakarta.persistence.EntityManager;
import jakarta.persistence.Query;
import jakarta.persistence.criteria.CriteriaBuilder;
@@ -111,10 +114,6 @@ import org.springframework.transaction.support.TransactionCallback;
import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-
/**
* JPA based {@link ControllerManagement} implementation.
*
@@ -450,7 +449,7 @@ public class JpaControllerManagement extends JpaActionManagement implements Cont
LOG.debug("{} events in flushUpdateQueue.", size);
- final Set events = Sets.newHashSetWithExpectedSize(queue.size());
+ final Set events = new HashSet<>(queue.size());
final int drained = queue.drainTo(events);
if (drained <= 0) {
@@ -494,7 +493,7 @@ public class JpaControllerManagement extends JpaActionManagement implements Cont
* itself.
*/
private void setLastTargetQuery(final String tenant, final long currentTimeMillis, final List chunk) {
- final Map paramMapping = Maps.newHashMapWithExpectedSize(chunk.size());
+ final Map paramMapping = new HashMap<>(chunk.size());
for (int i = 0; i < chunk.size(); i++) {
paramMapping.put("cid" + i, chunk.get(i));
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDeploymentManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDeploymentManagement.java
index 9af79b9c5..690637173 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDeploymentManagement.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDeploymentManagement.java
@@ -28,6 +28,7 @@ import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
+import com.google.common.collect.Lists;
import jakarta.persistence.EntityManager;
import jakarta.persistence.Query;
import jakarta.persistence.criteria.CriteriaBuilder;
@@ -111,8 +112,6 @@ import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
-import com.google.common.collect.Lists;
-
/**
* JPA implementation for {@link DeploymentManagement}.
*
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDistributionSetManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDistributionSetManagement.java
index 270356813..e96468d07 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDistributionSetManagement.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaDistributionSetManagement.java
@@ -89,8 +89,6 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
-import com.google.common.collect.Lists;
-
/**
* JPA implementation of {@link DistributionSetManagement}.
*
@@ -600,7 +598,7 @@ public class JpaDistributionSetManagement implements DistributionSetManagement {
private static List> buildDistributionSetSpecifications(
final DistributionSetFilter distributionSetFilter) {
- final List> specList = Lists.newArrayListWithExpectedSize(10);
+ final List> specList = new ArrayList<>(10);
Specification spec;
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaRolloutManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaRolloutManagement.java
index fda139d68..bd6c830b9 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaRolloutManagement.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaRolloutManagement.java
@@ -93,8 +93,6 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.concurrent.ListenableFuture;
import org.springframework.validation.annotation.Validated;
-import com.google.common.collect.Lists;
-
/**
* JPA implementation of {@link RolloutManagement}.
*/
@@ -171,7 +169,7 @@ public class JpaRolloutManagement implements RolloutManagement {
@Override
public Page findByRsql(final Pageable pageable, final String rsqlParam, final boolean deleted) {
- final List> specList = Lists.newArrayListWithExpectedSize(2);
+ final List> specList = new ArrayList<>(2);
specList.add(
RSQLUtility.buildRsqlSpecification(rsqlParam, RolloutFields.class, virtualPropertyReplacer, database));
specList.add(RolloutSpecification.isDeletedWithDistributionSet(deleted, pageable.getSort()));
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetFilterQueryManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetFilterQueryManagement.java
index 68bf6b9b8..6fc45d597 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetFilterQueryManagement.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetFilterQueryManagement.java
@@ -9,6 +9,7 @@
*/
package org.eclipse.hawkbit.repository.jpa.management;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
@@ -63,8 +64,6 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
-import com.google.common.collect.Lists;
-
import cz.jirutka.rsql.parser.RSQLParserException;
/**
@@ -212,7 +211,7 @@ public class JpaTargetFilterQueryManagement implements TargetFilterQueryManageme
final String rsqlFilter) {
final DistributionSet distributionSet = distributionSetManagement.getOrElseThrowException(setId);
- final List> specList = Lists.newArrayListWithExpectedSize(2);
+ final List> specList = new ArrayList<>(2);
specList.add(TargetFilterQuerySpecification.byAutoAssignDS(distributionSet));
if (!ObjectUtils.isEmpty(rsqlFilter)) {
specList.add(RSQLUtility.buildRsqlSpecification(rsqlFilter, TargetFilterQueryFields.class,
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetManagement.java
index 04c221e7a..1a0f7e4b6 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetManagement.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTargetManagement.java
@@ -21,6 +21,7 @@ import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
+import com.google.common.collect.Lists;
import jakarta.persistence.EntityManager;
import jakarta.persistence.criteria.CriteriaBuilder;
import jakarta.persistence.criteria.CriteriaQuery;
@@ -94,8 +95,6 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
-import com.google.common.collect.Lists;
-
import static org.eclipse.hawkbit.repository.jpa.JpaManagementHelper.combineWithAnd;
/**
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 f7fc19e63..8bec8443e 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
@@ -17,6 +17,7 @@ import java.util.function.BooleanSupplier;
import java.util.function.Function;
import java.util.stream.Collectors;
+import com.google.common.collect.Lists;
import org.eclipse.hawkbit.repository.QuotaManagement;
import org.eclipse.hawkbit.repository.RepositoryConstants;
import org.eclipse.hawkbit.repository.RepositoryProperties;
@@ -40,8 +41,6 @@ import org.eclipse.hawkbit.repository.model.TargetUpdateStatus;
import org.eclipse.hawkbit.repository.model.TargetWithActionType;
import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder;
-import com.google.common.collect.Lists;
-
/**
* AbstractDsAssignmentStrategy for offline assignments, i.e. not managed by
* hawkBit.
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OnlineDsAssignmentStrategy.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OnlineDsAssignmentStrategy.java
index 56cb4a561..d9cd5c987 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OnlineDsAssignmentStrategy.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OnlineDsAssignmentStrategy.java
@@ -18,6 +18,7 @@ import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
+import com.google.common.collect.Lists;
import org.eclipse.hawkbit.repository.QuotaManagement;
import org.eclipse.hawkbit.repository.RepositoryProperties;
import org.eclipse.hawkbit.repository.event.remote.MultiActionAssignEvent;
@@ -44,8 +45,6 @@ import org.eclipse.hawkbit.repository.model.TargetWithActionType;
import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder;
import org.springframework.util.CollectionUtils;
-import com.google.common.collect.Lists;
-
/**
* AbstractDsAssignmentStrategy for online assignments, i.e. managed by hawkBit.
*
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaActionStatus.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaActionStatus.java
index b6e28f579..e3056b336 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaActionStatus.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaActionStatus.java
@@ -14,6 +14,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Optional;
+import com.google.common.base.Splitter;
import jakarta.persistence.CollectionTable;
import jakarta.persistence.Column;
import jakarta.persistence.ConstraintMode;
@@ -37,8 +38,6 @@ import org.eclipse.persistence.annotations.ConversionValue;
import org.eclipse.persistence.annotations.Convert;
import org.eclipse.persistence.annotations.ObjectTypeConverter;
-import com.google.common.base.Splitter;
-
/**
* Entity to store the status for a specific action.
*/
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/JpaQueryRsqlVisitor.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/JpaQueryRsqlVisitor.java
index 068573ff5..32cb9202d 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/JpaQueryRsqlVisitor.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/JpaQueryRsqlVisitor.java
@@ -35,7 +35,6 @@ import jakarta.persistence.criteria.Predicate;
import jakarta.persistence.criteria.Root;
import jakarta.persistence.criteria.Subquery;
-import com.google.common.collect.Lists;
import cz.jirutka.rsql.parser.ast.AndNode;
import cz.jirutka.rsql.parser.ast.ComparisonNode;
import cz.jirutka.rsql.parser.ast.LogicalNode;
@@ -73,7 +72,7 @@ public class JpaQueryRsqlVisitor & FieldNameProvider, T> exten
public static final Character LIKE_WILDCARD = '*';
private static final char ESCAPE_CHAR = '\\';
- private static final List NO_JOINS_OPERATOR = Lists.newArrayList("!=", "=out=");
+ private static final List NO_JOINS_OPERATOR = List.of("!=", "=out=");
private static final String ESCAPE_CHAR_WITH_ASTERISK = ESCAPE_CHAR +"*";
private final Map>> joinsInLevel = new HashMap<>(3);
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/AbstractRemoteEventTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/AbstractRemoteEventTest.java
index 2e09ec26b..3bc9fe340 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/AbstractRemoteEventTest.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/event/remote/AbstractRemoteEventTest.java
@@ -11,6 +11,7 @@ package org.eclipse.hawkbit.repository.event.remote;
import static org.junit.jupiter.api.Assertions.fail;
+import java.util.LinkedHashMap;
import java.util.Map;
import org.eclipse.hawkbit.event.BusProtoStuffMessageConverter;
@@ -33,7 +34,6 @@ import org.springframework.util.MimeTypeUtils;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.google.common.collect.Maps;
/**
* Test the remote entity events.
@@ -57,13 +57,13 @@ public abstract class AbstractRemoteEventTest extends AbstractJpaIntegrationTest
}
private Message> createProtoStuffMessage(final TenantAwareEvent event) {
- final Map headers = Maps.newLinkedHashMap();
+ final Map headers = new LinkedHashMap<>();
headers.put(MessageHeaders.CONTENT_TYPE, BusProtoStuffMessageConverter.APPLICATION_BINARY_PROTOSTUFF);
return busProtoStuffMessageConverter.toMessage(event, new MutableMessageHeaders(headers));
}
private Message createJsonMessage(final Object event) {
- final Map headers = Maps.newLinkedHashMap();
+ final Map headers = new LinkedHashMap<>();
headers.put(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON);
try {
final String json = new ObjectMapper().writeValueAsString(event);
@@ -76,7 +76,7 @@ public abstract class AbstractRemoteEventTest extends AbstractJpaIntegrationTest
}
protected Message> createMessageWithImmutableHeader(final TenantAwareEvent event) {
- final Map headers = Maps.newLinkedHashMap();
+ final Map headers = new LinkedHashMap<>();
return busProtoStuffMessageConverter.toMessage(event, new MessageHeaders(headers));
}
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/AbstractJpaIntegrationTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/AbstractJpaIntegrationTest.java
index dae7ac334..75060b822 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/AbstractJpaIntegrationTest.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/AbstractJpaIntegrationTest.java
@@ -9,9 +9,13 @@
*/
package org.eclipse.hawkbit.repository.jpa;
+import java.lang.reflect.Array;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
+import java.util.stream.StreamSupport;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
@@ -63,8 +67,6 @@ import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestPropertySource;
import org.springframework.transaction.annotation.Transactional;
-import com.google.common.collect.Lists;
-
import static org.assertj.core.api.Assertions.assertThat;
@ContextConfiguration(classes = {
@@ -143,7 +145,7 @@ public abstract class AbstractJpaIntegrationTest extends AbstractIntegrationTest
@Transactional(readOnly = true)
protected List findActionsByRolloutAndStatus(final Rollout rollout, final Action.Status actionStatus) {
- return Lists.newArrayList(actionRepository.findByRolloutIdAndStatus(PAGE, rollout.getId(), actionStatus));
+ return toList(actionRepository.findByRolloutIdAndStatus(PAGE, rollout.getId(), actionStatus));
}
protected static void verifyThrownExceptionBy(final ThrowingCallable tc, final String objectType) {
@@ -205,4 +207,17 @@ public abstract class AbstractJpaIntegrationTest extends AbstractIntegrationTest
protected JpaRolloutGroup refresh(final RolloutGroup group) {
return rolloutGroupRepository.findById(group.getId()).get();
}
+
+ protected static List toList(final Iterable extends T> it) {
+ return StreamSupport.stream(it.spliterator(), false).map(e -> (T)e).toList();
+ }
+
+ protected static T[] toArray(final Iterable extends T> it, final Class type) {
+ final List list = toList(it);
+ final T[] array = (T[])Array.newInstance(type, list.size());
+ for (int i = 0; i < array.length; i++) {
+ array[i] = list.get(i);
+ }
+ return array;
+ }
}
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/ArtifactManagementTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/ArtifactManagementTest.java
index e68500863..1e7703ea6 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/ArtifactManagementTest.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/ArtifactManagementTest.java
@@ -19,6 +19,8 @@ import java.io.InputStream;
import java.net.URISyntaxException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
+import java.util.HexFormat;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.Callable;
@@ -54,9 +56,6 @@ import org.eclipse.hawkbit.repository.test.util.SecurityContextSwitch;
import org.eclipse.hawkbit.repository.test.util.WithUser;
import org.junit.jupiter.api.Test;
-import com.google.common.collect.Lists;
-import com.google.common.io.BaseEncoding;
-
import io.qameta.allure.Description;
import io.qameta.allure.Feature;
import io.qameta.allure.Story;
@@ -185,7 +184,7 @@ public class ArtifactManagementTest extends AbstractJpaIntegrationTest {
// now create artifacts for this module until the quota is exceeded
final long maxArtifacts = quotaManagement.getMaxArtifactsPerSoftwareModule();
- final List artifactIds = Lists.newArrayList();
+ final List artifactIds = new ArrayList<>();
final int artifactSize = 5 * 1024;
for (int i = 0; i < maxArtifacts; ++i) {
artifactIds.add(createArtifactForSoftwareModule("file" + i, smId, artifactSize).getId());
@@ -213,7 +212,7 @@ public class ArtifactManagementTest extends AbstractJpaIntegrationTest {
// create as many small artifacts as possible w/o violating the storage
// quota
final long maxBytes = quotaManagement.getMaxArtifactStorage();
- final List artifactIds = Lists.newArrayList();
+ final List artifactIds = new ArrayList<>();
// choose an artifact size which does not violate the max file size
final int artifactSize = Math.toIntExact(quotaManagement.getMaxArtifactSize() / 10);
@@ -591,7 +590,7 @@ public class ArtifactManagementTest extends AbstractJpaIntegrationTest {
private String toBase16Hash(final String algorithm, final byte[] input) throws NoSuchAlgorithmException {
final MessageDigest messageDigest = MessageDigest.getInstance(algorithm);
messageDigest.update(input);
- return BaseEncoding.base16().lowerCase().encode(messageDigest.digest());
+ return HexFormat.of().withLowerCase().formatHex(messageDigest.digest());
}
private Artifact createArtifactForSoftwareModule(final String filename, final long moduleId, final int artifactSize)
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/ControllerManagementTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/ControllerManagementTest.java
index ab167c893..8e8ab2881 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/ControllerManagementTest.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/ControllerManagementTest.java
@@ -86,9 +86,6 @@ import org.mockito.Mockito;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.ConcurrencyFailureException;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-
import io.qameta.allure.Description;
import io.qameta.allure.Feature;
import io.qameta.allure.Step;
@@ -156,7 +153,7 @@ class ControllerManagementTest extends AbstractJpaIntegrationTest {
verifyThrownExceptionBy(() -> controllerManagement.registerRetrieved(NOT_EXIST_IDL, "test message"), "Action");
verifyThrownExceptionBy(
- () -> controllerManagement.updateControllerAttributes(NOT_EXIST_ID, Maps.newHashMap(), null), "Target");
+ () -> controllerManagement.updateControllerAttributes(NOT_EXIST_ID, new HashMap<>(), null), "Target");
}
@Test
@@ -973,7 +970,7 @@ class ControllerManagementTest extends AbstractJpaIntegrationTest {
@Step
private void addAttributeAndVerify(final String controllerId) {
- final Map testData = Maps.newHashMapWithExpectedSize(1);
+ final Map testData = new HashMap<>(1);
testData.put("test1", "testdata1");
controllerManagement.updateControllerAttributes(controllerId, testData, null);
@@ -983,7 +980,7 @@ class ControllerManagementTest extends AbstractJpaIntegrationTest {
@Step
private void addSecondAttributeAndVerify(final String controllerId) {
- final Map testData = Maps.newHashMapWithExpectedSize(2);
+ final Map testData = new HashMap<>(2);
testData.put("test2", "testdata20");
controllerManagement.updateControllerAttributes(controllerId, testData, null);
@@ -994,7 +991,7 @@ class ControllerManagementTest extends AbstractJpaIntegrationTest {
@Step
private void updateAttributeAndVerify(final String controllerId) {
- final Map testData = Maps.newHashMapWithExpectedSize(2);
+ final Map testData = new HashMap<>(2);
testData.put("test1", "testdata12");
controllerManagement.updateControllerAttributes(controllerId, testData, null);
@@ -1141,7 +1138,7 @@ class ControllerManagementTest extends AbstractJpaIntegrationTest {
private void writeAttributes(final String controllerId, final int allowedAttributes, final String keyPrefix,
final String valuePrefix) {
- final Map testData = Maps.newHashMapWithExpectedSize(allowedAttributes);
+ final Map testData = new HashMap<>(allowedAttributes);
for (int i = 0; i < allowedAttributes; i++) {
testData.put(keyPrefix + i, valuePrefix);
}
@@ -1212,13 +1209,13 @@ class ControllerManagementTest extends AbstractJpaIntegrationTest {
controllerManagement.addUpdateActionStatus(entityFactory.actionStatus().create(actionId)
.status(Action.Status.RUNNING).occurredAt(System.currentTimeMillis())
- .messages(Lists.newArrayList("proceeding message 1")));
+ .messages(List.of("proceeding message 1")));
final long createTime = System.currentTimeMillis();
waitNextMillis();
controllerManagement.addUpdateActionStatus(entityFactory.actionStatus().create(actionId)
.status(Action.Status.RUNNING).occurredAt(System.currentTimeMillis())
- .messages(Lists.newArrayList("proceeding message 2")));
+ .messages(List.of("proceeding message 2")));
final List messages = controllerManagement.getActionHistoryMessages(actionId, 2);
@@ -1279,7 +1276,7 @@ class ControllerManagementTest extends AbstractJpaIntegrationTest {
assignDistributionSet(testdataFactory.createDistributionSet("ds1"), testdataFactory.createTargets(1)));
assertThat(actionId).isNotNull();
- final List messages = Lists.newArrayList();
+ final List messages = new ArrayList<>();
IntStream.range(0, maxMessages).forEach(i -> messages.add(i, "msg"));
assertThat(controllerManagement.addInformationalActionStatus(
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DeploymentManagementTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DeploymentManagementTest.java
index 68af631b7..c72065ef2 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DeploymentManagementTest.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DeploymentManagementTest.java
@@ -24,6 +24,7 @@ import java.util.List;
import java.util.Map.Entry;
import java.util.Objects;
import java.util.Optional;
+import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -90,10 +91,6 @@ import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Slice;
import org.springframework.data.domain.Sort.Direction;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
-
import io.qameta.allure.Description;
import io.qameta.allure.Feature;
import io.qameta.allure.Story;
@@ -259,7 +256,7 @@ class DeploymentManagementTest extends AbstractJpaIntegrationTest {
@Test
@Description("Ensures that tag to distribution set assignment that does not exist will cause EntityNotFoundException.")
void assignDistributionSetToTagThatDoesNotExistThrowsException() {
- final List assignDS = Lists.newArrayListWithExpectedSize(5);
+ final List assignDS = new ArrayList<>(5);
for (int i = 0; i < 4; i++) {
assignDS.add(testdataFactory.createDistributionSet("DS" + i, "1.0", Collections.emptyList()).getId());
}
@@ -730,9 +727,10 @@ class DeploymentManagementTest extends AbstractJpaIntegrationTest {
final DistributionSet createdDs = testdataFactory.createDistributionSet();
- final String[] knownTargetIdsArray = { "1", "2" };
- final List knownTargetIds = Lists.newArrayList(knownTargetIdsArray);
- testdataFactory.createTargets(knownTargetIdsArray);
+ final List knownTargetIds = new ArrayList<>();
+ knownTargetIds.add( "1");
+ knownTargetIds.add("2");
+ testdataFactory.createTargets(knownTargetIds.toArray(new String[0]));
// add not existing target to targets
knownTargetIds.add(notExistingId);
@@ -1055,9 +1053,9 @@ class DeploymentManagementTest extends AbstractJpaIntegrationTest {
assertThat(allFoundTargets).as("founded targets are wrong").containsAll(savedDeployedTargets)
.containsAll(savedNakedTargets);
assertThat(savedDeployedTargets).as("saved target are wrong")
- .doesNotContain(Iterables.toArray(savedNakedTargets, Target.class));
+ .doesNotContain(toArray(savedNakedTargets, Target.class));
assertThat(savedNakedTargets).as("saved target are wrong")
- .doesNotContain(Iterables.toArray(savedDeployedTargets, Target.class));
+ .doesNotContain(toArray(savedDeployedTargets, Target.class));
for (final Target myt : savedNakedTargets) {
final Target t = targetManagement.getByControllerID(myt.getControllerId()).get();
@@ -1101,7 +1099,7 @@ class DeploymentManagementTest extends AbstractJpaIntegrationTest {
.isThrownBy(() -> assignDistributionSet(incomplete, targets));
final DistributionSet nowComplete = distributionSetManagement.assignSoftwareModules(incomplete.getId(),
- Sets.newHashSet(os.getId()));
+ Set.of(os.getId()));
assertThat(assignDistributionSet(nowComplete, targets).getAssigned()).as("assign ds doesn't work")
.isEqualTo(10);
@@ -1165,9 +1163,9 @@ class DeploymentManagementTest extends AbstractJpaIntegrationTest {
assertThat(deployedTargetsFromDB).as("content of deployed target is wrong")
.usingElementComparator(controllerIdComparator()).containsAll(savedDeployedTargets)
- .doesNotContain(Iterables.toArray(undeployedTargetsFromDB, JpaTarget.class));
+ .doesNotContain(toArray(undeployedTargetsFromDB, JpaTarget.class));
assertThat(undeployedTargetsFromDB).as("content of undeployed target is wrong").containsAll(savedNakedTargets)
- .doesNotContain(Iterables.toArray(deployedTargetsFromDB, JpaTarget.class));
+ .doesNotContain(toArray(deployedTargetsFromDB, JpaTarget.class));
}
@Test
@@ -1710,9 +1708,9 @@ class DeploymentManagementTest extends AbstractJpaIntegrationTest {
final Iterable dss, final String deployedTargetPrefix,
final String undeployedTargetPrefix, final String distributionSetPrefix) {
- Iterables.addAll(deployedTargets, deployedTs);
- Iterables.addAll(undeployedTargets, undeployedTs);
- Iterables.addAll(distributionSets, dss);
+ deployedTargets.addAll(toList(deployedTs));
+ undeployedTargets.addAll(toList(undeployedTs));
+ distributionSets.addAll(toList(dss));
deployedTargets.forEach(t -> deployedTargetIDs.add(t.getId()));
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetManagementTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetManagementTest.java
index a7c5d1088..c9f0a7fbc 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetManagementTest.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetManagementTest.java
@@ -18,10 +18,12 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.Optional;
+import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -70,9 +72,6 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
-
import io.qameta.allure.Description;
import io.qameta.allure.Feature;
import io.qameta.allure.Step;
@@ -324,7 +323,7 @@ class DistributionSetManagementTest extends AbstractJpaIntegrationTest {
@Description("Verifies that multiple DS are of default type if not specified explicitly at creation time.")
void createMultipleDistributionSetsWithImplicitType() {
- final List creates = Lists.newArrayListWithExpectedSize(10);
+ final List creates = new ArrayList<>(10);
for (int i = 0; i < 10; i++) {
creates.add(entityFactory.distributionSet().create().name("newtypesoft" + i).version("1" + i));
}
@@ -406,7 +405,7 @@ class DistributionSetManagementTest extends AbstractJpaIntegrationTest {
@Test
@Description("Ensures that distribution sets can assigned and unassigned to a distribution set tag.")
void assignAndUnassignDistributionSetToTag() {
- final List assignDS = Lists.newArrayListWithExpectedSize(4);
+ final List assignDS = new ArrayList<>(4);
for (int i = 0; i < 4; i++) {
assignDS.add(testdataFactory.createDistributionSet("DS" + i, "1.0", Collections.emptyList()).getId());
}
@@ -450,7 +449,7 @@ class DistributionSetManagementTest extends AbstractJpaIntegrationTest {
final SoftwareModule os2 = testdataFactory.createSoftwareModuleOs();
// update is allowed as it is still not assigned to a target
- ds = distributionSetManagement.assignSoftwareModules(ds.getId(), Sets.newHashSet(ah2.getId()));
+ ds = distributionSetManagement.assignSoftwareModules(ds.getId(), Set.of(ah2.getId()));
// assign target
assignDistributionSet(ds.getId(), target.getControllerId());
@@ -458,7 +457,7 @@ class DistributionSetManagementTest extends AbstractJpaIntegrationTest {
final Long dsId = ds.getId();
// not allowed as it is assigned now
- assertThatThrownBy(() -> distributionSetManagement.assignSoftwareModules(dsId, Sets.newHashSet(os2.getId())))
+ assertThatThrownBy(() -> distributionSetManagement.assignSoftwareModules(dsId, Set.of(os2.getId())))
.isInstanceOf(EntityReadOnlyException.class);
// not allowed as it is assigned now
@@ -482,7 +481,7 @@ class DistributionSetManagementTest extends AbstractJpaIntegrationTest {
// update data
assertThatThrownBy(
- () -> distributionSetManagement.assignSoftwareModules(set.getId(), Sets.newHashSet(module.getId())))
+ () -> distributionSetManagement.assignSoftwareModules(set.getId(), Set.of(module.getId())))
.isInstanceOf(UnsupportedSoftwareModuleForThisDistributionSetException.class);
}
@@ -495,7 +494,7 @@ class DistributionSetManagementTest extends AbstractJpaIntegrationTest {
// update data
// legal update of module addition
- distributionSetManagement.assignSoftwareModules(ds.getId(), Sets.newHashSet(os.getId()));
+ distributionSetManagement.assignSoftwareModules(ds.getId(), Set.of(os.getId()));
ds = getOrThrow(distributionSetManagement.getWithDetails(ds.getId()));
assertThat(getOrThrow(ds.findFirstModuleByType(osType))).isEqualTo(os);
@@ -531,7 +530,7 @@ class DistributionSetManagementTest extends AbstractJpaIntegrationTest {
// create some software modules
final int maxModules = quotaManagement.getMaxSoftwareModulesPerDistributionSet();
- final List modules = Lists.newArrayList();
+ final List modules = new ArrayList<>();
for (int i = 0; i < maxModules + 1; ++i) {
modules.add(testdataFactory.createSoftwareModuleApp("sm" + i).getId());
}
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetTypeManagementTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetTypeManagementTest.java
index c62bc346d..af7d50b8a 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetTypeManagementTest.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/DistributionSetTypeManagementTest.java
@@ -17,6 +17,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
+import java.util.Set;
import jakarta.validation.ConstraintViolationException;
@@ -41,8 +42,6 @@ import org.eclipse.hawkbit.repository.test.matcher.Expect;
import org.eclipse.hawkbit.repository.test.matcher.ExpectEvents;
import org.junit.jupiter.api.Test;
-import com.google.common.collect.Sets;
-
import io.qameta.allure.Description;
import io.qameta.allure.Feature;
import io.qameta.allure.Step;
@@ -206,13 +205,13 @@ public class DistributionSetTypeManagementTest extends AbstractJpaIntegrationTes
// add OS
distributionSetTypeManagement.assignMandatorySoftwareModuleTypes(updatableType.getId(),
- Sets.newHashSet(osType.getId()));
+ Set.of(osType.getId()));
assertThat(distributionSetTypeManagement.getByKey("updatableType").get().getMandatoryModuleTypes())
.containsOnly(osType);
// add JVM
distributionSetTypeManagement.assignMandatorySoftwareModuleTypes(updatableType.getId(),
- Sets.newHashSet(runtimeType.getId()));
+ Set.of(runtimeType.getId()));
assertThat(distributionSetTypeManagement.getByKey("updatableType").get().getMandatoryModuleTypes())
.containsOnly(osType, runtimeType);
@@ -228,7 +227,7 @@ public class DistributionSetTypeManagementTest extends AbstractJpaIntegrationTes
final int quota = quotaManagement.getMaxSoftwareModuleTypesPerDistributionSetType();
// create software module types
- final List moduleTypeIds = Lists.newArrayList();
+ final List moduleTypeIds = new ArrayList<>();
for (int i = 0; i < quota + 1; ++i) {
final SoftwareModuleTypeCreate smCreate = entityFactory.softwareModuleType().create().name("smType_" + i)
.description("smType_" + i).maxAssignments(1).colour("blue").key("smType_" + i);
@@ -290,7 +289,7 @@ public class DistributionSetTypeManagementTest extends AbstractJpaIntegrationTes
final DistributionSetType nonUpdatableType = createDistributionSetTypeUsedByDs();
assertThatThrownBy(() -> distributionSetTypeManagement
- .assignMandatorySoftwareModuleTypes(nonUpdatableType.getId(), Sets.newHashSet(osType.getId())))
+ .assignMandatorySoftwareModuleTypes(nonUpdatableType.getId(), Set.of(osType.getId())))
.isInstanceOf(EntityReadOnlyException.class);
}
@@ -311,7 +310,7 @@ public class DistributionSetTypeManagementTest extends AbstractJpaIntegrationTes
assertThat(distributionSetTypeManagement.getByKey("updatableType").get().getMandatoryModuleTypes()).isEmpty();
nonUpdatableType = distributionSetTypeManagement.assignMandatorySoftwareModuleTypes(nonUpdatableType.getId(),
- Sets.newHashSet(osType.getId()));
+ Set.of(osType.getId()));
distributionSetManagement.create(entityFactory.distributionSet().create().name("newtypesoft").version("1")
.type(nonUpdatableType.getKey()));
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareModuleManagementTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareModuleManagementTest.java
index 343338fb4..7bc58e6b4 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareModuleManagementTest.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/SoftwareModuleManagementTest.java
@@ -21,6 +21,7 @@ import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Optional;
+import java.util.Set;
import org.apache.commons.lang3.RandomUtils;
import org.eclipse.hawkbit.repository.builder.SoftwareModuleMetadataCreate;
@@ -29,7 +30,6 @@ import org.eclipse.hawkbit.repository.exception.AssignmentQuotaExceededException
import org.eclipse.hawkbit.repository.exception.EntityAlreadyExistsException;
import org.eclipse.hawkbit.repository.jpa.AbstractJpaIntegrationTest;
import org.eclipse.hawkbit.repository.jpa.RandomGeneratedInputStream;
-import org.eclipse.hawkbit.repository.jpa.model.JpaAction;
import org.eclipse.hawkbit.repository.jpa.model.JpaAction_;
import org.eclipse.hawkbit.repository.jpa.model.JpaDistributionSet;
import org.eclipse.hawkbit.repository.jpa.model.JpaDistributionSet_;
@@ -56,9 +56,6 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
-
import io.qameta.allure.Description;
import io.qameta.allure.Feature;
import io.qameta.allure.Story;
@@ -309,7 +306,7 @@ public class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest {
SoftwareModule assignedModule = createSoftwareModuleWithArtifacts(osType, "moduleX", "3.0.2", 2);
// [STEP2]: Assign SoftwareModule to DistributionSet
- testdataFactory.createDistributionSet(Sets.newHashSet(assignedModule));
+ testdataFactory.createDistributionSet(Set.of(assignedModule));
// [STEP3]: Delete the assigned SoftwareModule
softwareModuleManagement.delete(assignedModule.getId());
@@ -345,7 +342,7 @@ public class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest {
SoftwareModule assignedModule = createSoftwareModuleWithArtifacts(osType, "moduleX", "3.0.2", 2);
// [STEP2]: Assign SoftwareModule to DistributionSet
- final DistributionSet disSet = testdataFactory.createDistributionSet(Sets.newHashSet(assignedModule));
+ final DistributionSet disSet = testdataFactory.createDistributionSet(Set.of(assignedModule));
// [STEP3]: Assign DistributionSet to a Device
assignDistributionSet(disSet, Collections.singletonList(target));
@@ -446,11 +443,11 @@ public class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest {
final Artifact artifactY = moduleY.getArtifacts().iterator().next();
// [STEP3]: Assign SoftwareModuleX to DistributionSetX and to target
- final DistributionSet disSetX = testdataFactory.createDistributionSet(Sets.newHashSet(moduleX), "X");
+ final DistributionSet disSetX = testdataFactory.createDistributionSet(Set.of(moduleX), "X");
assignDistributionSet(disSetX, Collections.singletonList(target));
// [STEP4]: Assign SoftwareModuleY to DistributionSet and to target
- final DistributionSet disSetY = testdataFactory.createDistributionSet(Sets.newHashSet(moduleY), "Y");
+ final DistributionSet disSetY = testdataFactory.createDistributionSet(Set.of(moduleY), "Y");
assignDistributionSet(disSetY, Collections.singletonList(target));
// [STEP5]: Delete SoftwareModuleX
@@ -549,8 +546,8 @@ public class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest {
final SoftwareModule four = testdataFactory.createSoftwareModuleOs("e");
final DistributionSet set = distributionSetManagement
- .create(entityFactory.distributionSet().create().name("set").version("1").type(testDsType).modules(Lists
- .newArrayList(one.getId(), two.getId(), deleted.getId(), four.getId(), differentName.getId())));
+ .create(entityFactory.distributionSet().create().name("set").version("1").type(testDsType).modules(
+ List.of(one.getId(), two.getId(), deleted.getId(), four.getId(), differentName.getId())));
softwareModuleManagement.delete(deleted.getId());
// with filter on name, version and module type
@@ -610,8 +607,8 @@ public class SoftwareModuleManagementTest extends AbstractJpaIntegrationTest {
final SoftwareModule four = testdataFactory.createSoftwareModuleOs("e");
distributionSetManagement
- .create(entityFactory.distributionSet().create().name("set").version("1").type(testDsType).modules(Lists
- .newArrayList(one.getId(), two.getId(), deleted.getId(), four.getId(), differentName.getId())));
+ .create(entityFactory.distributionSet().create().name("set").version("1").type(testDsType).modules(
+ List.of(one.getId(), two.getId(), deleted.getId(), four.getId(), differentName.getId())));
softwareModuleManagement.delete(deleted.getId());
// test
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/TargetManagementSearchTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/TargetManagementSearchTest.java
index 4f189bd80..b3b702586 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/TargetManagementSearchTest.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/TargetManagementSearchTest.java
@@ -643,9 +643,9 @@ class TargetManagementSearchTest extends AbstractJpaIntegrationTest {
final Long[] overdueMix = { lastTargetQueryAlwaysOverdue, lastTargetQueryNotOverdue,
lastTargetQueryAlwaysOverdue, lastTargetNull, lastTargetQueryAlwaysOverdue };
- final List notAssigned = Lists.newArrayListWithExpectedSize(overdueMix.length);
- List targAssigned = Lists.newArrayListWithExpectedSize(overdueMix.length);
- List targInstalled = Lists.newArrayListWithExpectedSize(overdueMix.length);
+ final List notAssigned = new ArrayList<>(overdueMix.length);
+ List targAssigned = new ArrayList<>(overdueMix.length);
+ List targInstalled = new ArrayList<>(overdueMix.length);
for (int i = 0; i < overdueMix.length; i++) {
notAssigned.add(targetManagement
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/TargetManagementTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/TargetManagementTest.java
index e267467ba..432e427c5 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/TargetManagementTest.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/management/TargetManagementTest.java
@@ -54,7 +54,6 @@ import org.eclipse.hawkbit.repository.exception.RSQLParameterUnsupportedFieldExc
import org.eclipse.hawkbit.repository.exception.TenantNotExistException;
import org.eclipse.hawkbit.repository.jpa.AbstractJpaIntegrationTest;
import org.eclipse.hawkbit.repository.jpa.model.JpaAction;
-import org.eclipse.hawkbit.repository.jpa.model.JpaAction_;
import org.eclipse.hawkbit.repository.jpa.model.JpaTarget;
import org.eclipse.hawkbit.repository.jpa.model.JpaTargetMetadata;
import org.eclipse.hawkbit.repository.model.Action;
@@ -79,8 +78,6 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Slice;
-import com.google.common.collect.Iterables;
-
import io.qameta.allure.Description;
import io.qameta.allure.Feature;
import io.qameta.allure.Step;
@@ -674,7 +671,7 @@ class TargetManagementTest extends AbstractJpaIntegrationTest {
final int numberToDelete = 50;
final Collection targetsToDelete = firstList.subList(0, numberToDelete);
- final Target[] deletedTargets = Iterables.toArray(targetsToDelete, Target.class);
+ final Target[] deletedTargets = toArray(targetsToDelete, Target.class);
final List targetsIdsToDelete = targetsToDelete.stream().map(Target::getId).collect(Collectors.toList());
targetManagement.delete(targetsIdsToDelete);
@@ -708,14 +705,14 @@ class TargetManagementTest extends AbstractJpaIntegrationTest {
assertThat(targetTagManagement.findByTarget(PAGE, t11.getControllerId()).getContent()).as("Tag size is wrong")
.hasSize(noT1Tags).containsAll(t1Tags);
assertThat(targetTagManagement.findByTarget(PAGE, t11.getControllerId()).getContent()).as("Tag size is wrong")
- .hasSize(noT1Tags).doesNotContain(Iterables.toArray(t2Tags, TargetTag.class));
+ .hasSize(noT1Tags).doesNotContain(toArray(t2Tags, TargetTag.class));
final Target t21 = targetManagement.getByControllerID(t2.getControllerId())
.orElseThrow(IllegalStateException::new);
assertThat(targetTagManagement.findByTarget(PAGE, t21.getControllerId()).getContent()).as("Tag size is wrong")
.hasSize(noT2Tags).containsAll(t2Tags);
assertThat(targetTagManagement.findByTarget(PAGE, t21.getControllerId()).getContent()).as("Tag size is wrong")
- .hasSize(noT2Tags).doesNotContain(Iterables.toArray(t1Tags, TargetTag.class));
+ .hasSize(noT2Tags).doesNotContain(toArray(t1Tags, TargetTag.class));
}
@Test
@@ -758,16 +755,16 @@ class TargetManagementTest extends AbstractJpaIntegrationTest {
final List targetWithTagC = new ArrayList<>();
// storing target lists to enable easy evaluation
- Iterables.addAll(targetWithTagA, tagATargets);
- Iterables.addAll(targetWithTagA, tagABTargets);
- Iterables.addAll(targetWithTagA, tagABCTargets);
+ targetWithTagA.addAll(tagATargets);
+ targetWithTagA.addAll(tagABTargets);
+ targetWithTagA.addAll(tagABCTargets);
- Iterables.addAll(targetWithTagB, tagBTargets);
- Iterables.addAll(targetWithTagB, tagABTargets);
- Iterables.addAll(targetWithTagB, tagABCTargets);
+ targetWithTagB.addAll(tagBTargets);
+ targetWithTagB.addAll(tagABTargets);
+ targetWithTagB.addAll(tagABCTargets);
- Iterables.addAll(targetWithTagC, tagCTargets);
- Iterables.addAll(targetWithTagC, tagABCTargets);
+ targetWithTagC.addAll(tagCTargets);
+ targetWithTagC.addAll(tagABCTargets);
// check the target lists as returned by assignTag
checkTargetHasTags(false, targetWithTagA, tagA);
diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleMetadataFieldsTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleMetadataFieldsTest.java
index 6ca06a4e1..a6be9f505 100644
--- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleMetadataFieldsTest.java
+++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleMetadataFieldsTest.java
@@ -11,6 +11,7 @@ package org.eclipse.hawkbit.repository.jpa.rsql;
import static org.assertj.core.api.Assertions.assertThat;
+import java.util.ArrayList;
import java.util.List;
import org.eclipse.hawkbit.repository.SoftwareModuleMetadataFields;
@@ -24,8 +25,6 @@ import org.junit.jupiter.api.Test;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
-import com.google.common.collect.Lists;
-
import io.qameta.allure.Description;
import io.qameta.allure.Feature;
import io.qameta.allure.Story;
@@ -42,7 +41,7 @@ public class RSQLSoftwareModuleMetadataFieldsTest extends AbstractJpaIntegration
softwareModuleId = softwareModule.getId();
- final List metadata = Lists.newArrayListWithExpectedSize(5);
+ final List metadata = new ArrayList<>(5);
for (int i = 0; i < 5; i++) {
metadata.add(
entityFactory.softwareModuleMetadata().create(softwareModule.getId()).key("" + i).value("" + i));
diff --git a/hawkbit-repository/hawkbit-repository-test/pom.xml b/hawkbit-repository/hawkbit-repository-test/pom.xml
index 8e31a7d6a..f3d658e62 100644
--- a/hawkbit-repository/hawkbit-repository-test/pom.xml
+++ b/hawkbit-repository/hawkbit-repository-test/pom.xml
@@ -83,10 +83,6 @@
org.springframework
spring-context-support
-
- com.google.guava
- guava
-
org.springframework
spring-tx
diff --git a/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/matcher/EventVerifier.java b/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/matcher/EventVerifier.java
index 11624d7ff..6315a0e0d 100644
--- a/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/matcher/EventVerifier.java
+++ b/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/matcher/EventVerifier.java
@@ -22,6 +22,9 @@ import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.Stream;
+import com.google.common.collect.ConcurrentHashMultiset;
+import com.google.common.collect.Multiset;
+import com.google.common.collect.Sets;
import org.awaitility.Awaitility;
import org.awaitility.core.ConditionTimeoutException;
import org.eclipse.hawkbit.repository.event.remote.RemoteIdEvent;
@@ -37,10 +40,6 @@ import org.springframework.context.event.ApplicationEventMulticaster;
import org.springframework.test.context.TestContext;
import org.springframework.test.context.support.AbstractTestExecutionListener;
-import com.google.common.collect.ConcurrentHashMultiset;
-import com.google.common.collect.Multiset;
-import com.google.common.collect.Sets;
-
/**
* Test rule to setup and verify the event count for a method.
*/
diff --git a/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/util/HashGeneratorUtils.java b/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/util/HashGeneratorUtils.java
index 91bb49533..e22fcacf2 100644
--- a/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/util/HashGeneratorUtils.java
+++ b/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/util/HashGeneratorUtils.java
@@ -11,12 +11,11 @@ package org.eclipse.hawkbit.repository.test.util;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
+import java.util.HexFormat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.io.BaseEncoding;
-
/**
* Hash digest utility.
*/
@@ -66,7 +65,7 @@ public final class HashGeneratorUtils {
try {
final MessageDigest digest = MessageDigest.getInstance(algorithm);
final byte[] hashedBytes = digest.digest(message);
- return BaseEncoding.base16().lowerCase().encode(hashedBytes);
+ return HexFormat.of().withLowerCase().formatHex(hashedBytes);
} catch (final NoSuchAlgorithmException e) {
LOG.error("Algorithm could not be found", e);
}
diff --git a/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/util/TestdataFactory.java b/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/util/TestdataFactory.java
index f52a65ec0..475cda687 100644
--- a/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/util/TestdataFactory.java
+++ b/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/util/TestdataFactory.java
@@ -81,8 +81,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
-import com.google.common.collect.Lists;
-
/**
* Data generator utility for tests.
*/
@@ -438,7 +436,7 @@ public class TestdataFactory {
*/
public List createDistributionSetsWithoutModules(final int number) {
- final List sets = Lists.newArrayListWithExpectedSize(number);
+ final List sets = new ArrayList<>(number);
for (int i = 0; i < number; i++) {
sets.add(distributionSetManagement
.create(entityFactory.distributionSet().create().name("DS" + i).version(DEFAULT_VERSION + "." + i)
@@ -913,7 +911,7 @@ public class TestdataFactory {
}
public List createTargets(final String prefix, final int offset, final int number) {
- final List targets = Lists.newArrayListWithExpectedSize(number);
+ final List targets = new ArrayList<>(number);
for (int i = 0; i < number; i++) {
targets.add(entityFactory.target().create().controllerId(prefix + (offset + i)));
}
@@ -936,7 +934,7 @@ public class TestdataFactory {
public List createTargetsWithType(final int number, final String controllerIdPrefix,
final TargetType targetType) {
- final List targets = Lists.newArrayListWithExpectedSize(number);
+ final List targets = new ArrayList<>(number);
for (int i = 0; i < number; i++) {
targets.add(entityFactory.target().create().controllerId(controllerIdPrefix + i)
.targetType(targetType.getId()));
@@ -976,7 +974,7 @@ public class TestdataFactory {
* @return list of {@link Target} objects
*/
private List generateTargets(final int start, final int numberOfTargets, final String controllerIdPrefix) {
- final List targets = Lists.newArrayListWithExpectedSize(numberOfTargets);
+ final List targets = new ArrayList<>(numberOfTargets);
for (int i = start; i < start + numberOfTargets; i++) {
targets.add(entityFactory.target().create().controllerId(controllerIdPrefix + i).build());
}
@@ -1075,7 +1073,7 @@ public class TestdataFactory {
* @return the created set of {@link TargetTag}s
*/
public List createTargetTags(final int number, final String tagPrefix) {
- final List result = Lists.newArrayListWithExpectedSize(number);
+ final List result = new ArrayList<>(number);
for (int i = 0; i < number; i++) {
result.add(entityFactory.tag().create().name(tagPrefix + i).description(tagPrefix + i)
@@ -1094,7 +1092,7 @@ public class TestdataFactory {
* @return the persisted {@link DistributionSetTag}s
*/
public List createDistributionSetTags(final int number) {
- final List result = Lists.newArrayListWithExpectedSize(number);
+ final List result = new ArrayList<>(number);
for (int i = 0; i < number; i++) {
result.add(
@@ -1450,7 +1448,7 @@ public class TestdataFactory {
* @return persisted {@link TargetType}
*/
public List createTargetTypes(final String targetTypePrefix, final int count) {
- final List result = Lists.newArrayListWithExpectedSize(count);
+ final List result = new ArrayList<>(count);
for (int i = 0; i < count; i++) {
result.add(entityFactory.targetType().create()
.name(targetTypePrefix + i).description(targetTypePrefix + " description")
diff --git a/hawkbit-rest/hawkbit-ddi-api/pom.xml b/hawkbit-rest/hawkbit-ddi-api/pom.xml
index e36c6f039..306245f4c 100644
--- a/hawkbit-rest/hawkbit-ddi-api/pom.xml
+++ b/hawkbit-rest/hawkbit-ddi-api/pom.xml
@@ -64,10 +64,5 @@
allure-junit5
test
-
- com.google.guava
- guava
- test
-
diff --git a/hawkbit-rest/hawkbit-ddi-api/src/test/java/org/eclipse/hawkbit/ddi/json/model/JsonIgnorePropertiesAnnotationTest.java b/hawkbit-rest/hawkbit-ddi-api/src/test/java/org/eclipse/hawkbit/ddi/json/model/JsonIgnorePropertiesAnnotationTest.java
index 674d8b3ff..700cb873e 100644
--- a/hawkbit-rest/hawkbit-ddi-api/src/test/java/org/eclipse/hawkbit/ddi/json/model/JsonIgnorePropertiesAnnotationTest.java
+++ b/hawkbit-rest/hawkbit-ddi-api/src/test/java/org/eclipse/hawkbit/ddi/json/model/JsonIgnorePropertiesAnnotationTest.java
@@ -13,11 +13,11 @@ package org.eclipse.hawkbit.ddi.json.model;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.IOException;
+import java.util.Set;
import org.junit.jupiter.api.Test;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.google.common.collect.ImmutableSet;
import com.google.common.reflect.ClassPath;
import io.qameta.allure.Description;
@@ -37,7 +37,7 @@ public class JsonIgnorePropertiesAnnotationTest {
final ClassLoader loader = Thread.currentThread().getContextClassLoader();
final String packageName = this.getClass().getPackage().getName();
- final ImmutableSet topLevelClasses = ClassPath.from(loader)
+ final Set topLevelClasses = ClassPath.from(loader)
.getTopLevelClasses(packageName);
for (final ClassPath.ClassInfo classInfo : topLevelClasses) {
final Class> modelClass = classInfo.load();
diff --git a/hawkbit-rest/hawkbit-ddi-resource/pom.xml b/hawkbit-rest/hawkbit-ddi-resource/pom.xml
index 8e0205c5e..eedc7e93e 100644
--- a/hawkbit-rest/hawkbit-ddi-resource/pom.xml
+++ b/hawkbit-rest/hawkbit-ddi-resource/pom.xml
@@ -41,10 +41,6 @@
org.springframework.plugin
spring-plugin-core
-
- com.google.guava
- guava
-
jakarta.servlet
jakarta.servlet-api
diff --git a/hawkbit-rest/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiArtifactDownloadTest.java b/hawkbit-rest/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiArtifactDownloadTest.java
index a57838198..af73a62d0 100644
--- a/hawkbit-rest/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiArtifactDownloadTest.java
+++ b/hawkbit-rest/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiArtifactDownloadTest.java
@@ -44,12 +44,10 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.event.EventListener;
+import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MvcResult;
-import com.google.common.base.Charsets;
-import com.google.common.net.HttpHeaders;
-
import io.qameta.allure.Description;
import io.qameta.allure.Feature;
import io.qameta.allure.Story;
@@ -225,7 +223,7 @@ public class DdiArtifactDownloadTest extends AbstractDDiApiIntegrationTest {
.andReturn();
assertThat(result.getResponse().getContentAsByteArray())
- .isEqualTo((artifact.getMd5Hash() + " " + artifact.getFilename()).getBytes(Charsets.US_ASCII));
+ .isEqualTo((artifact.getMd5Hash() + " " + artifact.getFilename()).getBytes(StandardCharsets.US_ASCII));
}
@Test
diff --git a/hawkbit-rest/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiConfigDataTest.java b/hawkbit-rest/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiConfigDataTest.java
index 236a2114b..da9784b17 100644
--- a/hawkbit-rest/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiConfigDataTest.java
+++ b/hawkbit-rest/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiConfigDataTest.java
@@ -40,8 +40,6 @@ import org.springframework.hateoas.MediaTypes;
import org.springframework.http.MediaType;
import org.springframework.test.context.ActiveProfiles;
-import com.google.common.collect.Maps;
-
import io.qameta.allure.Description;
import io.qameta.allure.Feature;
import io.qameta.allure.Step;
@@ -99,7 +97,7 @@ class DdiConfigDataTest extends AbstractDDiApiIntegrationTest {
.getLastTargetQuery())
.isGreaterThanOrEqualTo(current);
- final Map attributes = Maps.newHashMapWithExpectedSize(1);
+ final Map attributes = new HashMap<>(1);
attributes.put("dsafsdf", "sdsds");
final Target updateControllerAttributes = controllerManagement
diff --git a/hawkbit-rest/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DosFilterTest.java b/hawkbit-rest/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DosFilterTest.java
index a7039e872..b453bd9ec 100644
--- a/hawkbit-rest/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DosFilterTest.java
+++ b/hawkbit-rest/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DosFilterTest.java
@@ -21,6 +21,7 @@ import org.eclipse.hawkbit.repository.model.Action;
import org.eclipse.hawkbit.repository.model.DistributionSet;
import org.eclipse.hawkbit.repository.model.Target;
import org.eclipse.hawkbit.security.DosFilter;
+import org.eclipse.hawkbit.security.HawkbitSecurityProperties;
import org.junit.jupiter.api.Test;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
@@ -29,8 +30,6 @@ import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.setup.DefaultMockMvcBuilder;
import org.springframework.web.context.WebApplicationContext;
-import com.google.common.net.HttpHeaders;
-
import io.qameta.allure.Description;
import io.qameta.allure.Feature;
import io.qameta.allure.Story;
@@ -44,6 +43,8 @@ import io.qameta.allure.Story;
@Story("Denial of Service protection filter")
class DosFilterTest extends AbstractDDiApiIntegrationTest {
+ private static final String X_FORWARDED_FOR = HawkbitSecurityProperties.Clients.X_FORWARDED_FOR;
+
@Override
protected DefaultMockMvcBuilder createMvcWebAppContext(final WebApplicationContext context) {
return super.createMvcWebAppContext(context).addFilter(
@@ -56,7 +57,7 @@ class DosFilterTest extends AbstractDDiApiIntegrationTest {
@Description("Ensures that clients that are on the blacklist are forbidden")
void blackListedClientIsForbidden() throws Exception {
mvc.perform(get("/{tenant}/controller/v1/4711", tenantAware.getCurrentTenant())
- .header(HttpHeaders.X_FORWARDED_FOR, "192.168.0.4 , 10.0.0.1 ")).andExpect(status().isForbidden());
+ .header(X_FORWARDED_FOR, "192.168.0.4 , 10.0.0.1 ")).andExpect(status().isForbidden());
}
@Test
@@ -68,7 +69,7 @@ class DosFilterTest extends AbstractDDiApiIntegrationTest {
int requests = 0;
do {
result = mvc.perform(get("/{tenant}/controller/v1/4711", tenantAware.getCurrentTenant())
- .header(HttpHeaders.X_FORWARDED_FOR, "10.0.0.1")).andReturn();
+ .header(X_FORWARDED_FOR, "10.0.0.1")).andReturn();
requests++;
// we give up after 1.000 requests
@@ -84,7 +85,7 @@ class DosFilterTest extends AbstractDDiApiIntegrationTest {
void unacceptableGetLoadButOnWhitelistIPv4() throws Exception {
for (int i = 0; i < 100; i++) {
mvc.perform(get("/{tenant}/controller/v1/4711", tenantAware.getCurrentTenant())
- .header(HttpHeaders.X_FORWARDED_FOR, "127.0.0.1")).andExpect(status().isOk());
+ .header(X_FORWARDED_FOR, "127.0.0.1")).andExpect(status().isOk());
}
}
@@ -93,7 +94,7 @@ class DosFilterTest extends AbstractDDiApiIntegrationTest {
void unacceptableGetLoadButOnWhitelistIPv6() throws Exception {
for (int i = 0; i < 100; i++) {
mvc.perform(get("/{tenant}/controller/v1/4711", tenantAware.getCurrentTenant())
- .header(HttpHeaders.X_FORWARDED_FOR, "0:0:0:0:0:0:0:1")).andExpect(status().isOk());
+ .header(X_FORWARDED_FOR, "0:0:0:0:0:0:0:1")).andExpect(status().isOk());
}
}
@@ -107,7 +108,7 @@ class DosFilterTest extends AbstractDDiApiIntegrationTest {
Thread.sleep(1100);
for (int i = 0; i < 9; i++) {
mvc.perform(get("/{tenant}/controller/v1/4711", tenantAware.getCurrentTenant())
- .header(HttpHeaders.X_FORWARDED_FOR, "10.0.0.1")).andExpect(status().isOk());
+ .header(X_FORWARDED_FOR, "10.0.0.1")).andExpect(status().isOk());
}
}
}
@@ -122,7 +123,7 @@ class DosFilterTest extends AbstractDDiApiIntegrationTest {
int requests = 0;
do {
result = mvc.perform(post("/{tenant}/controller/v1/4711/deploymentBase/" + actionId + "/feedback",
- tenantAware.getCurrentTenant()).header(HttpHeaders.X_FORWARDED_FOR, "10.0.0.1").content(feedback)
+ tenantAware.getCurrentTenant()).header(X_FORWARDED_FOR, "10.0.0.1").content(feedback)
.contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON))
.andReturn();
requests++;
@@ -149,7 +150,7 @@ class DosFilterTest extends AbstractDDiApiIntegrationTest {
for (int i = 0; i < 9; i++) {
mvc.perform(post("/{tenant}/controller/v1/4711/deploymentBase/" + actionId + "/feedback",
- tenantAware.getCurrentTenant()).header(HttpHeaders.X_FORWARDED_FOR, "10.0.0.1")
+ tenantAware.getCurrentTenant()).header(X_FORWARDED_FOR, "10.0.0.1")
.content(feedback).contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk());
diff --git a/hawkbit-rest/hawkbit-mgmt-resource/pom.xml b/hawkbit-rest/hawkbit-mgmt-resource/pom.xml
index f213ccc1b..8e7f3e7e5 100644
--- a/hawkbit-rest/hawkbit-mgmt-resource/pom.xml
+++ b/hawkbit-rest/hawkbit-mgmt-resource/pom.xml
@@ -21,7 +21,6 @@
hawkbit-mgmt-resource
hawkBit :: REST :: Management Resources
-
org.eclipse.hawkbit
@@ -42,10 +41,6 @@
org.springframework.plugin
spring-plugin-core
-
- com.google.guava
- guava
-
org.springframework
spring-context
diff --git a/hawkbit-rest/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSystemManagementResource.java b/hawkbit-rest/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSystemManagementResource.java
index df268ec2e..694b26c40 100644
--- a/hawkbit-rest/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSystemManagementResource.java
+++ b/hawkbit-rest/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSystemManagementResource.java
@@ -11,7 +11,7 @@ package org.eclipse.hawkbit.mgmt.rest.resource;
import java.util.Collection;
import java.util.Collections;
-import java.util.List;
+import java.util.Objects;
import java.util.stream.Collectors;
import org.eclipse.hawkbit.im.authentication.SpPermission.SpringEvalExpressions;
@@ -24,7 +24,6 @@ import org.eclipse.hawkbit.repository.report.model.SystemUsageReportWithTenants;
import org.eclipse.hawkbit.repository.report.model.TenantUsage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.cache.Cache;
import org.springframework.cache.CacheManager;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -106,7 +105,10 @@ public class MgmtSystemManagementResource implements MgmtSystemManagementRestApi
public ResponseEntity> getCaches() {
final Collection cacheNames = cacheManager.getCacheNames();
return ResponseEntity
- .ok(cacheNames.stream().map(cacheManager::getCache).map(this::cacheRest).collect(Collectors.toList()));
+ .ok(cacheNames.stream().map(cacheManager::getCache)
+ .filter(Objects::nonNull)
+ .map(cache -> new MgmtSystemCache(cache.getName(), Collections.emptyList()))
+ .collect(Collectors.toList()));
}
/**
@@ -122,21 +124,4 @@ public class MgmtSystemManagementResource implements MgmtSystemManagementRestApi
cacheNames.forEach(cacheName -> cacheManager.getCache(cacheName).clear());
return ResponseEntity.ok(cacheNames);
}
-
- private MgmtSystemCache cacheRest(final Cache cache) {
- final Object nativeCache = cache.getNativeCache();
- if (nativeCache instanceof com.google.common.cache.Cache) {
- return guavaCache(cache, nativeCache);
- } else {
- return new MgmtSystemCache(cache.getName(), Collections.emptyList());
- }
- }
-
- @SuppressWarnings("unchecked")
- private MgmtSystemCache guavaCache(final Cache cache, final Object nativeCache) {
- final com.google.common.cache.Cache
-
- com.google.guava
- guava
-
org.apache.commons
commons-lang3
diff --git a/hawkbit-rest/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/exception/ResponseExceptionHandler.java b/hawkbit-rest/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/exception/ResponseExceptionHandler.java
index ea935b9bd..ad0fbdc13 100644
--- a/hawkbit-rest/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/exception/ResponseExceptionHandler.java
+++ b/hawkbit-rest/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/exception/ResponseExceptionHandler.java
@@ -34,8 +34,6 @@ import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.method.annotation.HandlerMethodValidationException;
import org.springframework.web.multipart.MultipartException;
-import com.google.common.collect.Iterables;
-
/**
* General controller advice for exception handling.
*/
@@ -247,7 +245,7 @@ public class ResponseExceptionHandler {
logRequest(request, ex);
final List throwables = ExceptionUtils.getThrowableList(ex);
- final Throwable responseCause = Iterables.getLast(throwables);
+ final Throwable responseCause = throwables.get(throwables.size() - 1);
if (responseCause.getMessage().isEmpty()) {
LOG.warn("Request {} lead to MultipartException without root cause message:\n{}", request.getRequestURL(),
diff --git a/hawkbit-rest/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/util/FileStreamingUtil.java b/hawkbit-rest/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/util/FileStreamingUtil.java
index 697de81b3..d83ef34f7 100644
--- a/hawkbit-rest/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/util/FileStreamingUtil.java
+++ b/hawkbit-rest/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/util/FileStreamingUtil.java
@@ -18,11 +18,13 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
+import org.apache.commons.io.IOUtils;
import org.eclipse.hawkbit.artifact.repository.model.DbArtifact;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -31,10 +33,6 @@ import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
-import com.google.common.base.Preconditions;
-import com.google.common.io.ByteStreams;
-import com.google.common.math.DoubleMath;
-
/**
* Utility class for artifact file streaming.
*/
@@ -138,7 +136,7 @@ public final class FileStreamingUtil {
// set the x-content-type options header to prevent browsers from doing
// MIME-sniffing when downloading an artifact, as this could cause a
// security vulnerability
- response.setHeader(com.google.common.net.HttpHeaders.X_CONTENT_TYPE_OPTIONS, "nosniff");
+ response.setHeader("X-Content-Type-Options", "nosniff");
if (lastModified > 0) {
response.setDateHeader(HttpHeaders.LAST_MODIFIED, lastModified);
}
@@ -334,13 +332,13 @@ public final class FileStreamingUtil {
final long startMillis = System.currentTimeMillis();
LOG.trace("Start of copy-streams of file {} from {} to {}", filename, start, length);
- Preconditions.checkNotNull(from);
- Preconditions.checkNotNull(to);
+ Objects.requireNonNull(from);
+ Objects.requireNonNull(to);
final byte[] buf = new byte[BUFFER_SIZE];
long total = 0;
int progressPercent = 1;
- ByteStreams.skipFully(from, start);
+ IOUtils.skipFully(from, start);
long toRead = length;
boolean toContinue = true;
@@ -365,7 +363,7 @@ public final class FileStreamingUtil {
}
if (progressListener != null) {
- final int newPercent = DoubleMath.roundToInt(total * 100.0 / length, RoundingMode.DOWN);
+ final int newPercent = (int)Math.floor(total * 100.0 / length);
// every 10 percent an event
if (newPercent == 100 || newPercent > progressPercent + 10) {
diff --git a/hawkbit-runtime/hawkbit-simple-ui/src/main/java/org/eclipse/hawkbit/ui/simple/view/util/SelectionGrid.java b/hawkbit-runtime/hawkbit-simple-ui/src/main/java/org/eclipse/hawkbit/ui/simple/view/util/SelectionGrid.java
index d6b497769..a232b9f40 100644
--- a/hawkbit-runtime/hawkbit-simple-ui/src/main/java/org/eclipse/hawkbit/ui/simple/view/util/SelectionGrid.java
+++ b/hawkbit-runtime/hawkbit-simple-ui/src/main/java/org/eclipse/hawkbit/ui/simple/view/util/SelectionGrid.java
@@ -9,7 +9,6 @@
*/
package org.eclipse.hawkbit.ui.simple.view.util;
-import com.google.common.collect.Streams;
import com.vaadin.flow.component.grid.Grid;
import com.vaadin.flow.component.grid.GridVariant;
import com.vaadin.flow.data.provider.Query;
@@ -55,7 +54,7 @@ public class SelectionGrid extends Grid {
// if matching keeps old entries instead of new the new ones in order to
// select them in case refresh is made with keepSelection
// this however means that if they are changed the old state will be shown!!!
- return Streams.concat(selected.stream(),
+ return Stream.concat(selected.stream(),
fetch.filter(next -> !selectedIds.contains(entityRepresentation.idFn.apply(next))));
}
});
diff --git a/hawkbit-security-core/pom.xml b/hawkbit-security-core/pom.xml
index fe3d13301..1c0ee6898 100644
--- a/hawkbit-security-core/pom.xml
+++ b/hawkbit-security-core/pom.xml
@@ -68,11 +68,5 @@
allure-junit5
test
-
- com.google.guava
- guava
- test
-
-
-
+
\ No newline at end of file
diff --git a/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/HawkbitSecurityProperties.java b/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/HawkbitSecurityProperties.java
index 0b4b00476..8fde45cca 100644
--- a/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/HawkbitSecurityProperties.java
+++ b/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/HawkbitSecurityProperties.java
@@ -183,6 +183,8 @@ public class HawkbitSecurityProperties {
*/
public static class Clients {
+ public static final String X_FORWARDED_FOR = "X-Forwarded-For";
+
/**
* Blacklisted client (IP addresses) for for DDI and Management API.
*/
@@ -191,7 +193,7 @@ public class HawkbitSecurityProperties {
/**
* Name of the http header from which the remote ip is extracted.
*/
- private String remoteIpHeader = "X-Forwarded-For";
+ private String remoteIpHeader = X_FORWARDED_FOR;
/**
* Set to true if DDI clients remote IP should be stored.
diff --git a/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/util/IpUtilTest.java b/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/util/IpUtilTest.java
index 3a2133f92..70059ffbd 100644
--- a/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/util/IpUtilTest.java
+++ b/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/util/IpUtilTest.java
@@ -9,7 +9,6 @@
*/
package org.eclipse.hawkbit.util;
-import static com.google.common.net.HttpHeaders.X_FORWARDED_FOR;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.times;
@@ -37,6 +36,7 @@ import org.mockito.junit.jupiter.MockitoExtension;
@Story("IP Util Test")
public class IpUtilTest {
+ private static final String X_FORWARDED_FOR = HawkbitSecurityProperties.Clients.X_FORWARDED_FOR;
private static final String KNOWN_REQUEST_HEADER = "bumlux";
@Mock
diff --git a/pom.xml b/pom.xml
index 694a61996..d336420b1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -757,38 +757,6 @@
${spring-amqp.version}
test
-
- com.google.guava
- guava
- ${guava.version}
-
-
-
- com.google.j2objc
- j2objc-annotations
-
-
- com.google.code.findbugs
- jsr305
-
-
- org.checkerframework
- checker-compat-qual
-
-
- com.google.errorprone
- error_prone_annotations
-
-
- com.google.j2objc
- j2objc-annotations
-
-
- org.codehaus.mojo
- animal-sniffer-annotations
-
-
-
org.awaitility
awaitility
@@ -803,5 +771,37 @@
lombok
true
+
+ com.google.guava
+ guava
+ ${guava.version}
+
+
+
+ com.google.j2objc
+ j2objc-annotations
+
+
+ com.google.code.findbugs
+ jsr305
+
+
+ org.checkerframework
+ checker-compat-qual
+
+
+ com.google.errorprone
+ error_prone_annotations
+
+
+ com.google.j2objc
+ j2objc-annotations
+
+
+ org.codehaus.mojo
+ animal-sniffer-annotations
+
+
+