diff --git a/front50-core/front50-core.gradle b/front50-core/front50-core.gradle index a196e2ee4..951ecdad9 100644 --- a/front50-core/front50-core.gradle +++ b/front50-core/front50-core.gradle @@ -24,10 +24,10 @@ dependencies { implementation "org.springframework.security:spring-security-web" implementation "io.spinnaker.kork:kork-web" implementation "io.spinnaker.kork:kork-retrofit" - implementation "io.reactivex:rxjava" + implementation "io.reactivex.rxjava3:rxjava" implementation "com.jakewharton.retrofit:retrofit1-okhttp3-client" implementation "com.squareup.retrofit:converter-jackson" - implementation "javax.validation:validation-api" + implementation "jakarta.validation:jakarta.validation-api" implementation "org.hibernate.validator:hibernate-validator" api "com.github.ben-manes.caffeine:guava" diff --git a/front50-core/src/main/java/com/netflix/spinnaker/front50/config/CommonStorageServiceDAOConfig.java b/front50-core/src/main/java/com/netflix/spinnaker/front50/config/CommonStorageServiceDAOConfig.java index e052bc5bb..65a1ad94c 100644 --- a/front50-core/src/main/java/com/netflix/spinnaker/front50/config/CommonStorageServiceDAOConfig.java +++ b/front50-core/src/main/java/com/netflix/spinnaker/front50/config/CommonStorageServiceDAOConfig.java @@ -47,12 +47,12 @@ import com.netflix.spinnaker.front50.model.tag.DefaultEntityTagsDAO; import com.netflix.spinnaker.front50.model.tag.EntityTagsDAO; import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry; +import io.reactivex.rxjava3.schedulers.Schedulers; import java.util.concurrent.Executors; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import rx.schedulers.Schedulers; @Configuration @ConditionalOnProperty( diff --git a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/StorageServiceSupport.java b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/StorageServiceSupport.java index 308d6a185..94b396500 100644 --- a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/StorageServiceSupport.java +++ b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/StorageServiceSupport.java @@ -32,6 +32,9 @@ import io.github.resilience4j.circuitbreaker.CircuitBreakerConfig; import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry; import io.github.resilience4j.core.SupplierUtils; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Scheduler; +import jakarta.annotation.PostConstruct; import java.util.ArrayList; import java.util.Collection; import java.util.Date; @@ -49,11 +52,8 @@ import java.util.function.Supplier; import java.util.function.ToDoubleFunction; import java.util.stream.Collectors; -import javax.annotation.PostConstruct; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import rx.Observable; -import rx.Scheduler; public abstract class StorageServiceSupport { private final Logger log = LoggerFactory.getLogger(getClass()); @@ -329,11 +329,11 @@ public void bulkImport(Collection items) { return; } - Observable.from(items) + Observable.fromIterable(items) .buffer(10) .flatMap( itemSet -> - Observable.from(itemSet) + Observable.fromIterable(itemSet) .flatMap( item -> { try { @@ -352,8 +352,7 @@ public void bulkImport(Collection items) { .subscribeOn(scheduler)) .subscribeOn(scheduler) .toList() - .toBlocking() - .single(); + .blockingGet(); } public void bulkDelete(Collection ids) { @@ -468,11 +467,11 @@ private Set fetchAllItems(Set existingItems) { } } } catch (UnsupportedOperationException e) { - Observable.from(modifiedKeys) + Observable.fromIterable(modifiedKeys) .buffer(10) .flatMap( ids -> - Observable.from(ids) + Observable.fromIterable(ids) .flatMap( entry -> { try { @@ -501,8 +500,7 @@ private Set fetchAllItems(Set existingItems) { .subscribeOn(scheduler)) .subscribeOn(scheduler) .toList() - .toBlocking() - .single() + .blockingGet() .forEach(item -> resultMap.put(buildObjectKey(item), item)); } diff --git a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/application/DefaultApplicationDAO.java b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/application/DefaultApplicationDAO.java index 7454a2a54..66d531be4 100644 --- a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/application/DefaultApplicationDAO.java +++ b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/application/DefaultApplicationDAO.java @@ -24,9 +24,9 @@ import com.netflix.spinnaker.front50.model.StorageServiceSupport; import com.netflix.spinnaker.kork.web.exceptions.NotFoundException; import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry; +import io.reactivex.rxjava3.core.Scheduler; import java.util.Collection; import java.util.Map; -import rx.Scheduler; public class DefaultApplicationDAO extends StorageServiceSupport implements ApplicationDAO { diff --git a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/application/DefaultApplicationPermissionDAO.java b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/application/DefaultApplicationPermissionDAO.java index edcd19ce1..3dd36a633 100644 --- a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/application/DefaultApplicationPermissionDAO.java +++ b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/application/DefaultApplicationPermissionDAO.java @@ -23,7 +23,7 @@ import com.netflix.spinnaker.front50.model.StorageService; import com.netflix.spinnaker.front50.model.StorageServiceSupport; import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry; -import rx.Scheduler; +import io.reactivex.rxjava3.core.Scheduler; public class DefaultApplicationPermissionDAO extends StorageServiceSupport implements ApplicationPermissionDAO { diff --git a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/delivery/DefaultDeliveryRepository.java b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/delivery/DefaultDeliveryRepository.java index 4dc153665..9c14d1639 100644 --- a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/delivery/DefaultDeliveryRepository.java +++ b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/delivery/DefaultDeliveryRepository.java @@ -7,11 +7,11 @@ import com.netflix.spinnaker.front50.model.StorageService; import com.netflix.spinnaker.front50.model.StorageServiceSupport; import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry; +import io.reactivex.rxjava3.core.Scheduler; import java.util.Collection; import java.util.UUID; import java.util.stream.Collectors; import org.springframework.util.Assert; -import rx.Scheduler; public class DefaultDeliveryRepository extends StorageServiceSupport implements DeliveryRepository { diff --git a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/notification/DefaultNotificationDAO.java b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/notification/DefaultNotificationDAO.java index 3b4d3c673..ed4fac528 100644 --- a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/notification/DefaultNotificationDAO.java +++ b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/notification/DefaultNotificationDAO.java @@ -24,7 +24,7 @@ import com.netflix.spinnaker.front50.model.StorageServiceSupport; import com.netflix.spinnaker.kork.web.exceptions.NotFoundException; import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry; -import rx.Scheduler; +import io.reactivex.rxjava3.core.Scheduler; public class DefaultNotificationDAO extends StorageServiceSupport implements NotificationDAO { diff --git a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/pipeline/DefaultPipelineDAO.java b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/pipeline/DefaultPipelineDAO.java index 02c9dc98a..2319a3b87 100644 --- a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/pipeline/DefaultPipelineDAO.java +++ b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/pipeline/DefaultPipelineDAO.java @@ -25,6 +25,7 @@ import com.netflix.spinnaker.front50.model.StorageServiceSupport; import com.netflix.spinnaker.kork.web.exceptions.NotFoundException; import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry; +import io.reactivex.rxjava3.core.Scheduler; import java.util.Collection; import java.util.UUID; import java.util.stream.Collectors; @@ -32,7 +33,6 @@ import org.slf4j.LoggerFactory; import org.springframework.util.Assert; import org.springframework.util.ObjectUtils; -import rx.Scheduler; public class DefaultPipelineDAO extends StorageServiceSupport implements PipelineDAO { private static final Logger log = LoggerFactory.getLogger(DefaultPipelineDAO.class); diff --git a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/pipeline/DefaultPipelineStrategyDAO.java b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/pipeline/DefaultPipelineStrategyDAO.java index adf9573ff..a686071e1 100644 --- a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/pipeline/DefaultPipelineStrategyDAO.java +++ b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/pipeline/DefaultPipelineStrategyDAO.java @@ -25,10 +25,10 @@ import com.netflix.spinnaker.front50.model.StorageServiceSupport; import com.netflix.spinnaker.kork.web.exceptions.NotFoundException; import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry; +import io.reactivex.rxjava3.core.Scheduler; import java.util.Collection; import java.util.UUID; import java.util.stream.Collectors; -import rx.Scheduler; public class DefaultPipelineStrategyDAO extends StorageServiceSupport implements PipelineStrategyDAO { diff --git a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/pipeline/DefaultPipelineTemplateDAO.java b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/pipeline/DefaultPipelineTemplateDAO.java index f5ffa9d73..022190deb 100644 --- a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/pipeline/DefaultPipelineTemplateDAO.java +++ b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/pipeline/DefaultPipelineTemplateDAO.java @@ -22,8 +22,8 @@ import com.netflix.spinnaker.front50.model.StorageService; import com.netflix.spinnaker.front50.model.StorageServiceSupport; import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry; +import io.reactivex.rxjava3.core.Scheduler; import org.springframework.util.Assert; -import rx.Scheduler; public class DefaultPipelineTemplateDAO extends StorageServiceSupport implements PipelineTemplateDAO { diff --git a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/plugins/DefaultPluginInfoRepository.java b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/plugins/DefaultPluginInfoRepository.java index ccc1eee56..71b523619 100644 --- a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/plugins/DefaultPluginInfoRepository.java +++ b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/plugins/DefaultPluginInfoRepository.java @@ -24,13 +24,13 @@ import com.netflix.spinnaker.kork.exceptions.IntegrationException; import com.netflix.spinnaker.kork.exceptions.UserException; import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry; +import io.reactivex.rxjava3.core.Scheduler; import java.time.Instant; import java.time.format.DateTimeParseException; import java.util.Collection; import java.util.Objects; import java.util.stream.Collectors; import javax.annotation.Nonnull; -import rx.Scheduler; public class DefaultPluginInfoRepository extends StorageServiceSupport implements PluginInfoRepository { diff --git a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/plugins/DefaultPluginVersionPinningRepository.java b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/plugins/DefaultPluginVersionPinningRepository.java index 9345d214d..09ce13a45 100644 --- a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/plugins/DefaultPluginVersionPinningRepository.java +++ b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/plugins/DefaultPluginVersionPinningRepository.java @@ -23,8 +23,8 @@ import com.netflix.spinnaker.front50.model.StorageServiceSupport; import com.netflix.spinnaker.kork.exceptions.IntegrationException; import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry; +import io.reactivex.rxjava3.core.Scheduler; import java.util.Objects; -import rx.Scheduler; public class DefaultPluginVersionPinningRepository extends StorageServiceSupport diff --git a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/plugins/PluginInfo.java b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/plugins/PluginInfo.java index 8bdbcb7c9..99c4b8354 100644 --- a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/plugins/PluginInfo.java +++ b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/plugins/PluginInfo.java @@ -19,6 +19,7 @@ import com.google.common.base.Splitter; import com.netflix.spinnaker.front50.api.model.Timestamped; import com.netflix.spinnaker.kork.api.plugins.remote.RemoteExtensionConfig; +import jakarta.validation.Valid; import java.time.Instant; import java.util.ArrayList; import java.util.List; @@ -28,7 +29,6 @@ import java.util.regex.Pattern; import java.util.stream.Collectors; import javax.annotation.Nonnull; -import javax.validation.Valid; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.hibernate.validator.constraints.URL; @@ -105,7 +105,7 @@ public static class Release { * * @link https://semver.org/ */ - @javax.validation.constraints.Pattern(regexp = VERSION_PATTERN) + @jakarta.validation.constraints.Pattern(regexp = VERSION_PATTERN) private String version; /** The date of the plugin release. */ diff --git a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/plugins/PluginVersionCleanupAgent.java b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/plugins/PluginVersionCleanupAgent.java index d2d24655f..11efbf92f 100644 --- a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/plugins/PluginVersionCleanupAgent.java +++ b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/plugins/PluginVersionCleanupAgent.java @@ -19,11 +19,11 @@ import com.netflix.spinnaker.front50.config.PluginVersionCleanupProperties; import com.netflix.spinnaker.moniker.Namer; +import jakarta.annotation.PostConstruct; import java.util.Collection; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; -import javax.annotation.PostConstruct; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.scheduling.TaskScheduler; diff --git a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/project/DefaultProjectDAO.java b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/project/DefaultProjectDAO.java index 987afb258..f5b44e004 100644 --- a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/project/DefaultProjectDAO.java +++ b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/project/DefaultProjectDAO.java @@ -24,8 +24,8 @@ import com.netflix.spinnaker.front50.model.StorageServiceSupport; import com.netflix.spinnaker.kork.web.exceptions.NotFoundException; import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry; +import io.reactivex.rxjava3.core.Scheduler; import java.util.UUID; -import rx.Scheduler; public class DefaultProjectDAO extends StorageServiceSupport implements ProjectDAO { public DefaultProjectDAO( diff --git a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/serviceaccount/DefaultServiceAccountDAO.java b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/serviceaccount/DefaultServiceAccountDAO.java index 50c1547d3..ea0fed120 100644 --- a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/serviceaccount/DefaultServiceAccountDAO.java +++ b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/serviceaccount/DefaultServiceAccountDAO.java @@ -23,7 +23,7 @@ import com.netflix.spinnaker.front50.model.StorageService; import com.netflix.spinnaker.front50.model.StorageServiceSupport; import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry; -import rx.Scheduler; +import io.reactivex.rxjava3.core.Scheduler; public class DefaultServiceAccountDAO extends StorageServiceSupport implements ServiceAccountDAO { diff --git a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/snapshot/DefaultSnapshotDAO.java b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/snapshot/DefaultSnapshotDAO.java index c48df9e6a..51e6690a9 100644 --- a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/snapshot/DefaultSnapshotDAO.java +++ b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/snapshot/DefaultSnapshotDAO.java @@ -23,8 +23,8 @@ import com.netflix.spinnaker.front50.model.StorageService; import com.netflix.spinnaker.front50.model.StorageServiceSupport; import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry; +import io.reactivex.rxjava3.core.Scheduler; import org.springframework.util.Assert; -import rx.Scheduler; public class DefaultSnapshotDAO extends StorageServiceSupport implements SnapshotDAO { public DefaultSnapshotDAO( diff --git a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/tag/DefaultEntityTagsDAO.java b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/tag/DefaultEntityTagsDAO.java index 5d9e9a869..67d92cb50 100644 --- a/front50-core/src/main/java/com/netflix/spinnaker/front50/model/tag/DefaultEntityTagsDAO.java +++ b/front50-core/src/main/java/com/netflix/spinnaker/front50/model/tag/DefaultEntityTagsDAO.java @@ -23,9 +23,9 @@ import com.netflix.spinnaker.front50.model.StorageService; import com.netflix.spinnaker.front50.model.StorageServiceSupport; import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry; +import io.reactivex.rxjava3.core.Scheduler; import java.util.Objects; import java.util.concurrent.TimeUnit; -import rx.Scheduler; public class DefaultEntityTagsDAO extends StorageServiceSupport implements EntityTagsDAO { diff --git a/front50-core/src/test/java/com/netflix/spinnaker/front50/model/StorageServiceSupportTest.java b/front50-core/src/test/java/com/netflix/spinnaker/front50/model/StorageServiceSupportTest.java index bd0657897..d83a3e2c6 100644 --- a/front50-core/src/test/java/com/netflix/spinnaker/front50/model/StorageServiceSupportTest.java +++ b/front50-core/src/test/java/com/netflix/spinnaker/front50/model/StorageServiceSupportTest.java @@ -27,13 +27,13 @@ import com.netflix.spinnaker.front50.api.model.pipeline.Pipeline; import com.netflix.spinnaker.front50.config.StorageServiceConfigurationProperties; import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry; +import io.reactivex.rxjava3.core.Scheduler; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import org.junit.jupiter.api.Test; -import rx.Scheduler; class StorageServiceSupportTest { diff --git a/front50-gcs/front50-gcs.gradle b/front50-gcs/front50-gcs.gradle index 36b6ff658..1ea72dfee 100644 --- a/front50-gcs/front50-gcs.gradle +++ b/front50-gcs/front50-gcs.gradle @@ -28,7 +28,7 @@ dependencies { implementation "com.netflix.spectator:spectator-api" implementation "io.spinnaker.kork:kork-exceptions" implementation "io.github.resilience4j:resilience4j-circuitbreaker" - implementation "io.reactivex:rxjava" + implementation "io.reactivex.rxjava3:rxjava" implementation "net.logstash.logback:logstash-logback-encoder" implementation "org.slf4j:slf4j-api" implementation "org.springframework:spring-beans" diff --git a/front50-gcs/src/main/java/com/netflix/spinnaker/front50/config/GcsConfig.java b/front50-gcs/src/main/java/com/netflix/spinnaker/front50/config/GcsConfig.java index 74d4dd1e9..6d490ec3d 100644 --- a/front50-gcs/src/main/java/com/netflix/spinnaker/front50/config/GcsConfig.java +++ b/front50-gcs/src/main/java/com/netflix/spinnaker/front50/config/GcsConfig.java @@ -37,6 +37,7 @@ import com.netflix.spinnaker.front50.model.application.ApplicationPermissionDAO; import com.netflix.spinnaker.front50.model.application.DefaultApplicationPermissionDAO; import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry; +import io.reactivex.rxjava3.schedulers.Schedulers; import java.io.FileInputStream; import java.io.IOException; import java.util.Collections; @@ -50,7 +51,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.client.RestTemplate; -import rx.schedulers.Schedulers; @Configuration @ConditionalOnExpression("${spinnaker.gcs.enabled:false}") diff --git a/front50-gcs/src/main/kotlin/com/netflix/spinnaker/front50/model/GcsStorageService.kt b/front50-gcs/src/main/kotlin/com/netflix/spinnaker/front50/model/GcsStorageService.kt index 58abab87e..d4627b5e0 100644 --- a/front50-gcs/src/main/kotlin/com/netflix/spinnaker/front50/model/GcsStorageService.kt +++ b/front50-gcs/src/main/kotlin/com/netflix/spinnaker/front50/model/GcsStorageService.kt @@ -39,7 +39,7 @@ import java.util.concurrent.ExecutorService import java.util.concurrent.Future import java.util.concurrent.TimeUnit import java.util.concurrent.TimeoutException -import javax.annotation.PostConstruct +import jakarta.annotation.PostConstruct class GcsStorageService( private val storage: Storage, diff --git a/front50-s3/src/main/java/com/netflix/spinnaker/front50/model/EventingS3ObjectKeyLoader.java b/front50-s3/src/main/java/com/netflix/spinnaker/front50/model/EventingS3ObjectKeyLoader.java index de8b7ae4c..966a9870b 100644 --- a/front50-s3/src/main/java/com/netflix/spinnaker/front50/model/EventingS3ObjectKeyLoader.java +++ b/front50-s3/src/main/java/com/netflix/spinnaker/front50/model/EventingS3ObjectKeyLoader.java @@ -30,6 +30,7 @@ import com.netflix.spinnaker.front50.config.S3MetadataStorageProperties; import com.netflix.spinnaker.front50.model.events.S3Event; import com.netflix.spinnaker.front50.model.events.S3EventWrapper; +import jakarta.annotation.PreDestroy; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; @@ -42,7 +43,6 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; -import javax.annotation.PreDestroy; import org.joda.time.DateTime; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/front50-s3/src/main/java/com/netflix/spinnaker/front50/model/TemporarySQSQueue.java b/front50-s3/src/main/java/com/netflix/spinnaker/front50/model/TemporarySQSQueue.java index eb6dbc259..1004b78bb 100644 --- a/front50-s3/src/main/java/com/netflix/spinnaker/front50/model/TemporarySQSQueue.java +++ b/front50-s3/src/main/java/com/netflix/spinnaker/front50/model/TemporarySQSQueue.java @@ -33,10 +33,10 @@ import com.amazonaws.services.sqs.model.ReceiptHandleIsInvalidException; import com.amazonaws.services.sqs.model.ReceiveMessageRequest; import com.amazonaws.services.sqs.model.ReceiveMessageResult; +import jakarta.annotation.PreDestroy; import java.util.Collections; import java.util.HashMap; import java.util.List; -import javax.annotation.PreDestroy; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/front50-sql/src/test/resources/application.yml b/front50-sql/src/test/resources/application.yml index 678a76593..7e83d81a7 100644 --- a/front50-sql/src/test/resources/application.yml +++ b/front50-sql/src/test/resources/application.yml @@ -1,5 +1,7 @@ spring: - profiles: default + config: + activate: + on-profile: default spinnaker: migration: diff --git a/front50-test/front50-test.gradle b/front50-test/front50-test.gradle index 7e232977a..a1283c1ae 100644 --- a/front50-test/front50-test.gradle +++ b/front50-test/front50-test.gradle @@ -24,7 +24,7 @@ dependencies { implementation "org.spockframework:spock-core" implementation "com.amazonaws:aws-java-sdk-s3" implementation "io.spinnaker.kork:kork-sql-test" - implementation "io.reactivex:rxjava" + implementation "io.reactivex.rxjava3:rxjava" } tasks.compileGroovy.enabled = true diff --git a/front50-test/src/main/java/com/netflix/spinnaker/front50/pipeline/SqlPipelineDAOTestConfiguration.java b/front50-test/src/main/java/com/netflix/spinnaker/front50/pipeline/SqlPipelineDAOTestConfiguration.java index 236e22683..e8f0cb625 100644 --- a/front50-test/src/main/java/com/netflix/spinnaker/front50/pipeline/SqlPipelineDAOTestConfiguration.java +++ b/front50-test/src/main/java/com/netflix/spinnaker/front50/pipeline/SqlPipelineDAOTestConfiguration.java @@ -27,10 +27,10 @@ import com.netflix.spinnaker.kork.sql.config.SqlRetryProperties; import com.netflix.spinnaker.kork.sql.test.SqlTestUtil; import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry; +import io.reactivex.rxjava3.core.Scheduler; +import io.reactivex.rxjava3.schedulers.Schedulers; import java.time.Clock; import java.util.concurrent.Executors; -import rx.Scheduler; -import rx.schedulers.Schedulers; public class SqlPipelineDAOTestConfiguration { diff --git a/front50-web/front50-web.gradle b/front50-web/front50-web.gradle index 88917cd11..8a737e36a 100644 --- a/front50-web/front50-web.gradle +++ b/front50-web/front50-web.gradle @@ -38,7 +38,7 @@ dependencies { implementation "com.squareup.retrofit:converter-jackson" implementation "io.swagger.core.v3:swagger-annotations" implementation "commons-codec:commons-codec" - implementation "javax.validation:validation-api" + implementation "jakarta.validation:jakarta.validation-api" runtimeOnly "io.spinnaker.kork:kork-runtime" @@ -46,7 +46,7 @@ dependencies { testImplementation project(":front50-test") testImplementation project(":front50-sql") testImplementation "io.spinnaker.kork:kork-sql-test" - testImplementation "io.reactivex:rxjava" + testImplementation "io.reactivex.rxjava3:rxjava" testImplementation "org.apache.groovy:groovy-json" // Add each included cloud provider project as a runtime dependency diff --git a/front50-web/src/main/java/com/netflix/spinnaker/front50/config/Front50WebConfig.java b/front50-web/src/main/java/com/netflix/spinnaker/front50/config/Front50WebConfig.java index 142cdb949..dc2955550 100644 --- a/front50-web/src/main/java/com/netflix/spinnaker/front50/config/Front50WebConfig.java +++ b/front50-web/src/main/java/com/netflix/spinnaker/front50/config/Front50WebConfig.java @@ -52,7 +52,7 @@ import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration @ComponentScan @@ -63,7 +63,7 @@ StorageServiceConfigurationProperties.class, PipelineControllerConfig.class }) -public class Front50WebConfig extends WebMvcConfigurerAdapter { +public class Front50WebConfig implements WebMvcConfigurer { @Autowired private Registry registry; diff --git a/front50-web/src/main/java/com/netflix/spinnaker/front50/controllers/PluginInfoController.java b/front50-web/src/main/java/com/netflix/spinnaker/front50/controllers/PluginInfoController.java index 165b9d58d..ee3b15da0 100644 --- a/front50-web/src/main/java/com/netflix/spinnaker/front50/controllers/PluginInfoController.java +++ b/front50-web/src/main/java/com/netflix/spinnaker/front50/controllers/PluginInfoController.java @@ -18,10 +18,10 @@ import com.netflix.spinnaker.front50.config.annotations.ConditionalOnAnyProviderExceptRedisIsEnabled; import com.netflix.spinnaker.front50.model.plugins.PluginInfo; import com.netflix.spinnaker.front50.model.plugins.PluginInfoService; +import jakarta.validation.Valid; +import jakarta.validation.constraints.Pattern; import java.util.Collection; import java.util.Optional; -import javax.validation.Valid; -import javax.validation.constraints.Pattern; import org.springframework.http.HttpStatus; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; diff --git a/front50-web/src/main/java/com/netflix/spinnaker/front50/controllers/v2/ApplicationsController.java b/front50-web/src/main/java/com/netflix/spinnaker/front50/controllers/v2/ApplicationsController.java index 19fd5305f..cad511050 100644 --- a/front50-web/src/main/java/com/netflix/spinnaker/front50/controllers/v2/ApplicationsController.java +++ b/front50-web/src/main/java/com/netflix/spinnaker/front50/controllers/v2/ApplicationsController.java @@ -16,9 +16,9 @@ import com.netflix.spinnaker.kork.web.exceptions.NotFoundException; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; import java.util.*; import java.util.stream.Collectors; -import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.MessageSource; diff --git a/front50-web/src/main/java/com/netflix/spinnaker/front50/controllers/v2/EntityTagsController.java b/front50-web/src/main/java/com/netflix/spinnaker/front50/controllers/v2/EntityTagsController.java index 8cd08634f..ebe872910 100644 --- a/front50-web/src/main/java/com/netflix/spinnaker/front50/controllers/v2/EntityTagsController.java +++ b/front50-web/src/main/java/com/netflix/spinnaker/front50/controllers/v2/EntityTagsController.java @@ -7,10 +7,10 @@ import com.netflix.spinnaker.front50.model.tag.EntityTags; import com.netflix.spinnaker.front50.model.tag.EntityTagsDAO; import com.netflix.spinnaker.kork.web.exceptions.NotFoundException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.util.*; import java.util.stream.Collectors; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpStatus; diff --git a/front50-web/src/main/java/com/netflix/spinnaker/front50/controllers/v2/ProjectsController.java b/front50-web/src/main/java/com/netflix/spinnaker/front50/controllers/v2/ProjectsController.java index dfa2c6987..996f44798 100644 --- a/front50-web/src/main/java/com/netflix/spinnaker/front50/controllers/v2/ProjectsController.java +++ b/front50-web/src/main/java/com/netflix/spinnaker/front50/controllers/v2/ProjectsController.java @@ -27,10 +27,10 @@ import com.netflix.spinnaker.kork.web.exceptions.NotFoundException; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; import java.util.*; import java.util.function.Predicate; import java.util.stream.Collectors; -import javax.servlet.http.HttpServletResponse; import lombok.Value; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; diff --git a/front50-web/src/main/java/com/netflix/spinnaker/front50/filters/SimpleCORSFilter.java b/front50-web/src/main/java/com/netflix/spinnaker/front50/filters/SimpleCORSFilter.java index 8bdca60ee..b8ef0605c 100644 --- a/front50-web/src/main/java/com/netflix/spinnaker/front50/filters/SimpleCORSFilter.java +++ b/front50-web/src/main/java/com/netflix/spinnaker/front50/filters/SimpleCORSFilter.java @@ -15,9 +15,9 @@ */ package com.netflix.spinnaker.front50.filters; +import jakarta.servlet.*; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; -import javax.servlet.*; -import javax.servlet.http.HttpServletResponse; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; diff --git a/front50-web/src/test/groovy/com/netflix/spinnaker/front50/controllers/NotificationControllerTck.groovy b/front50-web/src/test/groovy/com/netflix/spinnaker/front50/controllers/NotificationControllerTck.groovy index f63f648b3..74a57ae97 100644 --- a/front50-web/src/test/groovy/com/netflix/spinnaker/front50/controllers/NotificationControllerTck.groovy +++ b/front50-web/src/test/groovy/com/netflix/spinnaker/front50/controllers/NotificationControllerTck.groovy @@ -35,7 +35,7 @@ import org.springframework.context.support.StaticMessageSource import org.springframework.http.MediaType import org.springframework.test.web.servlet.MockMvc import org.springframework.test.web.servlet.setup.MockMvcBuilders -import rx.schedulers.Schedulers +import io.reactivex.rxjava3.schedulers.Schedulers import spock.lang.AutoCleanup import spock.lang.Shared import spock.lang.Specification diff --git a/front50-web/src/test/groovy/com/netflix/spinnaker/front50/controllers/PipelineControllerSpec.groovy b/front50-web/src/test/groovy/com/netflix/spinnaker/front50/controllers/PipelineControllerSpec.groovy index 7e960d418..d516684a9 100644 --- a/front50-web/src/test/groovy/com/netflix/spinnaker/front50/controllers/PipelineControllerSpec.groovy +++ b/front50-web/src/test/groovy/com/netflix/spinnaker/front50/controllers/PipelineControllerSpec.groovy @@ -26,7 +26,7 @@ import spock.lang.Specification import spock.lang.Unroll import spock.mock.DetachedMockFactory -import javax.servlet.http.HttpServletResponse +import jakarta.servlet.http.HttpServletResponse import java.util.concurrent.Executors import java.util.stream.Collectors diff --git a/front50-web/src/test/groovy/com/netflix/spinnaker/front50/controllers/StrategyControllerTck.groovy b/front50-web/src/test/groovy/com/netflix/spinnaker/front50/controllers/StrategyControllerTck.groovy index 9f255f918..40b2432fb 100644 --- a/front50-web/src/test/groovy/com/netflix/spinnaker/front50/controllers/StrategyControllerTck.groovy +++ b/front50-web/src/test/groovy/com/netflix/spinnaker/front50/controllers/StrategyControllerTck.groovy @@ -37,7 +37,7 @@ import org.springframework.beans.factory.ObjectProvider import org.springframework.http.MediaType import org.springframework.test.web.servlet.MockMvc import org.springframework.test.web.servlet.setup.MockMvcBuilders -import rx.schedulers.Schedulers +import io.reactivex.rxjava3.schedulers.Schedulers import spock.lang.* import java.time.Clock diff --git a/front50-web/src/test/groovy/com/netflix/spinnaker/front50/controllers/v2/ApplicationsControllerTck.groovy b/front50-web/src/test/groovy/com/netflix/spinnaker/front50/controllers/v2/ApplicationsControllerTck.groovy index 51f120d45..c26338e8c 100644 --- a/front50-web/src/test/groovy/com/netflix/spinnaker/front50/controllers/v2/ApplicationsControllerTck.groovy +++ b/front50-web/src/test/groovy/com/netflix/spinnaker/front50/controllers/v2/ApplicationsControllerTck.groovy @@ -48,7 +48,7 @@ import org.springframework.http.MediaType import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter import org.springframework.test.web.servlet.MockMvc import org.springframework.test.web.servlet.setup.MockMvcBuilders -import rx.schedulers.Schedulers +import io.reactivex.rxjava3.schedulers.Schedulers import spock.lang.AutoCleanup import spock.lang.Specification import spock.lang.Subject diff --git a/front50-web/src/test/groovy/com/netflix/spinnaker/front50/controllers/v2/ProjectsControllerTck.groovy b/front50-web/src/test/groovy/com/netflix/spinnaker/front50/controllers/v2/ProjectsControllerTck.groovy index 56a19b947..eba406efd 100644 --- a/front50-web/src/test/groovy/com/netflix/spinnaker/front50/controllers/v2/ProjectsControllerTck.groovy +++ b/front50-web/src/test/groovy/com/netflix/spinnaker/front50/controllers/v2/ProjectsControllerTck.groovy @@ -36,7 +36,7 @@ import org.springframework.beans.factory.ObjectProvider import org.springframework.http.MediaType import org.springframework.test.web.servlet.MockMvc import org.springframework.test.web.servlet.setup.MockMvcBuilders -import rx.schedulers.Schedulers +import io.reactivex.rxjava3.schedulers.Schedulers import spock.lang.* import java.time.Clock