Skip to content

feat(spool): add default methods to CloudMessageSpool for fast startu… - #1834

Draft
saranyailla wants to merge 1 commit into
mainfrom
spooler-interface
Draft

feat(spool): add default methods to CloudMessageSpool for fast startu…#1834
saranyailla wants to merge 1 commit into
mainfrom
spooler-interface

Conversation

@saranyailla

@saranyailla saranyailla commented Aug 11, 2026

Copy link
Copy Markdown
Member

…p sync

Add getMaxMessageId() and getAllMessageIdsWithSizes() as default methods on the CloudMessageSpool interface to support DiskSpooler startup optimization (issue #1832).

Problem

When the Greengrass Nucleus boots with Disk spooler storage configured, the Spool constructor calls persistentQueueSync() which iterates every persisted message and calls getMessageById() for each one. This reads the full message payload from SQLite only to extract payload.length for capacity tracking. The payload itself is discarded immediately.

See: #1832 (#1832)

Changes

Add two default methods to the CloudMessageSpool interface:

  • getMaxMessageId() — Returns the highest message ID stored in the spool. The nucleus uses this to set its nextId counter without iterating all rows. Spooler plugin reads this from DB.

  • getAllMessageIdsWithSizes() — Returns an ordered list of [messageId, payloadSizeInBytes] pairs. The nucleus uses this to populate its dispatch queue and track capacity in a single pass without reading any payload blobs. The DiskSpooler plugin can implement this as SELECT message_id, LENGTH(payload) FROM spooler ORDER BY message_id ASC a single table scan where LENGTH() reads from SQLite row headers, not blob content.

Default values

Both methods have default implementations on the interface:

  • getMaxMessageId() returns -1 — signals "not supported." The nucleus interprets this as: fall back to discovering the max ID by iterating all message IDs
    (existing behavior).
  • getAllMessageIdsWithSizes() returns null — signals "not supported." The nucleus interprets this as: fall back to calling getMessageById() per message on a
    background thread (the slow path, but still improved over blocking the main thread).

The DiskSpooler plugin is deployed independently of the nucleus. Customers may upgrade their nucleus without upgrading the spooler plugin (or vice versa). Default
methods ensure:

  • Old plugin + new nucleus: The nucleus calls the new methods, gets -1/null from the defaults, and gracefully falls back to the background-thread approach. No breakage, still an improvement over the 5-minute block.
  • New plugin + old nucleus: The old nucleus never calls these methods. They exist on the plugin class but are never invoked. No breakage.
  • New plugin + new nucleus: Full benefit — synchronous startup in milliseconds.

Testing

Existing tests pass (39/39). No behavioral change in this PR — the nucleus does not yet consume these methods. The consuming logic will be in a follow-up PR.

How was this change tested:

  • Updated or added new unit tests.
  • Updated or added new integration tests.
  • Updated or added new end-to-end tests.
  • If my code makes a remote network call, it was tested with a proxy.

Any additional information or context required to review the change:

Documentation Checklist:

  • Updated the README if applicable.

Compatibility Checklist:

  • I confirm that the change is backwards compatible.
  • Any modification or deletion of public interfaces does not impact other plugin components.
  • For external library version updates, I have reviewed its change logs and Nucleus does not consume
    any deprecated method or type.

Refer to Compatibility Guidelines for more information.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

…p sync

Add getMaxMessageId() and getAllMessageIdsWithSizes() as default methods
on the CloudMessageSpool interface to support DiskSpooler startup
optimization (issue #1832).
@github-actions

Copy link
Copy Markdown

Binary incompatibility detected for commit eb5d231.
See the uploaded artifacts from the action for details. You must bump the version number.

com.aws.greengrass.mqttclient.spool.CloudMessageSpool is binary incompatible and is source incompatible because of METHOD_NEW_DEFAULT

Produced by binaryCompatability.py

@github-actions

Copy link
Copy Markdown

Unit Tests Coverage Report

File Coverage Lines Branches
All files 67% 72% 63%
com.aws.greengrass.deployment.activator.DeploymentActivatorFactory 100% 100% 100%
com.aws.greengrass.deployment.activator.KernelUpdateActivator 60% 65% 55%
com.aws.greengrass.deployment.activator.DeploymentActivator 78% 81% 75%
com.aws.greengrass.deployment.activator.DefaultActivator 57% 53% 61%
com.aws.greengrass.authorization.AuthorizationIPCAgent$ValidateAuthorizationTokenOperationHandler 95% 90% 100%
com.aws.greengrass.authorization.AuthorizationPolicyParser$1 100% 100% 0%
com.aws.greengrass.authorization.AuthorizationPolicyParser$2 0% 0% 0%
com.aws.greengrass.authorization.WildcardTrie 97% 98% 95%
com.aws.greengrass.authorization.AuthorizationIPCAgent 100% 100% 0%
com.aws.greengrass.authorization.AuthorizationPolicyParser 84% 91% 77%
com.aws.greengrass.authorization.AuthorizationHandler$ResourceLookupPolicy 100% 100% 0%
com.aws.greengrass.authorization.AuthorizationHandler 86% 94% 78%
com.aws.greengrass.authorization.AuthorizationModule 96% 100% 93%
com.aws.greengrass.authorization.AuthorizationPolicy 100% 100% 0%
com.aws.greengrass.util.IotSdkClientFactory$EnvironmentStage 56% 63% 50%
com.aws.greengrass.util.IotSdkClientFactory 85% 88% 83%
com.aws.greengrass.util.RootCAUtils 59% 69% 50%
com.aws.greengrass.util.DependencyOrder 100% 100% 100%
com.aws.greengrass.util.SerializerFactory 100% 100% 0%
com.aws.greengrass.util.BaseRetryableAccessor 95% 90% 100%
com.aws.greengrass.util.CommitableWriter 47% 70% 25%
com.aws.greengrass.util.EncryptionUtils$PemWriter 100% 100% 100%
com.aws.greengrass.util.IamSdkClientFactory 100% 100% 0%
com.aws.greengrass.util.OrderedExecutorService$OrderedTask 81% 88% 75%
com.aws.greengrass.util.ProxyUtils 74% 74% 75%
com.aws.greengrass.util.FileSystemPermission$Option 100% 100% 0%
com.aws.greengrass.util.NucleusPaths 92% 92% 0%
com.aws.greengrass.util.Exec 62% 78% 46%
com.aws.greengrass.util.StsSdkClientFactory 100% 100% 0%
com.aws.greengrass.util.MqttChunkedPayloadPublisher 83% 72% 94%
com.aws.greengrass.util.LockFactory 77% 77% 0%
com.aws.greengrass.util.CommitableReader 66% 82% 50%
com.aws.greengrass.util.Utils$1 50% 50% 0%
com.aws.greengrass.util.Utils 80% 83% 76%
com.aws.greengrass.util.AppendableWriter 0% 0% 0%
com.aws.greengrass.util.Digest 83% 91% 75%
com.aws.greengrass.util.OrderedExecutorService 82% 81% 83%
com.aws.greengrass.util.CommitableFile 78% 85% 71%
com.aws.greengrass.util.RetryUtils$DifferentiatedRetryConfig 100% 100% 0%
com.aws.greengrass.util.Coerce 93% 94% 92%
com.aws.greengrass.util.BatchedSubscriber 87% 100% 75%
com.aws.greengrass.util.LockScope 100% 100% 0%
com.aws.greengrass.util.Exec$Copier 86% 91% 82%
com.aws.greengrass.util.S3SdkClientFactory 92% 100% 85%
com.aws.greengrass.util.LoaderLogsSummarizer 0% 0% 0%
com.aws.greengrass.util.DefaultConcurrentHashMap 100% 100% 100%
com.aws.greengrass.util.Coerce$1 100% 100% 0%
com.aws.greengrass.util.GreengrassServiceClientFactory$1 0% 0% 0%
com.aws.greengrass.util.RegionUtils 46% 46% 0%
com.aws.greengrass.util.RetryUtils 86% 92% 79%
com.aws.greengrass.util.Permissions 85% 98% 72%
com.aws.greengrass.util.EncryptionUtils 100% 100% 100%
com.aws.greengrass.util.GreengrassServiceClientFactory 23% 19% 26%
com.aws.greengrass.util.platforms.windows.WindowsPlatform$CmdDecorator 0% 0% 0%
com.aws.greengrass.util.platforms.windows.WindowsPlatform$WindowsFileSystemPermissionView 0% 0% 0%
com.aws.greengrass.util.platforms.windows.UserEnv 0% 0% 0%
com.aws.greengrass.util.platforms.windows.WindowsPlatform 0% 0% 0%
com.aws.greengrass.util.platforms.windows.WindowsPlatform$1 0% 0% 0%
com.aws.greengrass.util.platforms.windows.WindowsPlatform$2 0% 0% 0%
com.aws.greengrass.util.platforms.windows.WindowsExec 0% 0% 0%
com.aws.greengrass.util.platforms.windows.WindowsUserAttributes 0% 0% 0%
com.aws.greengrass.util.platforms.windows.UserEnv$PROFILEINFO 0% 0% 0%
com.aws.greengrass.util.platforms.windows.WindowsPlatform$RunasDecorator 0% 0% 0%
com.aws.greengrass.componentmanager.plugins.docker.DefaultDockerClient 1% 1% 0%
com.aws.greengrass.componentmanager.plugins.docker.EcrAccessor 63% 63% 0%
com.aws.greengrass.componentmanager.plugins.docker.DockerImageDownloader 79% 77% 81%
com.aws.greengrass.componentmanager.plugins.docker.Image 66% 66% 0%
com.aws.greengrass.componentmanager.plugins.docker.Registry$RegistrySource 100% 100% 0%
com.aws.greengrass.componentmanager.plugins.docker.Registry$RegistryType 100% 100% 0%
com.aws.greengrass.componentmanager.plugins.docker.Registry$Credentials 75% 75% 0%
com.aws.greengrass.componentmanager.plugins.docker.DockerApplicationManagerService 0% 0% 0%
com.aws.greengrass.componentmanager.plugins.docker.Registry 75% 100% 50%
com.aws.greengrass.componentmanager.plugins.docker.DockerImageArtifactParser 97% 98% 96%
com.aws.greengrass.builtin.services.mqttproxy.MqttProxyIPCAgent 88% 91% 85%
com.aws.greengrass.builtin.services.mqttproxy.MqttProxyIPCAgent$1 100% 100% 0%
com.aws.greengrass.builtin.services.mqttproxy.MqttProxyIPCAgent$PublishToIoTCoreOperationHandler 56% 76% 37%
com.aws.greengrass.builtin.services.mqttproxy.MqttProxyIPCAgent$SubscribeToIoTCoreConnectionStatusOperationHandler 78% 86% 70%
com.aws.greengrass.builtin.services.mqttproxy.MqttProxyIPCAgent$SubscribeToIoTCoreOperationHandler 44% 53% 35%
com.aws.greengrass.mqttclient.v5.PubAck 81% 100% 62%
com.aws.greengrass.mqttclient.v5.Subscribe 75% 100% 50%
com.aws.greengrass.mqttclient.v5.SubscribeResponse 83% 100% 66%
com.aws.greengrass.mqttclient.v5.Subscribe$RetainHandlingType 100% 100% 0%
com.aws.greengrass.mqttclient.v5.UnsubscribeResponse 75% 100% 50%
com.aws.greengrass.mqttclient.v5.Publish$PayloadFormatIndicator 50% 50% 0%
com.aws.greengrass.mqttclient.v5.QOS 67% 84% 50%
com.aws.greengrass.mqttclient.v5.Publish 48% 59% 37%
com.aws.greengrass.builtin.services.telemetry.ComponentMetricIPCEventStreamAgent$PutComponentMetricOperationHandler 88% 88% 0%
com.aws.greengrass.builtin.services.telemetry.ComponentMetricIPCEventStreamAgent 87% 97% 76%
com.aws.greengrass.componentmanager.models.ComponentIdentifier 100% 100% 0%
com.aws.greengrass.componentmanager.models.ComponentMetadata 0% 0% 0%
com.aws.greengrass.componentmanager.models.PermissionType 58% 66% 50%
com.aws.greengrass.componentmanager.models.Permission 70% 100% 40%
com.aws.greengrass.componentmanager.models.ComponentRequirementIdentifier 0% 0% 0%
com.aws.greengrass.util.platforms.StubResourceController 20% 20% 0%
com.aws.greengrass.util.platforms.Platform$1 100% 100% 0%
com.aws.greengrass.util.platforms.UserDecorator 100% 100% 0%
com.aws.greengrass.util.platforms.Platform 66% 75% 58%
com.aws.greengrass.util.platforms.Platform$FileSystemPermissionView 100% 100% 0%
com.aws.greengrass.dependency.Context$Value 81% 87% 75%
com.aws.greengrass.dependency.EZPlugins 43% 51% 36%
com.aws.greengrass.dependency.Context 78% 83% 74%
com.aws.greengrass.dependency.InjectionActions 100% 100% 0%
com.aws.greengrass.dependency.State 51% 75% 28%
com.aws.greengrass.dependency.ComponentStatusCode 43% 64% 22%
com.aws.greengrass.dependency.Context$1 84% 69% 100%
com.aws.greengrass.mqttclient.spool.Spool 82% 89% 75%
com.aws.greengrass.mqttclient.spool.InMemorySpool 77% 77% 0%
com.aws.greengrass.mqttclient.spool.CloudMessageSpool 0% 0% 0%
com.aws.greengrass.mqttclient.spool.SpoolerStorageType 100% 100% 0%
com.aws.greengrass.componentmanager.KernelConfigResolver 83% 90% 77%
com.aws.greengrass.componentmanager.Unarchiver 3% 3% 0%
com.aws.greengrass.componentmanager.ClientConfigurationUtils 11% 15% 7%
com.aws.greengrass.componentmanager.ComponentStore 62% 65% 58%
com.aws.greengrass.componentmanager.ComponentServiceHelper 65% 80% 50%
com.aws.greengrass.componentmanager.DependencyResolver 96% 98% 94%
com.aws.greengrass.componentmanager.ComponentManager 72% 73% 70%
com.aws.greengrass.util.platforms.unix.UnixRunWithGenerator 79% 74% 84%
com.aws.greengrass.util.platforms.unix.UnixPlatform$ShDecorator 68% 87% 50%
com.aws.greengrass.util.platforms.unix.UnixUserAttributes 58% 66% 50%
com.aws.greengrass.util.platforms.unix.UnixPlatform$IdOption 100% 100% 0%
com.aws.greengrass.util.platforms.unix.UnixPlatform 36% 38% 35%
com.aws.greengrass.util.platforms.unix.UnixExec 42% 43% 40%
com.aws.greengrass.util.platforms.unix.UnixGroupAttributes 0% 0% 0%
com.aws.greengrass.util.platforms.unix.QNXPlatform 0% 0% 0%
com.aws.greengrass.util.platforms.unix.UnixPlatform$1 100% 100% 0%
com.aws.greengrass.util.platforms.unix.UnixPlatform$SudoDecorator 72% 86% 58%
com.aws.greengrass.util.platforms.unix.UnixPlatform$PosixFileSystemPermissionView 100% 100% 100%
com.aws.greengrass.util.platforms.unix.DarwinPlatform 0% 0% 0%
com.aws.greengrass.config.UpdateBehaviorTree$PrunedUpdateBehaviorTree 80% 80% 0%
com.aws.greengrass.config.Node 88% 89% 87%
com.aws.greengrass.config.PlatformResolver 72% 81% 62%
com.aws.greengrass.config.ConfigurationReader$1 100% 100% 0%
com.aws.greengrass.config.Configuration 80% 89% 72%
com.aws.greengrass.config.ConfigurationReader 90% 96% 84%
com.aws.greengrass.config.UpdateBehaviorTree 100% 100% 100%
com.aws.greengrass.config.Topic 76% 84% 68%
com.aws.greengrass.config.CaseInsensitiveString 65% 70% 60%
com.aws.greengrass.config.Topics 90% 92% 88%
com.aws.greengrass.config.ConfigurationReader$ConfigurationMode 100% 100% 0%
com.aws.greengrass.config.ConfigurationWriter 74% 77% 72%
com.aws.greengrass.config.WhatHappened 100% 100% 0%
com.aws.greengrass.config.UpdateBehaviorTree$UpdateBehavior 100% 100% 0%
com.aws.greengrass.iot.IotConnectionManager 45% 67% 22%
com.aws.greengrass.iot.IotCloudHelper 78% 90% 66%
com.aws.greengrass.iot.model.IotCloudResponse 100% 100% 0%
com.aws.greengrass.deployment.bootstrap.BootstrapTaskStatus 100% 100% 0%
com.aws.greengrass.deployment.bootstrap.BootstrapSuccessCode 83% 100% 66%
com.aws.greengrass.deployment.bootstrap.BootstrapManager 78% 82% 74%
com.aws.greengrass.deployment.bootstrap.BootstrapManager$1 100% 100% 0%
com.aws.greengrass.deployment.bootstrap.BootstrapTaskStatus$ExecutionStatus 100% 100% 0%
com.aws.greengrass.deployment.model.S3EndpointType 100% 100% 0%
com.aws.greengrass.deployment.model.FailureHandlingPolicy 100% 100% 0%
com.aws.greengrass.deployment.model.DeploymentTask 100% 100% 0%
com.aws.greengrass.deployment.model.RunWith 85% 95% 75%
com.aws.greengrass.deployment.model.DeploymentPackageConfiguration 57% 57% 0%
com.aws.greengrass.deployment.model.DeploymentDocument$SDKSerializer 100% 100% 0%
com.aws.greengrass.deployment.model.Deployment$DeploymentType 100% 100% 0%
com.aws.greengrass.deployment.model.Deployment 87% 100% 75%
com.aws.greengrass.deployment.model.Deployment$DeploymentStage 100% 100% 0%
com.aws.greengrass.deployment.model.DeploymentDocument$SDKDeserializer 80% 80% 0%
com.aws.greengrass.deployment.model.DeploymentTaskMetadata 100% 100% 0%
com.aws.greengrass.deployment.model.DeploymentDocument 100% 100% 100%
com.aws.greengrass.deployment.model.DeploymentResult$DeploymentStatus 100% 100% 0%
com.aws.greengrass.status.FleetStatusService 76% 84% 69%
com.aws.greengrass.status.FleetStatusService$1 100% 100% 0%
com.aws.greengrass.mqttclient.MqttClient$1 75% 100% 50%
com.aws.greengrass.mqttclient.MqttClient$2 100% 100% 0%
com.aws.greengrass.mqttclient.AwsIotMqtt5Client 50% 69% 32%
com.aws.greengrass.mqttclient.PublishRequest 70% 90% 50%
com.aws.greengrass.mqttclient.MqttClient 74% 81% 68%
com.aws.greengrass.mqttclient.WrapperMqttClientConnection 91% 82% 100%
com.aws.greengrass.mqttclient.AwsIotMqttClient 82% 89% 75%
com.aws.greengrass.mqttclient.AwsIotMqttClient$1 71% 93% 50%
com.aws.greengrass.mqttclient.CallbackEventManager 91% 92% 91%
com.aws.greengrass.mqttclient.IotCoreTopicValidator 89% 93% 85%
com.aws.greengrass.mqttclient.StandaloneMqttConnector 68% 77% 58%
com.aws.greengrass.mqttclient.MqttTopic 97% 94% 100%
com.aws.greengrass.mqttclient.AwsIotMqtt5Client$1 48% 68% 27%
com.aws.greengrass.mqttclient.IotCoreTopicValidator$Operation 100% 100% 0%
com.aws.greengrass.network.HttpClientProvider 50% 50% 0%
com.aws.greengrass.status.model.FleetStatusDetails 100% 100% 100%
com.aws.greengrass.status.model.OverallStatus 100% 100% 0%
com.aws.greengrass.status.model.Trigger 58% 80% 37%
com.aws.greengrass.status.model.MessageType 76% 85% 66%
com.aws.greengrass.deployment.errorcode.DeploymentErrorCode 100% 100% 0%
com.aws.greengrass.deployment.errorcode.DeploymentErrorCodeUtils 75% 79% 70%
com.aws.greengrass.deployment.errorcode.DeploymentErrorType 100% 100% 0%
com.aws.greengrass.tes.CredentialRequestHandler 83% 89% 77%
com.aws.greengrass.tes.CredentialRequestHandler$TESCache 100% 100% 0%
com.aws.greengrass.tes.HttpServerImpl 100% 100% 0%
com.aws.greengrass.tes.LazyCredentialProvider 12% 12% 0%
com.aws.greengrass.tes.TokenExchangeService 55% 67% 42%
com.aws.greengrass.componentmanager.converter.RecipeLoader 75% 88% 62%
com.aws.greengrass.componentmanager.converter.RecipeLoader$RecipeFormat 100% 100% 0%
com.aws.greengrass.lifecyclemanager.Periodicity 13% 16% 11%
com.aws.greengrass.lifecyclemanager.LogManagerHelper 100% 100% 0%
com.aws.greengrass.lifecyclemanager.UnloadableService 77% 71% 83%
com.aws.greengrass.lifecyclemanager.RunWithPathOwnershipHandler 100% 100% 100%
com.aws.greengrass.lifecyclemanager.KernelAlternatives 48% 50% 47%
com.aws.greengrass.lifecyclemanager.ShellRunner$Default 69% 74% 64%
com.aws.greengrass.lifecyclemanager.GreengrassService 77% 78% 75%
com.aws.greengrass.lifecyclemanager.Lifecycle$DesiredStateUpdatedEvent 100% 100% 0%
com.aws.greengrass.lifecyclemanager.GenericExternalService 45% 49% 40%
com.aws.greengrass.lifecyclemanager.GreengrassService$RunStatus 100% 100% 0%
com.aws.greengrass.lifecyclemanager.Lifecycle 76% 79% 74%
com.aws.greengrass.lifecyclemanager.Kernel 72% 75% 68%
com.aws.greengrass.lifecyclemanager.KernelMetricsEmitter 100% 100% 100%
com.aws.greengrass.lifecyclemanager.Lifecycle$StateEvent 100% 100% 0%
com.aws.greengrass.lifecyclemanager.KernelCommandLine 73% 77% 70%
com.aws.greengrass.lifecyclemanager.GenericExternalService$RunResult 100% 100% 0%
com.aws.greengrass.lifecyclemanager.Kernel$1 82% 100% 64%
com.aws.greengrass.lifecyclemanager.KernelLifecycle 83% 86% 81%
com.aws.greengrass.lifecyclemanager.PluginService 41% 50% 33%
com.aws.greengrass.lifecyclemanager.UpdateSystemPolicyService 7% 8% 6%
com.aws.greengrass.util.platforms.unix.linux.CgroupManager 70% 86% 55%
com.aws.greengrass.util.platforms.unix.linux.LinuxSystemResourceController 40% 44% 36%
com.aws.greengrass.util.platforms.unix.linux.LinuxPlatform 100% 100% 0%
com.aws.greengrass.util.platforms.unix.linux.CgroupV1 94% 94% 0%
com.aws.greengrass.util.platforms.unix.linux.CgroupV2 76% 92% 60%
com.aws.greengrass.deployment.converter.DeploymentDocumentConverter 77% 84% 70%
com.aws.greengrass.ipc.AuthenticationHandler 16% 25% 8%
com.aws.greengrass.ipc.IPCEventStreamService 65% 80% 50%
com.aws.greengrass.jna.Kernel32Ex 0% 0% 0%
com.aws.greengrass.builtin.services.configstore.ConfigStoreIPCEventStreamAgent$UpdateConfigurationOperationHandler 76% 73% 80%
com.aws.greengrass.builtin.services.configstore.ConfigStoreIPCEventStreamAgent 63% 77% 50%
com.aws.greengrass.builtin.services.configstore.ConfigStoreIPCEventStreamAgent$ConfigurationUpdateOperationHandler 69% 79% 59%
com.aws.greengrass.builtin.services.configstore.ConfigStoreIPCEventStreamAgent$GetConfigurationOperationHandler 76% 81% 71%
com.aws.greengrass.builtin.services.configstore.ConfigStoreIPCEventStreamAgent$SendConfigurationValidityReportOperationHandler 86% 90% 83%
com.aws.greengrass.builtin.services.configstore.ConfigStoreIPCEventStreamAgent$ValidateConfigurationUpdatesOperationHandler 85% 85% 0%
com.aws.greengrass.ipc.common.DefaultOperationHandler 0% 0% 0%
com.aws.greengrass.security.SecurityService$DefaultCryptoKeyProvider 96% 93% 100%
com.aws.greengrass.security.SecurityService 78% 76% 81%
com.aws.greengrass.provisioning.ProvisioningPluginFactory 0% 0% 0%
com.aws.greengrass.provisioning.ProvisioningConfigUpdateHelper 91% 100% 83%
com.aws.greengrass.componentmanager.builtins.GreengrassRepositoryDownloader 50% 61% 39%
com.aws.greengrass.componentmanager.builtins.S3Downloader 55% 60% 50%
com.aws.greengrass.componentmanager.builtins.ArtifactDownloaderFactory 79% 77% 80%
com.aws.greengrass.componentmanager.builtins.ArtifactDownloader 82% 83% 80%
com.aws.greengrass.builtin.services.lifecycle.LifecycleIPCEventStreamAgent$UpdateStateOperationHandler 90% 90% 0%
com.aws.greengrass.builtin.services.lifecycle.LifecycleIPCEventStreamAgent$DeferComponentUpdateHandler 77% 77% 0%
com.aws.greengrass.builtin.services.lifecycle.LifecycleIPCEventStreamAgent 31% 24% 37%
com.aws.greengrass.builtin.services.lifecycle.LifecycleIPCEventStreamAgent$SubscribeToComponentUpdateOperationHandler 73% 96% 50%
com.aws.greengrass.builtin.services.lifecycle.LifecycleIPCEventStreamAgent$PauseComponentHandler 89% 90% 87%
com.aws.greengrass.builtin.services.lifecycle.LifecycleIPCEventStreamAgent$ResumeComponentHandler 89% 90% 87%
com.aws.greengrass.builtin.services.pubsub.PubSubIPCEventStreamAgent$PublishToTopicOperationHandler 90% 80% 100%
com.aws.greengrass.builtin.services.pubsub.SubscriptionTrie 97% 98% 95%
com.aws.greengrass.builtin.services.pubsub.PubSubIPCEventStreamAgent 83% 92% 73%
com.aws.greengrass.builtin.services.pubsub.PubSubIPCEventStreamAgent$SubscribeToTopicOperationHandler 68% 68% 0%
com.aws.greengrass.telemetry.MetricsPayload 100% 100% 0%
com.aws.greengrass.telemetry.MetricsAggregator 87% 90% 83%
com.aws.greengrass.telemetry.MetricsAggregator$1 100% 100% 0%
com.aws.greengrass.telemetry.AggregatedMetric 100% 100% 0%
com.aws.greengrass.telemetry.TelemetryAgent 71% 77% 66%
com.aws.greengrass.telemetry.TelemetryConfiguration 52% 65% 40%
com.aws.greengrass.telemetry.PeriodicMetricsEmitter 100% 100% 0%
com.aws.greengrass.telemetry.TelemetryAgent$1 60% 60% 0%
com.aws.greengrass.telemetry.SystemMetricsEmitter 100% 100% 100%
com.aws.greengrass.deployment.DeploymentConfigMerger 87% 87% 87%
com.aws.greengrass.deployment.IotJobsHelper$IotJobsClientFactory 100% 100% 0%
com.aws.greengrass.deployment.DeploymentConfigMerger$AggregateServicesChangeManager 73% 71% 76%
com.aws.greengrass.deployment.DeviceConfiguration 73% 79% 67%
com.aws.greengrass.deployment.DeploymentDocumentDownloader 69% 80% 58%
com.aws.greengrass.deployment.DeploymentQueue 97% 100% 95%
com.aws.greengrass.deployment.DeploymentService 59% 68% 49%
com.aws.greengrass.deployment.EndpointSwitchState 95% 100% 91%
com.aws.greengrass.deployment.IotJobsHelper$LatestQueuedJobs 69% 69% 70%
com.aws.greengrass.deployment.KernelUpdateDeploymentTask 70% 83% 57%
com.aws.greengrass.deployment.DynamicComponentConfigurationValidator 84% 94% 75%
com.aws.greengrass.deployment.DefaultDeploymentTask 66% 77% 56%
com.aws.greengrass.deployment.DeploymentDirectoryManager 71% 86% 56%
com.aws.greengrass.deployment.IotJobsHelper$WrapperMqttConnectionFactory 100% 100% 0%
com.aws.greengrass.deployment.IotJobsHelper 62% 70% 54%
com.aws.greengrass.deployment.IotJobsHelper$1 85% 85% 0%
com.aws.greengrass.deployment.EndpointSwitchPreflightValidator 73% 71% 75%
com.aws.greengrass.deployment.ThingGroupHelper 47% 61% 33%
com.aws.greengrass.deployment.ShadowDeploymentListener 37% 51% 22%
com.aws.greengrass.deployment.ShadowDeploymentListener$1 14% 14% 0%
com.aws.greengrass.deployment.DeploymentStatusKeeper 82% 93% 71%
com.aws.greengrass.deployment.IotJobsClientWrapper 15% 15% 0%
com.aws.greengrass.util.orchestration.SystemServiceUtilsFactory 0% 0% 0%
com.aws.greengrass.util.orchestration.ProcdUtils 0% 0% 0%
com.aws.greengrass.util.orchestration.SystemServiceUtils 0% 0% 0%
com.aws.greengrass.util.orchestration.InitUtils 0% 0% 0%
com.aws.greengrass.util.orchestration.SystemdUtils 0% 0% 0%
com.aws.greengrass.util.orchestration.WinswUtils 0% 0% 0%
com.aws.greengrass.testing.TestFeatureParameters 83% 100% 66%
com.aws.greengrass.testing.TestFeatureParameters$1 100% 100% 0%
com.aws.greengrass.ipc.modules.PubSubIPCService 68% 68% 0%
com.aws.greengrass.ipc.modules.AuthorizationService 75% 75% 0%
com.aws.greengrass.ipc.modules.ComponentMetricIPCService 69% 69% 0%
com.aws.greengrass.ipc.modules.MqttProxyIPCService 62% 62% 0%
com.aws.greengrass.ipc.modules.LifecycleIPCService 86% 86% 0%
com.aws.greengrass.ipc.modules.ConfigStoreIPCService 66% 66% 0%
com.aws.greengrass.easysetup.GreengrassSetup 75% 74% 76%
com.aws.greengrass.easysetup.DeviceProvisioningHelper 69% 77% 62%

Minimum allowed coverage is 65%

Generated by 🐒 cobertura-action against eb5d231

@github-actions

Copy link
Copy Markdown

Integration Tests Coverage Report

File Coverage Lines Branches
All files 52% 56% 48%
com.aws.greengrass.deployment.activator.DeploymentActivatorFactory 100% 100% 100%
com.aws.greengrass.deployment.activator.KernelUpdateActivator 25% 29% 22%
com.aws.greengrass.deployment.activator.DeploymentActivator 79% 84% 75%
com.aws.greengrass.deployment.activator.DefaultActivator 70% 80% 61%
com.aws.greengrass.authorization.AuthorizationIPCAgent$ValidateAuthorizationTokenOperationHandler 48% 47% 50%
com.aws.greengrass.authorization.AuthorizationPolicyParser$1 100% 100% 0%
com.aws.greengrass.authorization.AuthorizationPolicyParser$2 0% 0% 0%
com.aws.greengrass.authorization.WildcardTrie 74% 79% 70%
com.aws.greengrass.authorization.AuthorizationIPCAgent 100% 100% 0%
com.aws.greengrass.authorization.AuthorizationPolicyParser 76% 80% 72%
com.aws.greengrass.authorization.AuthorizationHandler$ResourceLookupPolicy 100% 100% 0%
com.aws.greengrass.authorization.AuthorizationHandler 74% 74% 74%
com.aws.greengrass.authorization.AuthorizationModule 46% 59% 33%
com.aws.greengrass.authorization.AuthorizationPolicy 0% 0% 0%
com.aws.greengrass.util.IotSdkClientFactory$EnvironmentStage 0% 0% 0%
com.aws.greengrass.util.IotSdkClientFactory 0% 0% 0%
com.aws.greengrass.util.RootCAUtils 0% 0% 0%
com.aws.greengrass.util.DependencyOrder 100% 100% 100%
com.aws.greengrass.util.SerializerFactory 100% 100% 0%
com.aws.greengrass.util.BaseRetryableAccessor 0% 0% 0%
com.aws.greengrass.util.CommitableWriter 47% 70% 25%
com.aws.greengrass.util.EncryptionUtils$PemWriter 0% 0% 0%
com.aws.greengrass.util.IamSdkClientFactory 0% 0% 0%
com.aws.greengrass.util.OrderedExecutorService$OrderedTask 45% 66% 25%
com.aws.greengrass.util.ProxyUtils 25% 29% 20%
com.aws.greengrass.util.FileSystemPermission$Option 100% 100% 0%
com.aws.greengrass.util.NucleusPaths 100% 100% 0%
com.aws.greengrass.util.Exec 70% 85% 56%
com.aws.greengrass.util.StsSdkClientFactory 0% 0% 0%
com.aws.greengrass.util.MqttChunkedPayloadPublisher 35% 42% 27%
com.aws.greengrass.util.LockFactory 77% 77% 0%
com.aws.greengrass.util.CommitableReader 0% 0% 0%
com.aws.greengrass.util.Utils$1 87% 100% 75%
com.aws.greengrass.util.Utils 55% 60% 51%
com.aws.greengrass.util.AppendableWriter 0% 0% 0%
com.aws.greengrass.util.Digest 66% 83% 50%
com.aws.greengrass.util.OrderedExecutorService 63% 77% 50%
com.aws.greengrass.util.CommitableFile 65% 73% 57%
com.aws.greengrass.util.RetryUtils$DifferentiatedRetryConfig 60% 60% 0%
com.aws.greengrass.util.Coerce 59% 64% 53%
com.aws.greengrass.util.BatchedSubscriber 59% 68% 50%
com.aws.greengrass.util.LockScope 100% 100% 0%
com.aws.greengrass.util.Exec$Copier 86% 91% 82%
com.aws.greengrass.util.S3SdkClientFactory 38% 38% 0%
com.aws.greengrass.util.LoaderLogsSummarizer 0% 0% 0%
com.aws.greengrass.util.DefaultConcurrentHashMap 100% 100% 100%
com.aws.greengrass.util.Coerce$1 0% 0% 0%
com.aws.greengrass.util.GreengrassServiceClientFactory$1 0% 0% 0%
com.aws.greengrass.util.RegionUtils 0% 0% 0%
com.aws.greengrass.util.RetryUtils 24% 35% 12%
com.aws.greengrass.util.Permissions 72% 89% 54%
com.aws.greengrass.util.EncryptionUtils 0% 0% 0%
com.aws.greengrass.util.GreengrassServiceClientFactory 46% 32% 61%
com.aws.greengrass.util.platforms.windows.WindowsPlatform$CmdDecorator 0% 0% 0%
com.aws.greengrass.util.platforms.windows.WindowsPlatform$WindowsFileSystemPermissionView 0% 0% 0%
com.aws.greengrass.util.platforms.windows.UserEnv 0% 0% 0%
com.aws.greengrass.util.platforms.windows.WindowsPlatform 0% 0% 0%
com.aws.greengrass.util.platforms.windows.WindowsPlatform$1 0% 0% 0%
com.aws.greengrass.util.platforms.windows.WindowsPlatform$2 0% 0% 0%
com.aws.greengrass.util.platforms.windows.WindowsExec 0% 0% 0%
com.aws.greengrass.util.platforms.windows.WindowsUserAttributes 0% 0% 0%
com.aws.greengrass.util.platforms.windows.UserEnv$PROFILEINFO 0% 0% 0%
com.aws.greengrass.util.platforms.windows.WindowsPlatform$RunasDecorator 0% 0% 0%
com.aws.greengrass.componentmanager.plugins.docker.DefaultDockerClient 1% 1% 0%
com.aws.greengrass.componentmanager.plugins.docker.EcrAccessor 61% 72% 50%
com.aws.greengrass.componentmanager.plugins.docker.DockerImageDownloader 54% 61% 47%
com.aws.greengrass.componentmanager.plugins.docker.Image 66% 66% 0%
com.aws.greengrass.componentmanager.plugins.docker.Registry$RegistrySource 100% 100% 0%
com.aws.greengrass.componentmanager.plugins.docker.Registry$RegistryType 100% 100% 0%
com.aws.greengrass.componentmanager.plugins.docker.Registry$Credentials 75% 75% 0%
com.aws.greengrass.componentmanager.plugins.docker.DockerApplicationManagerService 0% 0% 0%
com.aws.greengrass.componentmanager.plugins.docker.Registry 75% 100% 50%
com.aws.greengrass.componentmanager.plugins.docker.DockerImageArtifactParser 83% 88% 78%
com.aws.greengrass.builtin.services.mqttproxy.MqttProxyIPCAgent 42% 48% 35%
com.aws.greengrass.builtin.services.mqttproxy.MqttProxyIPCAgent$1 20% 20% 0%
com.aws.greengrass.builtin.services.mqttproxy.MqttProxyIPCAgent$PublishToIoTCoreOperationHandler 58% 78% 37%
com.aws.greengrass.builtin.services.mqttproxy.MqttProxyIPCAgent$SubscribeToIoTCoreConnectionStatusOperationHandler 0% 0% 0%
com.aws.greengrass.builtin.services.mqttproxy.MqttProxyIPCAgent$SubscribeToIoTCoreOperationHandler 42% 49% 35%
com.aws.greengrass.mqttclient.v5.PubAck 0% 0% 0%
com.aws.greengrass.mqttclient.v5.Subscribe 0% 0% 0%
com.aws.greengrass.mqttclient.v5.SubscribeResponse 0% 0% 0%
com.aws.greengrass.mqttclient.v5.Subscribe$RetainHandlingType 87% 87% 0%
com.aws.greengrass.mqttclient.v5.UnsubscribeResponse 0% 0% 0%
com.aws.greengrass.mqttclient.v5.Publish$PayloadFormatIndicator 50% 50% 0%
com.aws.greengrass.mqttclient.v5.QOS 50% 76% 25%
com.aws.greengrass.mqttclient.v5.Publish 29% 34% 25%
com.aws.greengrass.builtin.services.telemetry.ComponentMetricIPCEventStreamAgent$PutComponentMetricOperationHandler 0% 0% 0%
com.aws.greengrass.builtin.services.telemetry.ComponentMetricIPCEventStreamAgent 16% 16% 0%
com.aws.greengrass.componentmanager.models.ComponentIdentifier 75% 75% 0%
com.aws.greengrass.componentmanager.models.ComponentMetadata 0% 0% 0%
com.aws.greengrass.componentmanager.models.PermissionType 58% 66% 50%
com.aws.greengrass.componentmanager.models.Permission 79% 100% 59%
com.aws.greengrass.componentmanager.models.ComponentRequirementIdentifier 0% 0% 0%
com.aws.greengrass.util.platforms.StubResourceController 20% 20% 0%
com.aws.greengrass.util.platforms.Platform$1 100% 100% 0%
com.aws.greengrass.util.platforms.UserDecorator 100% 100% 0%
com.aws.greengrass.util.platforms.Platform 80% 90% 70%
com.aws.greengrass.util.platforms.Platform$FileSystemPermissionView 100% 100% 0%
com.aws.greengrass.dependency.Context$Value 77% 84% 70%
com.aws.greengrass.dependency.EZPlugins 61% 68% 54%
com.aws.greengrass.dependency.Context 76% 83% 70%
com.aws.greengrass.dependency.InjectionActions 100% 100% 0%
com.aws.greengrass.dependency.State 57% 82% 32%
com.aws.greengrass.dependency.ComponentStatusCode 55% 73% 36%
com.aws.greengrass.dependency.Context$1 84% 69% 100%
com.aws.greengrass.mqttclient.spool.Spool 23% 36% 10%
com.aws.greengrass.mqttclient.spool.InMemorySpool 44% 44% 0%
com.aws.greengrass.mqttclient.spool.CloudMessageSpool 0% 0% 0%
com.aws.greengrass.mqttclient.spool.SpoolerStorageType 100% 100% 0%
com.aws.greengrass.componentmanager.KernelConfigResolver 76% 84% 69%
com.aws.greengrass.componentmanager.Unarchiver 72% 87% 58%
com.aws.greengrass.componentmanager.ClientConfigurationUtils 0% 0% 0%
com.aws.greengrass.componentmanager.ComponentStore 46% 48% 45%
com.aws.greengrass.componentmanager.ComponentServiceHelper 33% 52% 14%
com.aws.greengrass.componentmanager.DependencyResolver 60% 66% 53%
com.aws.greengrass.componentmanager.ComponentManager 65% 61% 69%
com.aws.greengrass.util.platforms.unix.UnixRunWithGenerator 63% 61% 65%
com.aws.greengrass.util.platforms.unix.UnixPlatform$ShDecorator 75% 100% 50%
com.aws.greengrass.util.platforms.unix.UnixUserAttributes 75% 100% 50%
com.aws.greengrass.util.platforms.unix.UnixPlatform$IdOption 100% 100% 0%
com.aws.greengrass.util.platforms.unix.UnixPlatform 64% 60% 67%
com.aws.greengrass.util.platforms.unix.UnixExec 75% 81% 68%
com.aws.greengrass.util.platforms.unix.UnixGroupAttributes 100% 100% 0%
com.aws.greengrass.util.platforms.unix.QNXPlatform 0% 0% 0%
com.aws.greengrass.util.platforms.unix.UnixPlatform$1 0% 0% 0%
com.aws.greengrass.util.platforms.unix.UnixPlatform$SudoDecorator 76% 89% 62%
com.aws.greengrass.util.platforms.unix.UnixPlatform$PosixFileSystemPermissionView 87% 91% 83%
com.aws.greengrass.util.platforms.unix.DarwinPlatform 0% 0% 0%
com.aws.greengrass.config.UpdateBehaviorTree$PrunedUpdateBehaviorTree 80% 80% 0%
com.aws.greengrass.config.Node 78% 80% 77%
com.aws.greengrass.config.PlatformResolver 38% 48% 27%
com.aws.greengrass.config.ConfigurationReader$1 100% 100% 0%
com.aws.greengrass.config.Configuration 65% 81% 50%
com.aws.greengrass.config.ConfigurationReader 66% 76% 57%
com.aws.greengrass.config.UpdateBehaviorTree 100% 100% 100%
com.aws.greengrass.config.Topic 67% 73% 62%
com.aws.greengrass.config.CaseInsensitiveString 65% 70% 60%
com.aws.greengrass.config.Topics 70% 75% 64%
com.aws.greengrass.config.ConfigurationReader$ConfigurationMode 100% 100% 0%
com.aws.greengrass.config.ConfigurationWriter 75% 73% 77%
com.aws.greengrass.config.WhatHappened 100% 100% 0%
com.aws.greengrass.config.UpdateBehaviorTree$UpdateBehavior 100% 100% 0%
com.aws.greengrass.iot.IotConnectionManager 42% 46% 38%
com.aws.greengrass.iot.IotCloudHelper 0% 0% 0%
com.aws.greengrass.iot.model.IotCloudResponse 0% 0% 0%
com.aws.greengrass.deployment.bootstrap.BootstrapTaskStatus 100% 100% 0%
com.aws.greengrass.deployment.bootstrap.BootstrapSuccessCode 0% 0% 0%
com.aws.greengrass.deployment.bootstrap.BootstrapManager 59% 65% 54%
com.aws.greengrass.deployment.bootstrap.BootstrapManager$1 0% 0% 0%
com.aws.greengrass.deployment.bootstrap.BootstrapTaskStatus$ExecutionStatus 100% 100% 0%
com.aws.greengrass.deployment.model.S3EndpointType 0% 0% 0%
com.aws.greengrass.deployment.model.FailureHandlingPolicy 100% 100% 0%
com.aws.greengrass.deployment.model.DeploymentTask 100% 100% 0%
com.aws.greengrass.deployment.model.RunWith 70% 91% 50%
com.aws.greengrass.deployment.model.DeploymentPackageConfiguration 21% 21% 0%
com.aws.greengrass.deployment.model.DeploymentDocument$SDKSerializer 100% 100% 0%
com.aws.greengrass.deployment.model.Deployment$DeploymentType 100% 100% 0%
com.aws.greengrass.deployment.model.Deployment 72% 70% 75%
com.aws.greengrass.deployment.model.Deployment$DeploymentStage 100% 100% 0%
com.aws.greengrass.deployment.model.DeploymentDocument$SDKDeserializer 20% 20% 0%
com.aws.greengrass.deployment.model.DeploymentTaskMetadata 100% 100% 0%
com.aws.greengrass.deployment.model.DeploymentDocument 91% 100% 83%
com.aws.greengrass.deployment.model.DeploymentResult$DeploymentStatus 100% 100% 0%
com.aws.greengrass.status.FleetStatusService 83% 90% 75%
com.aws.greengrass.status.FleetStatusService$1 16% 16% 0%
com.aws.greengrass.mqttclient.MqttClient$1 12% 12% 0%
com.aws.greengrass.mqttclient.MqttClient$2 100% 100% 0%
com.aws.greengrass.mqttclient.AwsIotMqtt5Client 34% 43% 25%
com.aws.greengrass.mqttclient.PublishRequest 70% 90% 50%
com.aws.greengrass.mqttclient.MqttClient 39% 46% 31%
com.aws.greengrass.mqttclient.WrapperMqttClientConnection 90% 80% 100%
com.aws.greengrass.mqttclient.AwsIotMqttClient 0% 0% 0%
com.aws.greengrass.mqttclient.AwsIotMqttClient$1 0% 0% 0%
com.aws.greengrass.mqttclient.CallbackEventManager 32% 48% 16%
com.aws.greengrass.mqttclient.IotCoreTopicValidator 61% 60% 62%
com.aws.greengrass.mqttclient.StandaloneMqttConnector 0% 0% 0%
com.aws.greengrass.mqttclient.MqttTopic 0% 0% 0%
com.aws.greengrass.mqttclient.AwsIotMqtt5Client$1 12% 19% 5%
com.aws.greengrass.mqttclient.IotCoreTopicValidator$Operation 100% 100% 0%
com.aws.greengrass.network.HttpClientProvider 50% 50% 0%
com.aws.greengrass.status.model.FleetStatusDetails 100% 100% 100%
com.aws.greengrass.status.model.OverallStatus 100% 100% 0%
com.aws.greengrass.status.model.Trigger 62% 86% 37%
com.aws.greengrass.status.model.MessageType 76% 85% 66%
com.aws.greengrass.deployment.errorcode.DeploymentErrorCode 100% 100% 0%
com.aws.greengrass.deployment.errorcode.DeploymentErrorCodeUtils 37% 44% 29%
com.aws.greengrass.deployment.errorcode.DeploymentErrorType 100% 100% 0%
com.aws.greengrass.tes.CredentialRequestHandler 0% 0% 0%
com.aws.greengrass.tes.CredentialRequestHandler$TESCache 0% 0% 0%
com.aws.greengrass.tes.HttpServerImpl 0% 0% 0%
com.aws.greengrass.tes.LazyCredentialProvider 12% 12% 0%
com.aws.greengrass.tes.TokenExchangeService 0% 0% 0%
com.aws.greengrass.componentmanager.converter.RecipeLoader 72% 86% 59%
com.aws.greengrass.componentmanager.converter.RecipeLoader$RecipeFormat 100% 100% 0%
com.aws.greengrass.lifecyclemanager.Periodicity 55% 64% 47%
com.aws.greengrass.lifecyclemanager.LogManagerHelper 100% 100% 0%
com.aws.greengrass.lifecyclemanager.UnloadableService 25% 25% 0%
com.aws.greengrass.lifecyclemanager.RunWithPathOwnershipHandler 89% 96% 83%
com.aws.greengrass.lifecyclemanager.KernelAlternatives 16% 19% 14%
com.aws.greengrass.lifecyclemanager.ShellRunner$Default 73% 76% 71%
com.aws.greengrass.lifecyclemanager.GreengrassService 89% 89% 88%
com.aws.greengrass.lifecyclemanager.Lifecycle$DesiredStateUpdatedEvent 100% 100% 0%
com.aws.greengrass.lifecyclemanager.GenericExternalService 71% 77% 65%
com.aws.greengrass.lifecyclemanager.GreengrassService$RunStatus 100% 100% 0%
com.aws.greengrass.lifecyclemanager.Lifecycle 81% 83% 80%
com.aws.greengrass.lifecyclemanager.Kernel 58% 57% 58%
com.aws.greengrass.lifecyclemanager.KernelMetricsEmitter 100% 100% 100%
com.aws.greengrass.lifecyclemanager.Lifecycle$StateEvent 100% 100% 0%
com.aws.greengrass.lifecyclemanager.KernelCommandLine 56% 61% 51%
com.aws.greengrass.lifecyclemanager.GenericExternalService$RunResult 100% 100% 0%
com.aws.greengrass.lifecyclemanager.Kernel$1 0% 0% 0%
com.aws.greengrass.lifecyclemanager.KernelLifecycle 77% 78% 76%
com.aws.greengrass.lifecyclemanager.PluginService 67% 68% 66%
com.aws.greengrass.lifecyclemanager.UpdateSystemPolicyService 84% 84% 83%
com.aws.greengrass.util.platforms.unix.linux.CgroupManager 73% 86% 60%
com.aws.greengrass.util.platforms.unix.linux.LinuxSystemResourceController 69% 73% 65%
com.aws.greengrass.util.platforms.unix.linux.LinuxPlatform 100% 100% 0%
com.aws.greengrass.util.platforms.unix.linux.CgroupV1 0% 0% 0%
com.aws.greengrass.util.platforms.unix.linux.CgroupV2 74% 89% 60%
com.aws.greengrass.deployment.converter.DeploymentDocumentConverter 72% 79% 65%
com.aws.greengrass.ipc.AuthenticationHandler 30% 35% 25%
com.aws.greengrass.ipc.IPCEventStreamService 73% 80% 66%
com.aws.greengrass.jna.Kernel32Ex 0% 0% 0%
com.aws.greengrass.builtin.services.configstore.ConfigStoreIPCEventStreamAgent$UpdateConfigurationOperationHandler 68% 73% 63%
com.aws.greengrass.builtin.services.configstore.ConfigStoreIPCEventStreamAgent 78% 81% 75%
com.aws.greengrass.builtin.services.configstore.ConfigStoreIPCEventStreamAgent$ConfigurationUpdateOperationHandler 76% 90% 62%
com.aws.greengrass.builtin.services.configstore.ConfigStoreIPCEventStreamAgent$GetConfigurationOperationHandler 67% 78% 57%
com.aws.greengrass.builtin.services.configstore.ConfigStoreIPCEventStreamAgent$SendConfigurationValidityReportOperationHandler 78% 90% 66%
com.aws.greengrass.builtin.services.configstore.ConfigStoreIPCEventStreamAgent$ValidateConfigurationUpdatesOperationHandler 95% 95% 0%
com.aws.greengrass.ipc.common.DefaultOperationHandler 0% 0% 0%
com.aws.greengrass.security.SecurityService$DefaultCryptoKeyProvider 24% 23% 25%
com.aws.greengrass.security.SecurityService 38% 51% 25%
com.aws.greengrass.provisioning.ProvisioningPluginFactory 100% 100% 0%
com.aws.greengrass.provisioning.ProvisioningConfigUpdateHelper 75% 100% 50%
com.aws.greengrass.componentmanager.builtins.GreengrassRepositoryDownloader 0% 0% 0%
com.aws.greengrass.componentmanager.builtins.S3Downloader 10% 17% 3%
com.aws.greengrass.componentmanager.builtins.ArtifactDownloaderFactory 52% 63% 42%
com.aws.greengrass.componentmanager.builtins.ArtifactDownloader 16% 21% 11%
com.aws.greengrass.builtin.services.lifecycle.LifecycleIPCEventStreamAgent$UpdateStateOperationHandler 60% 60% 0%
com.aws.greengrass.builtin.services.lifecycle.LifecycleIPCEventStreamAgent$DeferComponentUpdateHandler 88% 88% 0%
com.aws.greengrass.builtin.services.lifecycle.LifecycleIPCEventStreamAgent 59% 61% 56%
com.aws.greengrass.builtin.services.lifecycle.LifecycleIPCEventStreamAgent$SubscribeToComponentUpdateOperationHandler 57% 64% 50%
com.aws.greengrass.builtin.services.lifecycle.LifecycleIPCEventStreamAgent$PauseComponentHandler 56% 62% 50%
com.aws.greengrass.builtin.services.lifecycle.LifecycleIPCEventStreamAgent$ResumeComponentHandler 56% 62% 50%
com.aws.greengrass.builtin.services.pubsub.PubSubIPCEventStreamAgent$PublishToTopicOperationHandler 70% 90% 50%
com.aws.greengrass.builtin.services.pubsub.SubscriptionTrie 70% 76% 64%
com.aws.greengrass.builtin.services.pubsub.PubSubIPCEventStreamAgent 66% 73% 58%
com.aws.greengrass.builtin.services.pubsub.PubSubIPCEventStreamAgent$SubscribeToTopicOperationHandler 97% 94% 100%
com.aws.greengrass.telemetry.MetricsPayload 0% 0% 0%
com.aws.greengrass.telemetry.MetricsAggregator 43% 49% 38%
com.aws.greengrass.telemetry.MetricsAggregator$1 0% 0% 0%
com.aws.greengrass.telemetry.AggregatedMetric 33% 33% 0%
com.aws.greengrass.telemetry.TelemetryAgent 58% 70% 46%
com.aws.greengrass.telemetry.TelemetryConfiguration 30% 51% 10%
com.aws.greengrass.telemetry.PeriodicMetricsEmitter 100% 100% 0%
com.aws.greengrass.telemetry.TelemetryAgent$1 20% 20% 0%
com.aws.greengrass.telemetry.SystemMetricsEmitter 100% 100% 100%
com.aws.greengrass.deployment.DeploymentConfigMerger 69% 69% 68%
com.aws.greengrass.deployment.IotJobsHelper$IotJobsClientFactory 100% 100% 0%
com.aws.greengrass.deployment.DeploymentConfigMerger$AggregateServicesChangeManager 77% 74% 80%
com.aws.greengrass.deployment.DeviceConfiguration 69% 73% 65%
com.aws.greengrass.deployment.DeploymentDocumentDownloader 14% 14% 0%
com.aws.greengrass.deployment.DeploymentQueue 61% 68% 55%
com.aws.greengrass.deployment.DeploymentService 69% 70% 68%
com.aws.greengrass.deployment.EndpointSwitchState 29% 41% 16%
com.aws.greengrass.deployment.IotJobsHelper$LatestQueuedJobs 19% 19% 0%
com.aws.greengrass.deployment.KernelUpdateDeploymentTask 18% 28% 7%
com.aws.greengrass.deployment.DynamicComponentConfigurationValidator 85% 82% 87%
com.aws.greengrass.deployment.DefaultDeploymentTask 68% 76% 61%
com.aws.greengrass.deployment.DeploymentDirectoryManager 64% 78% 50%
com.aws.greengrass.deployment.IotJobsHelper$WrapperMqttConnectionFactory 100% 100% 0%
com.aws.greengrass.deployment.IotJobsHelper 33% 40% 26%
com.aws.greengrass.deployment.IotJobsHelper$1 14% 14% 0%
com.aws.greengrass.deployment.EndpointSwitchPreflightValidator 10% 10% 0%
com.aws.greengrass.deployment.ThingGroupHelper 27% 38% 16%
com.aws.greengrass.deployment.ShadowDeploymentListener 42% 51% 33%
com.aws.greengrass.deployment.ShadowDeploymentListener$1 14% 14% 0%
com.aws.greengrass.deployment.DeploymentStatusKeeper 81% 91% 71%
com.aws.greengrass.deployment.IotJobsClientWrapper 35% 41% 30%
com.aws.greengrass.util.orchestration.SystemServiceUtilsFactory 0% 0% 0%
com.aws.greengrass.util.orchestration.ProcdUtils 0% 0% 0%
com.aws.greengrass.util.orchestration.SystemServiceUtils 0% 0% 0%
com.aws.greengrass.util.orchestration.InitUtils 0% 0% 0%
com.aws.greengrass.util.orchestration.SystemdUtils 0% 0% 0%
com.aws.greengrass.util.orchestration.WinswUtils 0% 0% 0%
com.aws.greengrass.testing.TestFeatureParameters 83% 100% 66%
com.aws.greengrass.testing.TestFeatureParameters$1 100% 100% 0%
com.aws.greengrass.ipc.modules.PubSubIPCService 81% 81% 0%
com.aws.greengrass.ipc.modules.AuthorizationService 100% 100% 0%
com.aws.greengrass.ipc.modules.ComponentMetricIPCService 69% 69% 0%
com.aws.greengrass.ipc.modules.MqttProxyIPCService 75% 75% 0%
com.aws.greengrass.ipc.modules.LifecycleIPCService 86% 86% 0%
com.aws.greengrass.ipc.modules.ConfigStoreIPCService 100% 100% 0%
com.aws.greengrass.easysetup.GreengrassSetup 0% 0% 0%
com.aws.greengrass.easysetup.DeviceProvisioningHelper 0% 0% 0%

Minimum allowed coverage is 58%

Generated by 🐒 cobertura-action against eb5d231

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant