aws-greengrass / aws-greengrass-client-device-auth

Apache License 2.0
2 stars 3 forks source link

fix(uat): switch from in-files to in-memory persistence module in paho-java #386

Closed bgklika closed 1 year ago

bgklika commented 1 year ago

Issue #, if available: Paho Java - exception when publishing during disconnect

Description of changes:

Why is this change necessary: Seems in-file persistence module of paho-java library has a bug and throws an exception when we created second connection with the same MQTT client_id.

How was this change tested: Manually by run modified Control app where second connection is established.

Test results: For MQTT v5.0: Control:

[INFO] --- exec-maven-plugin:3.1.0:java (default-cli) @ aws-greengrass-testing-mqtt-client-control ---
[INFO ] 2023-08-01 15:25:42.880 [com.aws.greengrass.testing.mqtt.client.control.ExampleControl.main()] ExampleControl - Control: port 47619, with TLS, MQTT v5
[INFO ] 2023-08-01 15:25:43.143 [com.aws.greengrass.testing.mqtt.client.control.ExampleControl.main()] EngineControlImpl - MQTT client control gRPC server started, listening on 47619
[INFO ] 2023-08-01 15:27:07.662 [grpc-default-executor-0] GRPCDiscoveryServer - RegisterAgent: agentId paho-java-agent
[INFO ] 2023-08-01 15:27:07.723 [grpc-default-executor-0] GRPCDiscoveryServer - DiscoveryClient: agentId paho-java-agent address 127.0.0.1 port 35261
[INFO ] 2023-08-01 15:27:07.727 [grpc-default-executor-0] EngineControlImpl - Created new agent control for paho-java-agent on 127.0.0.1:35261
[INFO ] 2023-08-01 15:27:07.775 [grpc-default-executor-0] ExampleControl - Agent paho-java-agent is connected
[INFO ] 2023-08-01 15:27:07.778 [pool-2-thread-1] AgentTestScenario - Playing test scenario for agent id paho-java-agent
[INFO ] 2023-08-01 15:27:10.792 [pool-2-thread-1] AgentTestScenario - Set CONNECT user property: region, US
[INFO ] 2023-08-01 15:27:10.792 [pool-2-thread-1] AgentTestScenario - Set CONNECT user property: type, JSON
[INFO ] 2023-08-01 15:27:10.793 [pool-2-thread-1] AgentTestScenario - Set CONNECT request response information true
[INFO ] 2023-08-01 15:27:11.920 [pool-2-thread-1] AgentControlImpl - Created connection with id 1 CONNACK 'sessionPresent: false
receiveMaximum: 100
maximumQoS: 1
retainAvailable: true
maximumPacketSize: 149504
serverKeepAlive: 60
'
[INFO ] 2023-08-01 15:27:11.920 [pool-2-thread-1] AgentControlImpl - createMqttConnection: MQTT connectionId 1 created
[INFO ] 2023-08-01 15:27:11.921 [pool-2-thread-1] AgentTestScenario - MQTT connection #1 with id 1 is established
[INFO ] 2023-08-01 15:27:16.927 [pool-2-thread-1] AgentTestScenario - Set SUBSCRIBE user property: region, US
[INFO ] 2023-08-01 15:27:16.927 [pool-2-thread-1] AgentTestScenario - Set SUBSCRIBE user property: type, JSON
[INFO ] 2023-08-01 15:27:16.930 [pool-2-thread-1] AgentControlImpl - SubscribeMqtt: subscribe on connection 1
[INFO ] 2023-08-01 15:27:17.014 [pool-2-thread-1] AgentTestScenario - Subscribe response: connectionId 1 reason codes [0] reason string ''
[INFO ] 2023-08-01 15:27:27.020 [pool-2-thread-1] AgentTestScenario - Set PUBLISH payload format indicator true
[INFO ] 2023-08-01 15:27:27.020 [pool-2-thread-1] AgentTestScenario - Set PUBLISH message expiry interval 3600
[INFO ] 2023-08-01 15:27:27.020 [pool-2-thread-1] AgentTestScenario - Set PUBLISH response topic /thing1/response/topic
[INFO ] 2023-08-01 15:27:27.021 [pool-2-thread-1] AgentTestScenario - Set PUBLISH correlation data <ByteString@284044eb size=16 contents="correlation_data">
[INFO ] 2023-08-01 15:27:27.022 [pool-2-thread-1] AgentTestScenario - Set PUBLISH user property: region, US
[INFO ] 2023-08-01 15:27:27.022 [pool-2-thread-1] AgentTestScenario - Set PUBLISH user property: type, JSON
[INFO ] 2023-08-01 15:27:27.022 [pool-2-thread-1] AgentTestScenario - Set PUBLISH content type text/plain; charset=utf-8
[INFO ] 2023-08-01 15:27:27.024 [pool-2-thread-1] AgentControlImpl - PublishMqtt: publishing on connectionId 1 topic test/topic
[INFO ] 2023-08-01 15:27:27.071 [pool-2-thread-1] AgentTestScenario - Published connectionId 1 reason code 0 reason string ''
[INFO ] 2023-08-01 15:27:27.078 [grpc-default-executor-0] GRPCDiscoveryServer - OnReceiveMessage: agentId paho-java-agent connectionId 1 topic test/topic QoS 0
[INFO ] 2023-08-01 15:27:27.078 [grpc-default-executor-0] AgentTestScenario - Message received on agentId paho-java-agent connectionId 1 topic test/topic QoS 0 content <ByteString@614fbf66 size=12 contents="Hello World!">
[INFO ] 2023-08-01 15:27:27.079 [grpc-default-executor-0] AgentTestScenario - Message has payload format indicator true
[INFO ] 2023-08-01 15:27:27.079 [grpc-default-executor-0] AgentTestScenario - Message has message expiry interval 3599
[INFO ] 2023-08-01 15:27:27.079 [grpc-default-executor-0] AgentTestScenario - Message has response topic /thing1/response/topic
[INFO ] 2023-08-01 15:27:27.079 [grpc-default-executor-0] AgentTestScenario - Message has correlation data <ByteString@66001c51 size=16 contents="correlation_data">
[INFO ] 2023-08-01 15:27:27.079 [grpc-default-executor-0] AgentTestScenario - Message has user property key region value US
[INFO ] 2023-08-01 15:27:27.079 [grpc-default-executor-0] AgentTestScenario - Message has user property key type value JSON
[INFO ] 2023-08-01 15:27:27.079 [grpc-default-executor-0] AgentTestScenario - Message has content type 'text/plain; charset=utf-8'

[INFO ] 2023-08-01 15:27:32.072 [pool-2-thread-1] AgentTestScenario - Set CONNECT user property: region, US
[INFO ] 2023-08-01 15:27:32.072 [pool-2-thread-1] AgentTestScenario - Set CONNECT user property: type, JSON
[INFO ] 2023-08-01 15:27:32.073 [pool-2-thread-1] AgentTestScenario - Set CONNECT request response information true
[INFO ] 2023-08-01 15:27:32.683 [grpc-default-executor-0] GRPCDiscoveryServer - OnMqttDisconnect: agentId paho-java-agent connectionId 1 disconnect 'reasonCode: 142
' error ''
[INFO ] 2023-08-01 15:27:32.684 [grpc-default-executor-0] AgentTestScenario - MQTT disconnected on agentId paho-java-agent connectionId 1 disconnect 'reasonCode: 142
' error ''
[INFO ] 2023-08-01 15:27:32.692 [pool-2-thread-1] AgentControlImpl - Created connection with id 2 CONNACK 'sessionPresent: false
receiveMaximum: 100
maximumQoS: 1
retainAvailable: true
maximumPacketSize: 149504
serverKeepAlive: 60
'
[INFO ] 2023-08-01 15:27:32.692 [pool-2-thread-1] AgentControlImpl - createMqttConnection: MQTT connectionId 2 created
[INFO ] 2023-08-01 15:27:32.692 [pool-2-thread-1] AgentTestScenario - MQTT connection #2 with id 2 is established
[INFO ] 2023-08-01 15:27:42.693 [pool-2-thread-1] AgentTestScenario - Set PUBLISH payload format indicator true
[INFO ] 2023-08-01 15:27:42.694 [pool-2-thread-1] AgentTestScenario - Set PUBLISH message expiry interval 3600
[INFO ] 2023-08-01 15:27:42.694 [pool-2-thread-1] AgentTestScenario - Set PUBLISH response topic /thing1/response/topic
[INFO ] 2023-08-01 15:27:42.695 [pool-2-thread-1] AgentTestScenario - Set PUBLISH correlation data <ByteString@46be48e2 size=16 contents="correlation_data">
[INFO ] 2023-08-01 15:27:42.696 [pool-2-thread-1] AgentTestScenario - Set PUBLISH user property: region, US
[INFO ] 2023-08-01 15:27:42.696 [pool-2-thread-1] AgentTestScenario - Set PUBLISH user property: type, JSON
[INFO ] 2023-08-01 15:27:42.697 [pool-2-thread-1] AgentTestScenario - Set PUBLISH content type text/plain; charset=utf-8
[INFO ] 2023-08-01 15:27:42.698 [pool-2-thread-1] AgentControlImpl - PublishMqtt: publishing on connectionId 2 topic test/topic
[INFO ] 2023-08-01 15:27:42.741 [pool-2-thread-1] AgentTestScenario - Published connectionId 2 reason code 0 reason string ''
[INFO ] 2023-08-01 15:27:47.742 [pool-2-thread-1] AgentTestScenario - Set UNSUBSCRIBE user property: region, US
[INFO ] 2023-08-01 15:27:47.742 [pool-2-thread-1] AgentTestScenario - Set UNSUBSCRIBE user property: type, JSON
[INFO ] 2023-08-01 15:27:47.751 [pool-2-thread-1] AgentControlImpl - UnsubscribeMqtt: unsubscribe on connectionId 1
[ERROR] 2023-08-01 15:27:47.770 [pool-2-thread-1] AgentTestScenario - gRPC error code UNKNOWN: description: null
io.grpc.StatusRuntimeException: UNKNOWN
    at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:271) ~[grpc-stub-1.53.0.jar:1.53.0]
    at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:252) ~[grpc-stub-1.53.0.jar:1.53.0]
    at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:165) ~[grpc-stub-1.53.0.jar:1.53.0]
    at com.aws.greengrass.testing.mqtt.client.MqttClientControlGrpc$MqttClientControlBlockingStub.unsubscribeMqtt(MqttClientControlGrpc.java:521) ~[classes/:?]
    at com.aws.greengrass.testing.mqtt.client.control.implementation.AgentControlImpl.unsubscribeMqtt(AgentControlImpl.java:237) ~[classes/:?]
    at com.aws.greengrass.testing.mqtt.client.control.implementation.ConnectionControlImpl.unsubscribeMqtt(ConnectionControlImpl.java:137) ~[classes/:?]
    at com.aws.greengrass.testing.mqtt.client.control.AgentTestScenario.testUnsubscribe(AgentTestScenario.java:366) ~[classes/:?]
    at com.aws.greengrass.testing.mqtt.client.control.AgentTestScenario.run(AgentTestScenario.java:201) [classes/:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
    at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
    at java.lang.Thread.run(Thread.java:834) [?:?]
[INFO ] 2023-08-01 15:27:47.777 [pool-2-thread-1] AgentTestScenario - Set DISCONNECT user property: region, US
[INFO ] 2023-08-01 15:27:47.777 [pool-2-thread-1] AgentTestScenario - Set DISCONNECT user property: type, JSON
[INFO ] 2023-08-01 15:27:47.789 [pool-2-thread-1] AgentControlImpl - closeMqttConnection: MQTT connectionId 1 closed
[INFO ] 2023-08-01 15:27:47.789 [pool-2-thread-1] AgentTestScenario - Set DISCONNECT user property: region, US
[INFO ] 2023-08-01 15:27:47.789 [pool-2-thread-1] AgentTestScenario - Set DISCONNECT user property: type, JSON
[INFO ] 2023-08-01 15:27:47.910 [pool-2-thread-1] AgentControlImpl - closeMqttConnection: MQTT connectionId 2 closed
[INFO ] 2023-08-01 15:27:47.918 [pool-2-thread-1] AgentControlImpl - sending shutdown request
[INFO ] 2023-08-01 15:27:47.935 [pool-2-thread-1] AgentControlImpl - shutdown request sent successfully
[INFO ] 2023-08-01 15:27:47.968 [grpc-default-executor-0] GRPCDiscoveryServer - UnregisterAgent: agentId paho-java-agent reason Agent shutdown by OTF request 'That's it.'
[INFO ] 2023-08-01 15:27:47.968 [grpc-default-executor-0] AgentControlImpl - shutting down channel with agent id paho-java-agent
[INFO ] 2023-08-01 15:27:47.970 [grpc-default-executor-0] AgentControlImpl - channel terminated with agent id paho-java-agent
[INFO ] 2023-08-01 15:27:47.970 [grpc-default-executor-0] ExampleControl - Agent paho-java-agent is disconnected

Client:

[INFO] --- exec-maven-plugin:3.1.0:java (default-cli) @ client-devices-auth-uat-client-java-paho ---
[INFO ] 2023-08-01 15:27:07.201 [com.aws.greengrass.testing.mqtt5.client.Main.main()] GRPCLinkImpl - Making gPRC client connection with 127.0.0.1:47619 as paho-java-agent...
[INFO ] 2023-08-01 15:27:07.681 [com.aws.greengrass.testing.mqtt5.client.Main.main()] GRPCLinkImpl - Client connection with Control is established, local address is 127.0.0.1
[INFO ] 2023-08-01 15:27:07.719 [com.aws.greengrass.testing.mqtt5.client.Main.main()] GRPCControlServer - GRPCControlServer created and listed on 127.0.0.1:35261
[INFO ] 2023-08-01 15:27:07.804 [com.aws.greengrass.testing.mqtt5.client.Main.main()] GRPCLinkImpl - Handle gRPC requests
[INFO ] 2023-08-01 15:27:07.804 [com.aws.greengrass.testing.mqtt5.client.Main.main()] GRPCControlServer - Server awaitTermination
[INFO ] 2023-08-01 15:27:10.875 [grpc-default-executor-0] GRPCControlServer - createMqttConnection: clientId GGMQ-test-device2 broker a2rytmonq5cblh-ats.iot.eu-central-1.amazonaws.com:8883
[INFO ] 2023-08-01 15:27:11.283 [grpc-default-executor-0] MqttConnectionImpl - CONNECT Tx user property 'region':'US'
[INFO ] 2023-08-01 15:27:11.283 [grpc-default-executor-0] MqttConnectionImpl - CONNECT Tx user property 'type':'JSON'
[INFO ] 2023-08-01 15:27:11.283 [grpc-default-executor-0] MqttConnectionImpl - CONNECT Tx request response information: true
[INFO ] 2023-08-01 15:27:16.938 [grpc-default-executor-0] GRPCControlServer - Subscription: filter 'test/topic' QoS 0 noLocal false retainAsPublished false retainHandling 2
[INFO ] 2023-08-01 15:27:16.939 [grpc-default-executor-0] GRPCControlServer - Subscribe: connectionId 1 for 1 filters
[INFO ] 2023-08-01 15:27:16.940 [grpc-default-executor-0] MqttConnectionImpl - Subscribe MQTT userProperties: region, US
[INFO ] 2023-08-01 15:27:16.940 [grpc-default-executor-0] MqttConnectionImpl - Subscribe MQTT userProperties: type, JSON
[INFO ] 2023-08-01 15:27:17.003 [grpc-default-executor-0] GRPCControlServer - Subscribe response: connectionId 1 reason codes [0] reason string ''
[INFO ] 2023-08-01 15:27:27.035 [grpc-default-executor-0] GRPCControlServer - Publish: connectionId 1 topic 'test/topic' QoS 1 retain false
[INFO ] 2023-08-01 15:27:27.036 [grpc-default-executor-0] MqttConnectionImpl - PUBLISH Tx payload format indicator 'true'
[INFO ] 2023-08-01 15:27:27.036 [grpc-default-executor-0] MqttConnectionImpl - PUBLISH Tx expiry message interval '3600'
[INFO ] 2023-08-01 15:27:27.037 [grpc-default-executor-0] MqttConnectionImpl - PUBLISH Tx response topic: /thing1/response/topic
[INFO ] 2023-08-01 15:27:27.037 [grpc-default-executor-0] MqttConnectionImpl - PUBLISH Tx correlation data: [99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 95, 100, 97, 116, 97]
[INFO ] 2023-08-01 15:27:27.037 [grpc-default-executor-0] MqttConnectionImpl - PUBLISH Tx user property 'region':'US'
[INFO ] 2023-08-01 15:27:27.037 [grpc-default-executor-0] MqttConnectionImpl - PUBLISH Tx user property 'type':'JSON'
[INFO ] 2023-08-01 15:27:27.037 [grpc-default-executor-0] MqttConnectionImpl - PUBLISH Tx payload content type 'text/plain; charset=utf-8'
[INFO ] 2023-08-01 15:27:27.067 [grpc-default-executor-0] GRPCControlServer - Publish response: connectionId 1 reason code 0 reason string ''
[INFO ] 2023-08-01 15:27:27.067 [MQTT Call: GGMQ-test-device2] MqttConnectionImpl - Delivery completion is true
[INFO ] 2023-08-01 15:27:27.070 [MQTT Call: GGMQ-test-device2] MqttConnectionImpl - Received MQTT message: connectionId 1 topic 'test/topic' QoS 0 retain false
[INFO ] 2023-08-01 15:27:27.071 [MQTT Call: GGMQ-test-device2] MqttConnectionImpl - Received MQTT userProperties: region, US
[INFO ] 2023-08-01 15:27:27.071 [MQTT Call: GGMQ-test-device2] MqttConnectionImpl - Received MQTT userProperties: type, JSON
[INFO ] 2023-08-01 15:27:27.071 [MQTT Call: GGMQ-test-device2] MqttConnectionImpl - Received MQTT message has content type 'text/plain; charset=utf-8'
[INFO ] 2023-08-01 15:27:27.071 [MQTT Call: GGMQ-test-device2] MqttConnectionImpl - Received MQTT message has payload format indicator 'true'
[INFO ] 2023-08-01 15:27:27.071 [MQTT Call: GGMQ-test-device2] MqttConnectionImpl - Received MQTT message has message expiry interval 3599
[INFO ] 2023-08-01 15:27:27.071 [MQTT Call: GGMQ-test-device2] MqttConnectionImpl - Received MQTT message has response topic: /thing1/response/topic
[INFO ] 2023-08-01 15:27:27.071 [MQTT Call: GGMQ-test-device2] MqttConnectionImpl - Received MQTT message has correlation data: [99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 95, 100, 97, 116, 97]

[INFO ] 2023-08-01 15:27:32.084 [grpc-default-executor-0] GRPCControlServer - createMqttConnection: clientId GGMQ-test-device2 broker a2rytmonq5cblh-ats.iot.eu-central-1.amazonaws.com:8883
[INFO ] 2023-08-01 15:27:32.157 [grpc-default-executor-0] MqttConnectionImpl - CONNECT Tx user property 'region':'US'
[INFO ] 2023-08-01 15:27:32.157 [grpc-default-executor-0] MqttConnectionImpl - CONNECT Tx user property 'type':'JSON'
[INFO ] 2023-08-01 15:27:32.158 [grpc-default-executor-0] MqttConnectionImpl - CONNECT Tx request response information: true
[INFO ] 2023-08-01 15:27:32.672 [MQTT Rec: GGMQ-test-device2] MqttConnectionImpl - MQTT connectionId 1 disconnected error 'null' disconnectInfo 'com.aws.greengrass.testing.mqtt5.client.GRPCClient$DisconnectInfo@77b0dee0'

[INFO ] 2023-08-01 15:27:42.702 [grpc-default-executor-0] GRPCControlServer - Publish: connectionId 2 topic 'test/topic' QoS 1 retain false
[INFO ] 2023-08-01 15:27:42.703 [grpc-default-executor-0] MqttConnectionImpl - PUBLISH Tx payload format indicator 'true'
[INFO ] 2023-08-01 15:27:42.703 [grpc-default-executor-0] MqttConnectionImpl - PUBLISH Tx expiry message interval '3600'
[INFO ] 2023-08-01 15:27:42.703 [grpc-default-executor-0] MqttConnectionImpl - PUBLISH Tx response topic: /thing1/response/topic
[INFO ] 2023-08-01 15:27:42.703 [grpc-default-executor-0] MqttConnectionImpl - PUBLISH Tx correlation data: [99, 111, 114, 114, 101, 108, 97, 116, 105, 111, 110, 95, 100, 97, 116, 97]
[INFO ] 2023-08-01 15:27:42.703 [grpc-default-executor-0] MqttConnectionImpl - PUBLISH Tx user property 'region':'US'
[INFO ] 2023-08-01 15:27:42.704 [grpc-default-executor-0] MqttConnectionImpl - PUBLISH Tx user property 'type':'JSON'
[INFO ] 2023-08-01 15:27:42.704 [grpc-default-executor-0] MqttConnectionImpl - PUBLISH Tx payload content type 'text/plain; charset=utf-8'
[INFO ] 2023-08-01 15:27:42.733 [grpc-default-executor-0] GRPCControlServer - Publish response: connectionId 2 reason code 0 reason string ''
[INFO ] 2023-08-01 15:27:42.734 [MQTT Call: GGMQ-test-device2] MqttConnectionImpl - Delivery completion is true
[INFO ] 2023-08-01 15:27:47.759 [grpc-default-executor-0] GRPCControlServer - Unsubscribe: connectionId 1 for [test/topic] filters
[ERROR] 2023-08-01 15:27:47.759 [grpc-default-executor-0] GRPCControlServer - exception during unsubscribe
com.aws.greengrass.testing.mqtt5.client.exceptions.MqttException: MQTT client is not in connected state
    at com.aws.greengrass.testing.mqtt5.client.paho.MqttConnectionImpl.stateCheck(MqttConnectionImpl.java:629) ~[classes/:?]
    at com.aws.greengrass.testing.mqtt5.client.paho.MqttConnectionImpl.unsubscribe(MqttConnectionImpl.java:215) ~[classes/:?]
    at com.aws.greengrass.testing.mqtt5.client.grpc.GRPCControlServer$MqttClientControlImpl.unsubscribeMqtt(GRPCControlServer.java:507) [classes/:?]
    at com.aws.greengrass.testing.mqtt.client.MqttClientControlGrpc$MethodHandlers.invoke(MqttClientControlGrpc.java:663) [classes/:?]
    at io.grpc.stub.ServerCalls$UnaryServerCallHandler$UnaryServerCallListener.onHalfClose(ServerCalls.java:182) [grpc-stub-1.53.0.jar:1.53.0]
    at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.halfClosed(ServerCallImpl.java:355) [grpc-core-1.53.0.jar:1.53.0]
    at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1HalfClosed.runInContext(ServerImpl.java:867) [grpc-core-1.53.0.jar:1.53.0]
    at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) [grpc-core-1.53.0.jar:1.53.0]
    at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133) [grpc-core-1.53.0.jar:1.53.0]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
    at java.lang.Thread.run(Thread.java:834) [?:?]
[INFO ] 2023-08-01 15:27:47.784 [grpc-default-executor-0] GRPCControlServer - closeMqttConnection: connectionId 1 reason 4
[INFO ] 2023-08-01 15:27:47.785 [grpc-default-executor-0] MqttConnectionImpl - Disconnect MQTT userProperties: region, US
[INFO ] 2023-08-01 15:27:47.785 [grpc-default-executor-0] MqttConnectionImpl - Disconnect MQTT userProperties: type, JSON
[WARN ] 2023-08-01 15:27:47.785 [grpc-default-executor-0] MqttConnectionImpl - DISCONNECT was not sent on the dead connection
[INFO ] 2023-08-01 15:27:47.792 [grpc-default-executor-0] GRPCControlServer - closeMqttConnection: connectionId 2 reason 4
[INFO ] 2023-08-01 15:27:47.792 [grpc-default-executor-0] MqttConnectionImpl - Disconnect MQTT userProperties: region, US
[INFO ] 2023-08-01 15:27:47.792 [grpc-default-executor-0] MqttConnectionImpl - Disconnect MQTT userProperties: type, JSON
[INFO ] 2023-08-01 15:27:47.929 [grpc-default-executor-0] GRPCControlServer - shutdownAgent: reason 'That's it.'
[INFO ] 2023-08-01 15:27:47.961 [com.aws.greengrass.testing.mqtt5.client.Main.main()] GRPCControlServer - Server awaitTermination done
[INFO ] 2023-08-01 15:27:47.961 [com.aws.greengrass.testing.mqtt5.client.Main.main()] GRPCLinkImpl - Shutdown gPRC link
[INFO ] 2023-08-01 15:27:47.975 [com.aws.greengrass.testing.mqtt5.client.Main.main()] Main - Execution done successfully

For MQTT v5.0: Control:

./run_for_IoTCore_311.sh 
[INFO ] 2023-08-01 15:41:00.967 [main] ExampleControl - Control: port 47619, with TLS, MQTT v3
[INFO ] 2023-08-01 15:41:01.322 [main] EngineControlImpl - MQTT client control gRPC server started, listening on 47619
[INFO ] 2023-08-01 15:41:40.021 [grpc-default-executor-0] GRPCDiscoveryServer - RegisterAgent: agentId paho-java-agent
[INFO ] 2023-08-01 15:41:40.085 [grpc-default-executor-0] GRPCDiscoveryServer - DiscoveryClient: agentId paho-java-agent address 127.0.0.1 port 38789
[INFO ] 2023-08-01 15:41:40.088 [grpc-default-executor-0] EngineControlImpl - Created new agent control for paho-java-agent on 127.0.0.1:38789
[INFO ] 2023-08-01 15:41:40.134 [grpc-default-executor-0] ExampleControl - Agent paho-java-agent is connected
[INFO ] 2023-08-01 15:41:40.140 [pool-2-thread-1] AgentTestScenario - Playing test scenario for agent id paho-java-agent
[INFO ] 2023-08-01 15:41:44.359 [pool-2-thread-1] AgentControlImpl - Created connection with id 1 CONNACK 'sessionPresent: true
'
[INFO ] 2023-08-01 15:41:44.359 [pool-2-thread-1] AgentControlImpl - createMqttConnection: MQTT connectionId 1 created
[INFO ] 2023-08-01 15:41:44.359 [pool-2-thread-1] AgentTestScenario - MQTT connection #1 with id 1 is established
[INFO ] 2023-08-01 15:41:49.376 [pool-2-thread-1] AgentControlImpl - SubscribeMqtt: subscribe on connection 1
[INFO ] 2023-08-01 15:41:49.482 [pool-2-thread-1] AgentTestScenario - Subscribe response: connectionId 1 reason codes [0] reason string ''
[INFO ] 2023-08-01 15:41:59.496 [pool-2-thread-1] AgentControlImpl - PublishMqtt: publishing on connectionId 1 topic test/topic
[INFO ] 2023-08-01 15:41:59.563 [pool-2-thread-1] AgentTestScenario - Published connectionId 1 reason code 0 reason string ''
[INFO ] 2023-08-01 15:41:59.570 [grpc-default-executor-0] GRPCDiscoveryServer - OnReceiveMessage: agentId paho-java-agent connectionId 1 topic test/topic QoS 0
[INFO ] 2023-08-01 15:41:59.571 [grpc-default-executor-0] AgentTestScenario - Message received on agentId paho-java-agent connectionId 1 topic test/topic QoS 0 content <ByteString@6ca79bbc size=12 contents="Hello World!">

[INFO ] 2023-08-01 15:42:05.182 [pool-2-thread-1] AgentControlImpl - Created connection with id 2 CONNACK 'sessionPresent: true
'
[INFO ] 2023-08-01 15:42:05.183 [pool-2-thread-1] AgentControlImpl - createMqttConnection: MQTT connectionId 2 created
[INFO ] 2023-08-01 15:42:05.183 [pool-2-thread-1] AgentTestScenario - MQTT connection #2 with id 2 is established
[INFO ] 2023-08-01 15:42:05.207 [grpc-default-executor-0] GRPCDiscoveryServer - OnMqttDisconnect: agentId paho-java-agent connectionId 1 disconnect '' error 'Connection lost'
[INFO ] 2023-08-01 15:42:05.207 [grpc-default-executor-0] AgentTestScenario - MQTT disconnected on agentId paho-java-agent connectionId 1 disconnect '' error 'Connection lost'
[INFO ] 2023-08-01 15:42:15.184 [pool-2-thread-1] AgentControlImpl - PublishMqtt: publishing on connectionId 2 topic test/topic
[INFO ] 2023-08-01 15:42:15.231 [pool-2-thread-1] AgentTestScenario - Published connectionId 2 reason code 0 reason string ''
[INFO ] 2023-08-01 15:42:20.242 [pool-2-thread-1] AgentControlImpl - UnsubscribeMqtt: unsubscribe on connectionId 1
[ERROR] 2023-08-01 15:42:20.280 [pool-2-thread-1] AgentTestScenario - gRPC error code UNKNOWN: description: null
io.grpc.StatusRuntimeException: UNKNOWN
    at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:271) ~[grpc-stub-1.53.0.jar:1.53.0]
    at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:252) ~[grpc-stub-1.53.0.jar:1.53.0]
    at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:165) ~[grpc-stub-1.53.0.jar:1.53.0]
    at com.aws.greengrass.testing.mqtt.client.MqttClientControlGrpc$MqttClientControlBlockingStub.unsubscribeMqtt(MqttClientControlGrpc.java:521) ~[aws-greengrass-testing-mqtt-client-control-1.0-SNAPSHOT.jar:?]
    at com.aws.greengrass.testing.mqtt.client.control.implementation.AgentControlImpl.unsubscribeMqtt(AgentControlImpl.java:237) ~[aws-greengrass-testing-mqtt-client-control-1.0-SNAPSHOT.jar:?]
    at com.aws.greengrass.testing.mqtt.client.control.implementation.ConnectionControlImpl.unsubscribeMqtt(ConnectionControlImpl.java:137) ~[aws-greengrass-testing-mqtt-client-control-1.0-SNAPSHOT.jar:?]
    at com.aws.greengrass.testing.mqtt.client.control.AgentTestScenario.testUnsubscribe(AgentTestScenario.java:366) ~[aws-greengrass-testing-mqtt-client-control-1.0-SNAPSHOT.jar:?]
    at com.aws.greengrass.testing.mqtt.client.control.AgentTestScenario.run(AgentTestScenario.java:201) [aws-greengrass-testing-mqtt-client-control-1.0-SNAPSHOT.jar:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
    at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
    at java.lang.Thread.run(Thread.java:834) [?:?]
[INFO ] 2023-08-01 15:42:20.307 [pool-2-thread-1] AgentControlImpl - closeMqttConnection: MQTT connectionId 1 closed
[INFO ] 2023-08-01 15:42:20.331 [pool-2-thread-1] AgentControlImpl - closeMqttConnection: MQTT connectionId 2 closed
[INFO ] 2023-08-01 15:42:20.338 [pool-2-thread-1] AgentControlImpl - sending shutdown request
[INFO ] 2023-08-01 15:42:20.351 [pool-2-thread-1] AgentControlImpl - shutdown request sent successfully
[INFO ] 2023-08-01 15:42:20.371 [grpc-default-executor-0] GRPCDiscoveryServer - UnregisterAgent: agentId paho-java-agent reason Agent shutdown by OTF request 'That's it.'
[INFO ] 2023-08-01 15:42:20.371 [grpc-default-executor-0] AgentControlImpl - shutting down channel with agent id paho-java-agent
[INFO ] 2023-08-01 15:42:20.373 [grpc-default-executor-0] AgentControlImpl - channel terminated with agent id paho-java-agent
[INFO ] 2023-08-01 15:42:20.373 [grpc-default-executor-0] ExampleControl - Agent paho-java-agent is disconnected

Client:

[INFO] --- exec-maven-plugin:3.1.0:java (default-cli) @ client-devices-auth-uat-client-java-paho ---
[INFO ] 2023-08-01 15:41:39.519 [com.aws.greengrass.testing.mqtt5.client.Main.main()] GRPCLinkImpl - Making gPRC client connection with 127.0.0.1:47619 as paho-java-agent...
[INFO ] 2023-08-01 15:41:40.043 [com.aws.greengrass.testing.mqtt5.client.Main.main()] GRPCLinkImpl - Client connection with Control is established, local address is 127.0.0.1
[INFO ] 2023-08-01 15:41:40.080 [com.aws.greengrass.testing.mqtt5.client.Main.main()] GRPCControlServer - GRPCControlServer created and listed on 127.0.0.1:38789
[INFO ] 2023-08-01 15:41:40.166 [com.aws.greengrass.testing.mqtt5.client.Main.main()] GRPCLinkImpl - Handle gRPC requests
[INFO ] 2023-08-01 15:41:40.166 [com.aws.greengrass.testing.mqtt5.client.Main.main()] GRPCControlServer - Server awaitTermination
[INFO ] 2023-08-01 15:41:43.252 [grpc-default-executor-0] GRPCControlServer - createMqttConnection: clientId GGMQ-test-device2 broker a2rytmonq5cblh-ats.iot.eu-central-1.amazonaws.com:8883
[INFO ] 2023-08-01 15:41:44.259 [grpc-default-executor-0] Mqtt311ConnectionImpl - MQTT 3.1.1 connection 1 is establisted
[INFO ] 2023-08-01 15:41:49.398 [grpc-default-executor-0] GRPCControlServer - Subscription: filter 'test/topic' QoS 0 noLocal false retainAsPublished false retainHandling 2
[INFO ] 2023-08-01 15:41:49.398 [grpc-default-executor-0] GRPCControlServer - Subscribe: connectionId 1 for 1 filters
[INFO ] 2023-08-01 15:41:49.478 [grpc-default-executor-0] GRPCControlServer - Subscribe response: connectionId 1 reason codes [0] reason string ''
[INFO ] 2023-08-01 15:41:59.526 [grpc-default-executor-0] GRPCControlServer - Publish: connectionId 1 topic 'test/topic' QoS 1 retain false
[INFO ] 2023-08-01 15:41:59.558 [grpc-default-executor-0] GRPCControlServer - Publish response: connectionId 1 reason code 0 reason string ''
[INFO ] 2023-08-01 15:41:59.558 [MQTT Call: GGMQ-test-device2] Mqtt311ConnectionImpl - Delivery completion is true
[INFO ] 2023-08-01 15:41:59.561 [MQTT Call: GGMQ-test-device2] Mqtt311ConnectionImpl - Received MQTT message: connectionId 1 topic 'test/topic' QoS 0 retain false

[INFO ] 2023-08-01 15:42:04.575 [grpc-default-executor-0] GRPCControlServer - createMqttConnection: clientId GGMQ-test-device2 broker a2rytmonq5cblh-ats.iot.eu-central-1.amazonaws.com:8883
[INFO ] 2023-08-01 15:42:05.173 [grpc-default-executor-0] Mqtt311ConnectionImpl - MQTT 3.1.1 connection 2 is establisted
[INFO ] 2023-08-01 15:42:05.175 [MQTT Rec: GGMQ-test-device2] Mqtt311ConnectionImpl - MQTT connection 1 interrupted, error code Connection lost
[INFO ] 2023-08-01 15:42:15.192 [grpc-default-executor-0] GRPCControlServer - Publish: connectionId 2 topic 'test/topic' QoS 1 retain false
[INFO ] 2023-08-01 15:42:15.224 [grpc-default-executor-0] GRPCControlServer - Publish response: connectionId 2 reason code 0 reason string ''
[INFO ] 2023-08-01 15:42:15.225 [MQTT Call: GGMQ-test-device2] Mqtt311ConnectionImpl - Delivery completion is true
[INFO ] 2023-08-01 15:42:20.253 [grpc-default-executor-0] GRPCControlServer - Unsubscribe: connectionId 1 for [test/topic] filters
[ERROR] 2023-08-01 15:42:20.254 [grpc-default-executor-0] GRPCControlServer - exception during unsubscribe
com.aws.greengrass.testing.mqtt5.client.exceptions.MqttException: MQTT client is not in connected state
    at com.aws.greengrass.testing.mqtt311.client.paho.Mqtt311ConnectionImpl.stateCheck(Mqtt311ConnectionImpl.java:366) ~[classes/:?]
    at com.aws.greengrass.testing.mqtt311.client.paho.Mqtt311ConnectionImpl.unsubscribe(Mqtt311ConnectionImpl.java:167) ~[classes/:?]
    at com.aws.greengrass.testing.mqtt5.client.grpc.GRPCControlServer$MqttClientControlImpl.unsubscribeMqtt(GRPCControlServer.java:507) [classes/:?]
    at com.aws.greengrass.testing.mqtt.client.MqttClientControlGrpc$MethodHandlers.invoke(MqttClientControlGrpc.java:663) [classes/:?]
    at io.grpc.stub.ServerCalls$UnaryServerCallHandler$UnaryServerCallListener.onHalfClose(ServerCalls.java:182) [grpc-stub-1.53.0.jar:1.53.0]
    at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.halfClosed(ServerCallImpl.java:355) [grpc-core-1.53.0.jar:1.53.0]
    at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1HalfClosed.runInContext(ServerImpl.java:867) [grpc-core-1.53.0.jar:1.53.0]
    at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) [grpc-core-1.53.0.jar:1.53.0]
    at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133) [grpc-core-1.53.0.jar:1.53.0]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
    at java.lang.Thread.run(Thread.java:834) [?:?]
[INFO ] 2023-08-01 15:42:20.303 [grpc-default-executor-0] GRPCControlServer - closeMqttConnection: connectionId 1 reason 4
[WARN ] 2023-08-01 15:42:20.304 [grpc-default-executor-0] Mqtt311ConnectionImpl - DISCONNECT was not sent on the dead connection
[INFO ] 2023-08-01 15:42:20.304 [grpc-default-executor-0] Mqtt311ConnectionImpl - MQTT 3.1.1 connection 1 has been disconnected
[INFO ] 2023-08-01 15:42:20.309 [grpc-default-executor-0] GRPCControlServer - closeMqttConnection: connectionId 2 reason 4
[INFO ] 2023-08-01 15:42:20.323 [grpc-default-executor-0] Mqtt311ConnectionImpl - MQTT 3.1.1 connection 2 has been disconnected
[INFO ] 2023-08-01 15:42:20.347 [grpc-default-executor-0] GRPCControlServer - shutdownAgent: reason 'That's it.'
[INFO ] 2023-08-01 15:42:20.363 [com.aws.greengrass.testing.mqtt5.client.Main.main()] GRPCControlServer - Server awaitTermination done
[INFO ] 2023-08-01 15:42:20.364 [com.aws.greengrass.testing.mqtt5.client.Main.main()] GRPCLinkImpl - Shutdown gPRC link
[INFO ] 2023-08-01 15:42:20.378 [com.aws.greengrass.testing.mqtt5.client.Main.main()] Main - Execution done successfully

Any additional information or context required to review the change:

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

github-actions[bot] commented 1 year ago

Unit Tests Coverage Report

File Coverage Lines Branches
All files 72% 79% 65% :white_check_mark:
com.aws.greengrass.clientdevices.auth.PermissionEvaluationUtils 78% 82% 74% :white_check_mark:
com.aws.greengrass.clientdevices.auth.PermissionEvaluationUtils$Operation 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.PermissionEvaluationUtils$Resource 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.CertificateManager 79% 90% 69% :white_check_mark:
com.aws.greengrass.clientdevices.auth.ClientDevicesAuthService 78% 90% 67% :white_check_mark:
com.aws.greengrass.clientdevices.auth.DeviceAuthClient 73% 83% 64% :white_check_mark:
com.aws.greengrass.clientdevices.auth.certificate.ClientCertificateGenerator 95% 90% 100% :white_check_mark:
com.aws.greengrass.clientdevices.auth.certificate.CertificateHelper 74% 93% 54% :white_check_mark:
com.aws.greengrass.clientdevices.auth.certificate.CertificateHelper$ProviderType 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.certificate.CertificateStore 72% 85% 60% :white_check_mark:
com.aws.greengrass.clientdevices.auth.certificate.CertificateExpiryMonitor 77% 87% 67% :white_check_mark:
com.aws.greengrass.clientdevices.auth.certificate.ServerCertificateGenerator 93% 87% 100% :white_check_mark:
com.aws.greengrass.clientdevices.auth.certificate.CertificateGenerator 70% 90% 50% :white_check_mark:
com.aws.greengrass.clientdevices.auth.certificate.CertificateStore$CAType 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.certificate.CertificateExpiryMonitor$CertRotationDecider 90% 100% 80% :white_check_mark:
com.aws.greengrass.clientdevices.auth.certificate.CertificatesConfig 100% 100% 100% :white_check_mark:
com.aws.greengrass.clientdevices.auth.session.events.SessionCreationEvent$SessionCreationStatus 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.iot.usecases.VerifyIotCertificate 94% 88% 100% :white_check_mark:
com.aws.greengrass.clientdevices.auth.iot.usecases.VerifyThingAttachedToCertificate 92% 96% 88% :white_check_mark:
com.aws.greengrass.clientdevices.auth.iot.usecases.CreateIoTThingSession 87% 90% 83% :white_check_mark:
com.aws.greengrass.clientdevices.auth.iot.usecases.VerifyCertificateValidityPeriod 88% 88% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.certificate.infra.ClientCertificateStore 100% 100% 100% :white_check_mark:
com.aws.greengrass.clientdevices.auth.certificate.infra.BackgroundCertificateRefresh 83% 85% 82% :white_check_mark:
com.aws.greengrass.clientdevices.auth.iot.infra.ThingRegistry 92% 97% 88% :white_check_mark:
com.aws.greengrass.clientdevices.auth.certificate.usecases.ConfigureManagedCertificateAuthority 85% 85% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.certificate.usecases.ConfigureCustomCertificateAuthority 83% 83% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.certificate.usecases.RegisterCertificateAuthorityUseCase 65% 81% 50% :white_check_mark:
com.aws.greengrass.clientdevices.auth.configuration.MetricsConfiguration 83% 100% 67% :white_check_mark:
com.aws.greengrass.clientdevices.auth.configuration.AuthorizationPolicyStatement$Effect 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.configuration.GroupManager 89% 94% 83% :white_check_mark:
com.aws.greengrass.clientdevices.auth.configuration.ConfigurationFormatVersion 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.configuration.CAConfiguration 96% 100% 92% :white_check_mark:
com.aws.greengrass.clientdevices.auth.configuration.RuntimeConfiguration 84% 99% 70% :white_check_mark:
com.aws.greengrass.clientdevices.auth.configuration.SecurityConfiguration 80% 93% 67% :white_check_mark:
com.aws.greengrass.clientdevices.auth.configuration.CDAConfiguration 100% 100% 100% :white_check_mark:
com.aws.greengrass.clientdevices.auth.configuration.GroupDefinition 75% 100% 50% :white_check_mark:
com.aws.greengrass.clientdevices.auth.configuration.ExpressionVisitor 84% 94% 75% :white_check_mark:
com.aws.greengrass.clientdevices.auth.configuration.GroupConfiguration 90% 95% 86% :white_check_mark:
com.aws.greengrass.clientdevices.auth.api.ServiceErrorEvent 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.api.ClientDevicesAuthServiceApi 90% 79% 100% :white_check_mark:
com.aws.greengrass.clientdevices.auth.api.DomainEvents 100% 100% 100% :white_check_mark:
com.aws.greengrass.clientdevices.auth.api.AuthorizeClientDeviceActionEvent$AuthorizationStatus 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.api.UseCases 71% 92% 50% :white_check_mark:
com.aws.greengrass.clientdevices.auth.api.DomainEvent 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.api.GetCertificateRequestOptions$CertificateType 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.session.attribute.StringLiteralAttribute 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.session.attribute.WildcardSuffixAttribute 88% 100% 75% :white_check_mark:
com.aws.greengrass.clientdevices.auth.certificate.events.CertificateSubscriptionEvent$SubscriptionStatus 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.certificate.events.CACertificateChainChanged 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.iot.Certificate$Status 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.iot.IotAuthClient$Default 56% 47% 64% :white_check_mark:
com.aws.greengrass.clientdevices.auth.iot.Thing 82% 86% 79% :white_check_mark:
com.aws.greengrass.clientdevices.auth.iot.Certificate 78% 89% 67% :white_check_mark:
com.aws.greengrass.clientdevices.auth.iot.GreengrassV2DataClientFactory 18% 18% 0% :x:
com.aws.greengrass.clientdevices.auth.iot.CertificateRegistry 95% 90% 100% :white_check_mark:
com.aws.greengrass.clientdevices.auth.iot.Component 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.iot.events.VerifyClientDeviceIdentityEvent$VerificationStatus 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.infra.NetworkStateProvider$Default$1 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.infra.NetworkStateProvider$ConnectionState 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.infra.NetworkStateProvider$Default 75% 90% 60% :white_check_mark:
com.aws.greengrass.ipc.IPCUtils 83% 67% 100% :white_check_mark:
com.aws.greengrass.ipc.VerifyClientDeviceIdentityOperationHandler 60% 69% 50% :white_check_mark:
com.aws.greengrass.ipc.GetClientDeviceAuthTokenOperationHandler 86% 98% 75% :white_check_mark:
com.aws.greengrass.ipc.AuthorizeClientDeviceActionOperationHandler 79% 92% 67% :white_check_mark:
com.aws.greengrass.ipc.SubscribeToCertificateUpdatesOperationHandler 81% 88% 75% :white_check_mark:
com.aws.greengrass.clientdevices.auth.session.SessionConfig 92% 100% 83% :white_check_mark:
com.aws.greengrass.clientdevices.auth.session.SessionManager$1 100% 100% 100% :white_check_mark:
com.aws.greengrass.clientdevices.auth.session.MqttSessionFactory 100% 100% 100% :white_check_mark:
com.aws.greengrass.clientdevices.auth.session.SessionCreator 100% 100% 100% :white_check_mark:
com.aws.greengrass.clientdevices.auth.session.SessionManager 88% 100% 75% :white_check_mark:
com.aws.greengrass.clientdevices.auth.session.SessionImpl 100% 100% 100% :white_check_mark:
com.aws.greengrass.clientdevices.auth.session.SessionCreator$SessionFactorySingleton 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.session.MqttSessionFactory$MqttCredential 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.certificate.handlers.CACertificateChainChangedHandler 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.certificate.handlers.CAConfigurationChangedHandler 93% 87% 100% :white_check_mark:
com.aws.greengrass.clientdevices.auth.certificate.handlers.CertificateRotationHandler 96% 91% 100% :white_check_mark:
com.aws.greengrass.clientdevices.auth.certificate.handlers.SecurityConfigurationChangedHandler 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.metrics.handlers.SessionCreationEventHandler 88% 100% 75% :white_check_mark:
com.aws.greengrass.clientdevices.auth.metrics.handlers.MetricsConfigurationChangedHandler 70% 90% 50% :white_check_mark:
com.aws.greengrass.clientdevices.auth.metrics.handlers.AuthorizeClientDeviceActionsMetricHandler 88% 100% 75% :white_check_mark:
com.aws.greengrass.clientdevices.auth.metrics.handlers.VerifyClientDeviceIdentityEventHandler 88% 100% 75% :white_check_mark:
com.aws.greengrass.clientdevices.auth.metrics.handlers.CertificateSubscriptionEventHandler 83% 100% 67% :white_check_mark:
com.aws.greengrass.clientdevices.auth.metrics.handlers.ServiceErrorEventHandler 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.iot.dto.CertificateV1DTO$Status 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.connectivity.usecases.GetConnectivityInformationUseCase 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.connectivity.usecases.RecordConnectivityChangesUseCase 100% 100% 100% :white_check_mark:
com.aws.greengrass.clientdevices.auth.util.ResizableLinkedBlockingQueue 90% 80% 100% :white_check_mark:
com.aws.greengrass.clientdevices.auth.util.ParseIPAddress 90% 95% 84% :white_check_mark:
com.aws.greengrass.clientdevices.auth.metrics.ClientDeviceAuthMetrics 87% 98% 75% :white_check_mark:
com.aws.greengrass.clientdevices.auth.metrics.MetricsEmitter 100% 100% 100% :white_check_mark:
com.aws.greengrass.clientdevices.auth.connectivity.CISShadowMonitor 63% 77% 50% :white_check_mark:
com.aws.greengrass.clientdevices.auth.connectivity.RecordConnectivityChangesResponse 100% 100% 100% :white_check_mark:
com.aws.greengrass.clientdevices.auth.connectivity.HostAddress 67% 67% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.connectivity.RecordConnectivityChangesRequest 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.connectivity.ConnectivityInformation 100% 100% 100% :white_check_mark:
com.aws.greengrass.clientdevices.auth.configuration.parser.RuleExpressionConstants 100% 100% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.configuration.parser.TokenMgrError 22% 32% 12% :x:
com.aws.greengrass.clientdevices.auth.configuration.parser.RuleExpressionTokenManager 61% 65% 58% :white_check_mark:
com.aws.greengrass.clientdevices.auth.configuration.parser.ASTStart 33% 33% 0% :x:
com.aws.greengrass.clientdevices.auth.configuration.parser.ASTAnd 67% 67% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.configuration.parser.Token 58% 58% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.configuration.parser.RuleExpressionDefaultVisitor 0% 0% 0% :x:
com.aws.greengrass.clientdevices.auth.configuration.parser.ASTOr 67% 67% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.configuration.parser.SimpleCharStream 28% 31% 25% :x:
com.aws.greengrass.clientdevices.auth.configuration.parser.RuleExpressionTreeConstants 0% 0% 0% :x:
com.aws.greengrass.clientdevices.auth.configuration.parser.JJTRuleExpressionState 67% 65% 70% :white_check_mark:
com.aws.greengrass.clientdevices.auth.configuration.parser.ASTThing 67% 67% 0% :white_check_mark:
com.aws.greengrass.clientdevices.auth.configuration.parser.RuleExpression 63% 63% 62% :white_check_mark:
com.aws.greengrass.clientdevices.auth.configuration.parser.SimpleNode 27% 35% 19% :x:

Minimum allowed coverage is 50%

Generated by :monkey: cobertura-action against d873d139e4188b0b9d5518da768dad6dd7f8c990

bgklika commented 1 year ago

That PR missing adding pah-java client to ongoing T25 https://github.com/aws-greengrass/aws-greengrass-client-device-auth/pull/385

PR will merged second should be updated to include paho client to T25

bgklika commented 1 year ago

I remove 'draft' mark